[Bug c++/38980] New: missing -Wformat warning on const char format string
sebor at roguewave dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 26 20:29:00 GMT 2009
When compiled with gcc 3.4.6 with -m32 on x86_64 Linux the compiler flags lines
7, 10, and 13 as expected. But when compiled with gcc 4.3.1, only line 7 is
diagnosed.
$ cat -n t.cpp && g++ -dumpversion && g++ -Wformat -m32 -c t.cpp
1 #include <stdio.h>
2
3 void foo (size_t n)
4 {
5 char buf [32];
6
7 sprintf (buf, "%" "l" "u", n);
8
9 static const char fmt0[] = "%" "l" "u";
10 sprintf (buf, fmt0, n);
11
12 const char fmt1[] = "%" "l" "u";
13 sprintf (buf, fmt1, n);
14
15 static char fmt2[] = "%" "l" "u";
16 sprintf (buf, fmt2, n);
17
18 char fmt3[] = "%" "l" "u";
19 sprintf (buf, fmt3, n);
20 }
3.4.6
t.cpp: In function `void foo(size_t)':
t.cpp:7: warning: long unsigned int format, size_t arg (arg 3)
t.cpp:10: warning: long unsigned int format, size_t arg (arg 3)
t.cpp:13: warning: long unsigned int format, size_t arg (arg 3)
$
$ g++ -dumpversion && g++ -Wformat -m32 -c t.cpp
4.3.1
t.cpp: In function 'void foo(size_t)':
t.cpp:7: warning: format '%lu' expects type 'long unsigned int', but argument 3
has type 'size_t'
$
--
Summary: missing -Wformat warning on const char format string
Product: gcc
Version: 4.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sebor at roguewave dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38980
More information about the Gcc-bugs
mailing list