From: Dr. David von Oheimb Date: Tue, 12 Jul 2022 22:05:48 +0000 (+0200) Subject: check-format.pl: fix false positive on 'for(;; stmt)' X-Git-Tag: openssl-3.2.0-alpha1~2356 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e9fa07121abf3ebaaf7e0367bd9be3a8b273ebf;p=thirdparty%2Fopenssl.git check-format.pl: fix false positive on 'for(;; stmt)' Reviewed-by: Richard Levitte Reviewed-by: Paul Dale Reviewed-by: Hugo Landau (Merged from https://github.com/openssl/openssl/pull/18789) --- diff --git a/util/check-format-test-negatives.c b/util/check-format-test-negatives.c index 4d925572c40..58a1f59e6c5 100644 --- a/util/check-format-test-negatives.c +++ b/util/check-format-test-negatives.c @@ -70,6 +70,10 @@ int f(void) /* ; for (i = 0; i < 1;) ; + for (;;) + for (; i < n; i++) + for (;; p++) + ; for (;;) ; /* should not trigger: space before ';' */ lab: ; /* should not trigger: space before ';' */ diff --git a/util/check-format.pl b/util/check-format.pl index 705455020df..9fcebb43823 100755 --- a/util/check-format.pl +++ b/util/check-format.pl @@ -677,6 +677,7 @@ while (<>) { # loop over all lines of all input files $intra_line =~ s/\s+$//; # strip any (resulting) space at EOL $intra_line =~ s/(for\s*\([^;]*);;(\))/"$1$2"/eg; # strip trailing ';;' in for (;;) $intra_line =~ s/(for\s*\([^;]+;[^;]+);(\))/"$1$2"/eg; # strip trailing ';' in for (;;) + $intra_line =~ s/(for\s*\();(;)/"$1$2"/eg; # replace leading ';;' in for (;;) by ';' $intra_line =~ s/(=\s*)\{ /"$1@ "/eg; # do not report {SPC in initializers such as ' = { 0, };' $intra_line =~ s/, \};/, @;/g; # do not report SPC} in initializers such as ' = { 0, };' report("space before '$1'") if $intra_line =~ m/[\w)\]]\s+(\+\+|--)/; # postfix ++/-- with preceding space