check-format.pl: Fix false positive on struct/union/enum in func return type

Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15077)
This commit is contained in:
Dr. David von Oheimb 2021-04-29 09:41:30 +02:00 committed by Dr. David von Oheimb
parent 9ad9002dd5
commit d3fc80abfc
2 changed files with 11 additions and 8 deletions

View File

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

View File

@ -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' <name> 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
}