Commit f758440d authored by Taylor Nelms's avatar Taylor Nelms Committed by Andrew Morton
Browse files

checkpatch: exclude forward declarations of const structs

Limit checkpatch warnings for normally-const structs by excluding patterns
consistent with forward declarations.

For example, the forward declaration `struct regmap_access_table;` in a
header file currently generates a warning recommending that it is
generally declared as const; however, this would apply a useless type
qualifier in the empty declaration `const struct regmap_access_table;`,
and subsequently generate compiler warnings.

Link: https://lkml.kernel.org/r/20260331181509.1258693-1-tknelms@google.com


Signed-off-by: default avatarTaylor Nelms <tknelms@google.com>
Acked-by: default avatarJoe Perches <joe@perches.com>
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent cc82b3dc
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -7512,10 +7512,10 @@ sub process {
		}

# check for various structs that are normally const (ops, kgdb, device_tree)
# and avoid what seem like struct definitions 'struct foo {'
# and avoid what seem like struct definitions 'struct foo {' or forward declarations 'struct foo;'
		if (defined($const_structs) &&
		    $line !~ /\bconst\b/ &&
		    $line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) {
		    $line =~ /\bstruct\s+($const_structs)\b(?!\s*[\{;])/) {
			WARN("CONST_STRUCT",
			     "struct $1 should normally be const\n" . $herecurr);
		}