https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100729
Bug ID: 100729 Summary: Inconsistency in -Wformat-extra-args when first-to-check is 0 and format string is NULL Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: wellnhofer at aevum dot de Target Milestone: --- This doesn't generate a warning: ---------------------------------------------- #include <stddef.h> __attribute__ ((format(printf, 1, 0))) void format(const char *fmt); void test(void) { format(NULL); } ---------------------------------------------- But simply appending another parameter does: ---------------------------------------------- #include <stddef.h> __attribute__ ((format(printf, 1, 0))) void format(const char *fmt, int extra); void test(void) { format(NULL, 0); } ---------------------------------------------- I have no idea whether NULL format strings should generate a warning when first-to-check is 0, but extra parameters should not change the behavior.