Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1292655 > unrolled thread

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

Started by"Geyslan G. Bem" <geyslan@gmail.com>
First post2015-12-16 01:00 +0100
Last post2015-12-30 17:00 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [BUG] checkpatch: unescaped left brace in regex is deprecated "Geyslan G. Bem" <geyslan@gmail.com> - 2015-12-16 01:00 +0100
    Re: [BUG] checkpatch: unescaped left brace in regex is deprecated Joe Perches <joe@perches.com> - 2015-12-16 01:20 +0100
      Re: [BUG] checkpatch: unescaped left brace in regex is deprecated "Geyslan G. Bem" <geyslan@gmail.com> - 2015-12-16 12:30 +0100
        Re: [BUG] checkpatch: unescaped left brace in regex is deprecated "Geyslan G. Bem" <geyslan@gmail.com> - 2015-12-30 17:00 +0100

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

From"Geyslan G. Bem" <geyslan@gmail.com>
Date2015-12-16 01:00 +0100
SubjectRe: [BUG] checkpatch: unescaped left brace in regex is deprecated
Message-ID<qG7FF-2zx-23@gated-at.bofh.it>
2015-12-10 8:24 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
> 2015-12-09 19:59 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
>>
>>
>> 2015-12-07 20:36 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
>>>
>>> 2015-12-07 20:06 GMT-03:00 Joe Perches <joe@perches.com>:
>>> > 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@edkovsky.org>
>>> > 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@edkovsky.org>
>>> 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@gmail.com>
> Reported-by: Geyslan G. Bem <geyslan@gmail.com>
>

Joe, do you applied this patch? If not, would I send it?

Tks.

>>
>>
>> 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



-- 
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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1292659

FromJoe Perches <joe@perches.com>
Date2015-12-16 01:20 +0100
Message-ID<qG7Z0-2VN-7@gated-at.bofh.it>
In reply to#1292655
On Tue, 2015-12-15 at 20:58 -0300, Geyslan G. Bem wrote:
> 2015-12-10 8:24 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
> > Suggested-by: Peter Senna Tschudin <peter.senna@gmail.com>
> > Reported-by: Geyslan G. Bem <geyslan@gmail.com>
> > 
> 
> Joe, do you applied this patch? If not, would I send it?

You can resend, but I believe there are a few more instances
of this that might need fixing too.

I don't have perl 5.22 so it's difficult for me to test.

Here's a grep with some possible false positives
and maybe missing some too.

