Re: [BUG] checkpatch hangs at value annotation

From: Jan HÃppner
Date: Wed Oct 26 2016 - 05:04:26 EST


On 28.09.2016 14:17, Jan HÃppner wrote:
> 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
>

Hi Andy,

as I haven't heard anything on that matter yet and it is still broken
in v4.8, just sending a PING.

Kind regards,
Jan