[PATCH] checkpatch: Warn on unnecessary line continuations

Joe Perches joe at perches.com
Mon Oct 22 13:16:43 UTC 2012


Line continuations are not normal kernel style.
Bleat a warning when used outside of a macro definition.

Signed-off-by: Joe Perches <joe at perches.com>
---

On Mon, 2012-10-22 at 09:02 -0400, Peter Hurley wrote:
> On Mon, 2012-10-22 at 05:15 -0700, Joe Perches wrote:
> > waOn Mon, 2012-10-22 at 10:37 +0100, David Howells wrote:
> > > Joe Perches <joe at perches.com> wrote:
> > > 
> > > > On Sat, 2012-10-20 at 23:33 +0100, Ken O'Brien wrote:
> > > > ...
> > > > > -		pr_err("binder: %d: binder_alloc_buf failed to "
> > > > > +		pr_err("binder: %d: binder_alloc_buf failed to " \
> > > > >  		       "map pages in userspace, no vma\n", proc->pid);
> > > > ...
> > > > Nice try, but the "right" way to do this is to coalesce formats like:
> > > > 
> > > > 		pr_err("binder: %d: binder_alloc_buf failed to map pages in userspace, no vma\n",
> > > > 		       proc->pid);
> > > 
> > > Surely the right way is to fix _checkpatch_ to see ["]\n\s*["] and merge the
> > > lines before checking them?  We shouldn't have to fix up the source in either
> > > of these fashions just because checkpatch is broken.
> > 
> > checkpatch is stupid, but it's not broken here.
> > 
> > Formats should be coalesced into a single line to make
> > grepping the source for dmesg output easier.
> 
> But MODULE_PARM_DESC() multi-line strings are ok, right?
> 

I don't think so.
Maybe this patch:

 scripts/checkpatch.pl | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 21a9f5d..d4ea29a 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3011,6 +3011,14 @@ sub process {
 					      "Macros with complex values should be enclosed in parenthesis\n" . "$herectx");
 				}
 			}
+
+# check for line continuations outside of #defines
+
+		} else {
+			if ($line =~ /^\+.*\\$/) {
+				WARN("LINE_CONTINUATIONS",
+				     "Avoid unnecessary line continuations\n" . $herecurr);
+			}
 		}
 
 # do {} while (0) macro tests:





More information about the devel mailing list