https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120148
Bug ID: 120148
Summary: -fno-builtin suppresses -Wformat warnings
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: driver
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
Reproducer:
extern int printf(const char *, ...);
int main(void)
{
return printf("%s\n", 10);
}
When compiled with -Wformat like so:
gcc -Wformat test.c
test.c: In function ‘main’:
test.c:5:20: warning: format ‘%s’ expects argument of type ‘char *’, but
argument 2 has type ‘int’ [-Wformat=]
a warning is given as expected.
Adding -fno-builtin to the command line and the warning no longer shows up.
gcc -Wformat -fno-builtin test.c
The order of command line options is irrelevant.
This happens with 15.1.0 built from tarball. It is not new. 11.4.0 also has
this problem.
Observed on x86_64-linux-gnu and s390x-ibm-linux-gnu.