From: Dr. David von Oheimb Date: Thu, 29 Apr 2021 07:41:30 +0000 (+0200) Subject: check-format.pl: Fix false positive on struct/union/enum in func return type X-Git-Tag: openssl-3.0.0-beta1~461 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3fc80abfc71dbe6e74bdf2af09df328380096a8;p=thirdparty%2Fopenssl.git check-format.pl: Fix false positive on struct/union/enum in func return type Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/15077) --- diff --git a/util/check-format-test-negatives.c b/util/check-format-test-negatives.c index 89b8b19c2e3..c73cc04695b 100644 --- a/util/check-format-test-negatives.c +++ b/util/check-format-test-negatives.c @@ -273,11 +273,12 @@ static varref cmp_vars[] = { /* comment. comment? comment! */ /* comment */ \ } -/* 'struct' in function header */ -static int f(struct pem_pass_data *pass_data) +union un var; /* struct/union/enum in variable type */ +struct provider_store_st *f() /* struct/union/enum in function return type */ +{ +} +static void f(struct pem_pass_data *data) /* struct/union/enum in arg list */ { - if (pass_data == NULL) - return 0; } static void *fun(void) diff --git a/util/check-format.pl b/util/check-format.pl index 734022c5403..882b38de41d 100755 --- a/util/check-format.pl +++ b/util/check-format.pl @@ -929,10 +929,12 @@ while (<>) { # loop over all lines of all input files } # set $in_typedecl and potentially $hanging_offset for type declaration - if (!$in_expr && @nested_indents == 0 && # not in expression - m/(^|^.*\W)(typedef|struct|union|enum)(\W.*|$)$/ && - parens_balance($1) == 0) { # not in newly started expression - # not needed: $keyword_opening_brace = $2 if $3 =~ m/\{/; + if (!$in_expr && @nested_indents == 0 # not in expression + && m/(^|^.*\W)(typedef|struct|union|enum)(\W.*|$)$/ + && parens_balance($1) == 0 # not in newly started expression or function arg list + && ($2 eq "typedef" || !($3 =~ m/\s*\w++\s*(.)/ && $1 ne "{")) # 'struct'/'union'/'enum' not followed by '{' + # not needed: && $keyword_opening_brace = $2 if $3 =~ m/\{/; + ) { $in_typedecl++; $hanging_offset += INDENT_LEVEL if m/\*.*\(/; # '*' followed by '(' - seems consistent with Emacs C mode }