https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115379
Bug ID: 115379 Summary: -Wformat warning reports the wrong floating-point type Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gccbugs at dima dot secretsauce.net Target Milestone: --- Hi. I have this program: #include <stdio.h> void tst(void) { float x; scanf("%f", x); } I compile and I see this: $ gcc-14 -Wall -Wextra -c -o tst2 tst2.c tst2.c: In function 'tst': tst2.c:5:13: warning: format '%f' expects argument of type 'float *', but argument 2 has type 'double' [-Wformat=] 5 | scanf("%f", x); | ~^ ~ | | | | | double | float * ... Note that argument 2 has type "float", but the warning message says that it has type "double". This is confusing. The actual bug is that it should be a pointer, but it isn't. This is gcc 14.1 from Debian version 14.1.0-1 Thanks