I noticed Tom was sending patches where smatch was recommending annotating functions as static when no previous declaration existed. Surely the compiler could make such recommendations as well, I thought. Looks like -Wmissing-variable-declarations can make such recommendations. GCC just added support for this warning (gcc 14.1.0 will ship with support), and all versions of clang relevant to building the kernel support this flag. Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> --- Changes in v2: - Fix typo in warning flag name. I thought I tested W=1 but I was looking at -Wmissing-declaration, not the expected -Wmissing-variable-declaration. Actually verified v2. - Link to v1: https://lore.kernel.org/r/20230807-missing_proto-v1-1-7f566b7ba5ca@xxxxxxxxxx --- scripts/Makefile.extrawarn | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index 40cd13eca82e..18ce75c5c384 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -32,6 +32,7 @@ KBUILD_CFLAGS += $(call cc-option, -Wunused-but-set-variable) KBUILD_CFLAGS += $(call cc-option, -Wunused-const-variable) KBUILD_CFLAGS += $(call cc-option, -Wpacked-not-aligned) KBUILD_CFLAGS += $(call cc-option, -Wstringop-truncation) +KBUILD_CFLAGS += $(call cc-option, -Wmissing-variable-declarations) # The following turn off the warnings enabled by -Wextra KBUILD_CFLAGS += -Wno-missing-field-initializers KBUILD_CFLAGS += -Wno-sign-compare --- base-commit: 52a93d39b17dc7eb98b6aa3edb93943248e03b2f change-id: 20230807-missing_proto-0cb90ec6454c Best regards, -- Nick Desaulniers <ndesaulniers@xxxxxxxxxx>