Messages in this thread | | | From | Jan Höppner <> | Subject | [BUG] checkpatch hangs at value annotation | Date | Wed, 28 Sep 2016 14:17:39 +0200 |
| |
Hi Andy,
when I check the following patch example with checkpatch it will hang forever.
diff --git a/test.c b/test.c index 88c2eb0cb608..583625fdb715 100644 --- a/test.c +++ b/test.c @@ -1 +1,3 @@ uint## BITS ##_t foobar; + +printk(KERN_WARNING "DEBUG: FOOBAR\n");
The hang is due to the spaces in the concatenation in the first line. When you remove the space (like this uint##BITS##_t) it will run through just fine.
I debugged the script with perl -d a little and found that the problem is somewhere in the annotate_values sub-routine. It will always jump in this block:
} elsif ($cur =~ /^($Modifier)\s*/) { print "MODIFIER($1)\n" if ($dbg_values > 1); $type = 'T';
}
$1 seems to be undefined even though the regex matched. However, $1 needs to be defined so that the loop can move on with evaluating the rest of the current string (see end of the routine).
If you want me to try a few more things or provide more data, please let me know. Due to lack of time and a vague knowledge of perl, I'm not able to provide a proposal for a proper fix.
Best regards, Jan
| |