Re: [BUG] checkpatch: unescaped left brace in regex is deprecated

From: Geyslan G. Bem
Date: Thu Dec 10 2015 - 06:24:48 EST


2015-12-09 19:59 GMT-03:00 Geyslan G. Bem <geyslan@xxxxxxxxx>:
>
>
> 2015-12-07 20:36 GMT-03:00 Geyslan G. Bem <geyslan@xxxxxxxxx>:
>>
>> 2015-12-07 20:06 GMT-03:00 Joe Perches <joe@xxxxxxxxxxx>:
>> > On Mon, 2015-12-07 at 19:53 -0300, Geyslan G. Bem wrote:
>> >> Hello,
>> >
>> > hello.
>> >
>> >> Follow checkpatch output using perl 5.22.0.
>> >>
>> >> geyslan@hb ~/Projects/linux $ scripts/checkpatch.pl -f
>> >> drivers/usb/host/ehci-hub.c
>> >> Unescaped left brace in regex is deprecated, passed through in regex;
>> >> marked by <-- HERE in m/\((?^x:
>> >>
>> >
>> > No HERE here. Are you using linux-next?
>> Yep,
>>
>> geyslan@hb ~/Projects/linux $ git branch -a
>> * (HEAD detached from linux-next/master)
>> ...
>>
>> geyslan@hb ~/Projects/linux $ git remote update
>> Fetching linux
>> Fetching linux-next
>> Fetching linux-staging
>>
>> >
>> > There have been patches applied for this warning already.
>> >
>> > see:
>> >
>> > commit 4e5d56bdf892e18832a6540b63ebf709966bce2a
>> > Author: Eddie Kovsky <ewk@xxxxxxxxxxxx>
>> > Date: Wed Sep 9 15:37:52 2015 -0700
>> >
>> > checkpatch: fix left brace warning
>> >
>> > Using checkpatch.pl with Perl 5.22.0 generates the following
>> > warning:
>> >
>> > Unescaped left brace in regex is deprecated, passed through in
>> > regex;
>> > 5.
>>
>> Indeed. But here the error continues.
>>
>> geyslan@hb ~/Projects/linux $ git log 4e5d56bdf892e -1
>> commit 4e5d56bdf892e18832a6540b63ebf709966bce2a
>> Author: Eddie Kovsky <ewk@xxxxxxxxxxxx>
>> Date: Wed Sep 9 15:37:52 2015 -0700
>>
>> checkpatch: fix left brace warning
>>
>> Using checkpatch.pl with Perl 5.22.0 generates the following warning:
>> ...
>>
>> geyslan@hb ~/Projects/linux $ git blame scripts/checkpatch.pl | grep
>> 4e5d56b
>> 3599:4e5d56bdf89 (Eddie Kovsky 2015-09-09 15:37:52 -0700
>> 3599) !($line=~/\#\s*define.*do\s\{/) and !($line=~/}/)) {
>> 4111:4e5d56bdf89 (Eddie Kovsky 2015-09-09 15:37:52 -0700
>> 4111) if (($line =~ /\(.*\)\{/ && $line !~ /\($Type\){/) ||
>> 4112:4e5d56bdf89 (Eddie Kovsky 2015-09-09 15:37:52 -0700
>> 4112) $line =~ /do\{/) {
>> 4589:4e5d56bdf89 (Eddie Kovsky 2015-09-09 15:37:52 -0700
>> 4589) $dstat !~ /^\(\{/ && # ({...
>>
>> It missed some regexes, maybe?
>
>
> Joe, I found the culprit (copy & paste, tabs not preserved):
>
> geyslan@hb ~/Projects/linux $ git diff
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index d4960f7..3e11a30 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -4108,7 +4108,7 @@ sub process {
> ## }
>
> #need space before brace following if, while, etc
> - if (($line =~ /\(.*\)\{/ && $line !~ /\($Type\){/) ||
> + if (($line =~ /\(.*\)\{/ && $line !~ /\($Type\)\{/) ||
> $line =~ /do\{/) {
> if (ERROR("SPACING",
> "space required before the open brace
> '{'\n" . $herecurr) &&
>
Suggested-by: Peter Senna Tschudin <peter.senna@xxxxxxxxx>
Reported-by: Geyslan G. Bem <geyslan@xxxxxxxxx>

>
>
> Do you think that these could be other not treated cases?
>
> geyslan@hb ~/Projects/linux $ grep "{/" scripts/checkpatch.pl
> 1233: $stmt =~ s/^\s*{//;
> 3109: if ($ctx !~ /{\s*/ && defined($lines[$ctx_ln - 1]) &&
> $lines[$ctx_ln - 1] =~ /^\+\s*{/) {
> 3160: $s =~ s/^\s*{//;
> 3266: if ($line =~ /^.\s*{/ &&
> 3274: $fixedline =~ s/\s*=\s*$/ = {/;
> 3289: if ($path =~ m{//}) {
> 3300: if ($line =~ m{//}) {
> 3412: if ($line =~
> /^.\s+(?:static\s+|const\s+)?char\s+\*\s*\w+\s*\[\s*\]\s*=\s*\{/) {
> 3598: if (($line=~/$Type\s*$Ident\(.*\).*\s*{/) and
> 3599: !($line=~/\#\s*define.*do\s\{/) and !($line=~/}/)) {
> 3617: if ($line =~ /^.\s*{/ &&
> 4111: if (($line =~ /\(.*\)\{/ && $line !~ /\($Type\)\{/) ||
> 4112: $line =~ /do\{/) {
> 4116: $fixed[$fixlinenr] =~ s/^(\+.*(?:do|\))){/$1 {/;
> 4588: $dstat !~ /^do\s*{/ && # do {...
> 4589: $dstat !~ /^\(\{/ && # ({...
> 4726: $seen++ if ($block =~ /^\s*{/);
> 4796: if ($block =~ /^\s*\{/) {
> 4801: if ($level == 0 && $block =~ /^\s*\{/ && !$allowed) {
>
>
>
>>
>>
>> --
>> Regards,
>>
>> Geyslan G. Bem
>> hackingbits.com
>
>
>
>
> --
> Regards,
>
> Geyslan G. Bem
> hackingbits.com



--
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/