$ git grep -n "=[\!~].*{" scripts/checkpatch.pl|grep -vw qr|grep -vP '{$|{\s*#|\${|\\{|{[\d$]'
scripts/checkpatch.pl:1143:				$remainder =~ /^(else)(?:\s|{)/ &&
scripts/checkpatch.pl:1233:	$stmt =~ s/^\s*{//;
scripts/checkpatch.pl:2458:				if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
scripts/checkpatch.pl:2802:		if ($line =~ /^\+(.*)\(\s*$Type\s*\)([ \t]++)((?![={]|\\$|$Attribute|__attribute__))/ &&
scripts/checkpatch.pl:3015:			$s =~ s/{.*$//s;
scripts/checkpatch.pl:3168:			$s =~ s/^\s*{//;
scripts/checkpatch.pl:3274:		if ($line =~ /^.\s*{/ &&
scripts/checkpatch.pl:3282:				$fixedline =~ s/\s*=\s*$/ = {/;
scripts/checkpatch.pl:3285:				$fixedline =~ s/^(.\s*){\s*/$1/;
scripts/checkpatch.pl:3606:		if (($line=~/$Type\s*$Ident\(.*\).*\s*{/) and
scripts/checkpatch.pl:3613:				$fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/;
scripts/checkpatch.pl:3625:		if ($line =~ /^.\s*{/ &&
scripts/checkpatch.pl:3635:				$fixedline =~ s/^(.\s*){\s*/$1\t/;
scripts/checkpatch.pl:4104:## 		if ($line =~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Ident.*/ &&
scripts/checkpatch.pl:4124:				$fixed[$fixlinenr] =~ s/^(\+.*(?:do|\))){/$1 {/;
scripts/checkpatch.pl:4734:					$seen++ if ($block =~ /^\s*{/);

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

[toc] | [prev] | [next] | [standalone]


#1292910

From"Geyslan G. Bem" <geyslan@gmail.com>
Date2015-12-16 12:30 +0100
Message-ID<qGiro-175-23@gated-at.bofh.it>
In reply to#1292659
2015-12-15 21:13 GMT-03:00 Joe Perches <joe@perches.com>:
> On Tue, 2015-12-15 at 20:58 -0300, Geyslan G. Bem wrote:
>> 2015-12-10 8:24 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
>> > Suggested-by: Peter Senna Tschudin <peter.senna@gmail.com>
>> > Reported-by: Geyslan G. Bem <geyslan@gmail.com>
>> >
>>
>> Joe, do you applied this patch? If not, would I send it?
>
> You can resend, but I believe there are a few more instances
> of this that might need fixing too.
>
> I don't have perl 5.22 so it's difficult for me to test.
>
> Here's a grep with some possible false positives
> and maybe missing some too.
Ok, I'll try to trigger them before make the patch.

>
> $ git grep -n "=[\!~].*{" scripts/checkpatch.pl|grep -vw qr|grep -vP '{$|{\s*#|\${|\\{|{[\d$]'
> scripts/checkpatch.pl:1143:                             $remainder =~ /^(else)(?:\s|{)/ &&
> scripts/checkpatch.pl:1233:     $stmt =~ s/^\s*{//;
> scripts/checkpatch.pl:2458:                             if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
> scripts/checkpatch.pl:2802:             if ($line =~ /^\+(.*)\(\s*$Type\s*\)([ \t]++)((?![={]|\\$|$Attribute|__attribute__))/ &&
> scripts/checkpatch.pl:3015:                     $s =~ s/{.*$//s;
> scripts/checkpatch.pl:3168:                     $s =~ s/^\s*{//;
> scripts/checkpatch.pl:3274:             if ($line =~ /^.\s*{/ &&
> scripts/checkpatch.pl:3282:                             $fixedline =~ s/\s*=\s*$/ = {/;
> scripts/checkpatch.pl:3285:                             $fixedline =~ s/^(.\s*){\s*/$1/;
> scripts/checkpatch.pl:3606:             if (($line=~/$Type\s*$Ident\(.*\).*\s*{/) and
> scripts/checkpatch.pl:3613:                             $fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/;
> scripts/checkpatch.pl:3625:             if ($line =~ /^.\s*{/ &&
> scripts/checkpatch.pl:3635:                             $fixedline =~ s/^(.\s*){\s*/$1\t/;
> scripts/checkpatch.pl:4104:##           if ($line =~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Ident.*/ &&
> scripts/checkpatch.pl:4124:                             $fixed[$fixlinenr] =~ s/^(\+.*(?:do|\))){/$1 {/;
> scripts/checkpatch.pl:4734:                                     $seen++ if ($block =~ /^\s*{/);
>



-- 
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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1299410

From"Geyslan G. Bem" <geyslan@gmail.com>
Date2015-12-30 17:00 +0100
Message-ID<qLrkm-61-1@gated-at.bofh.it>
In reply to#1292910
2015-12-16 8:21 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
> 2015-12-15 21:13 GMT-03:00 Joe Perches <joe@perches.com>:
>> On Tue, 2015-12-15 at 20:58 -0300, Geyslan G. Bem wrote:
>>> 2015-12-10 8:24 GMT-03:00 Geyslan G. Bem <geyslan@gmail.com>:
>>> > Suggested-by: Peter Senna Tschudin <peter.senna@gmail.com>
>>> > Reported-by: Geyslan G. Bem <geyslan@gmail.com>
>>> >
>>>
>>> Joe, do you applied this patch? If not, would I send it?
>>
>> You can resend, but I believe there are a few more instances
>> of this that might need fixing too.
Only one regex from that list triggered the warning. Patch sent.

>>
>> I don't have perl 5.22 so it's difficult for me to test.
>>
>> Here's a grep with some possible false positives
>> and maybe missing some too.
> Ok, I'll try to trigger them before make the patch.
>
>>
>> $ git grep -n "=[\!~].*{" scripts/checkpatch.pl|grep -vw qr|grep -vP '{$|{\s*#|\${|\\{|{[\d$]'
>> scripts/checkpatch.pl:1143:                             $remainder =~ /^(else)(?:\s|{)/ &&
>> scripts/checkpatch.pl:1233:     $stmt =~ s/^\s*{//;
>> scripts/checkpatch.pl:2458:                             if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
>> scripts/checkpatch.pl:2802:             if ($line =~ /^\+(.*)\(\s*$Type\s*\)([ \t]++)((?![={]|\\$|$Attribute|__attribute__))/ &&
>> scripts/checkpatch.pl:3015:                     $s =~ s/{.*$//s;
>> scripts/checkpatch.pl:3168:                     $s =~ s/^\s*{//;
>> scripts/checkpatch.pl:3274:             if ($line =~ /^.\s*{/ &&
>> scripts/checkpatch.pl:3282:                             $fixedline =~ s/\s*=\s*$/ = {/;
>> scripts/checkpatch.pl:3285:                             $fixedline =~ s/^(.\s*){\s*/$1/;
>> scripts/checkpatch.pl:3606:             if (($line=~/$Type\s*$Ident\(.*\).*\s*{/) and
>> scripts/checkpatch.pl:3613:                             $fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/;
>> scripts/checkpatch.pl:3625:             if ($line =~ /^.\s*{/ &&
>> scripts/checkpatch.pl:3635:                             $fixedline =~ s/^(.\s*){\s*/$1\t/;
>> scripts/checkpatch.pl:4104:##           if ($line =~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Ident.*/ &&
>> scripts/checkpatch.pl:4124:                             $fixed[$fixlinenr] =~ s/^(\+.*(?:do|\))){/$1 {/;
>> scripts/checkpatch.pl:4734:                                     $seen++ if ($block =~ /^\s*{/);
>>
>
>
>
> --
> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web