This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 02/23/2017 06:51 AM, Stephan Bergmann wrote:
At least with a recent GCC 7 trunk build ("gcc (GCC) 7.0.1 20170221 (experimental)"), I noticed that -Wformat-truncation warnings happen to not be emitted if and only if -Og is given:
That's unfortunately a bug. The warning runs at different stages depending on whether or not optimization is enabled and it looks like the global GCC variable it uses to determine this is not set for -Og. Can you please open a bug in Bugzilla? Thanks Martin
$ cat test.c #include <stdio.h> int main() { char buf[3]; snprintf(buf, sizeof buf, "%s", "foo"); return 0; } $ gcc -Wformat-truncation -Og ~/test.c $ gcc -Wformat-truncation -O ~/test.c test.c: In function ‘main’: test.c:4:34: warning: ‘snprintf’ output truncated before the last format character [-Wformat-truncation=] snprintf(buf, sizeof buf, "%s", "foo"); ^ test.c:4:5: note: ‘snprintf’ output 4 bytes into a destination of size 3 snprintf(buf, sizeof buf, "%s", "foo"); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Any other optimization level (-O1..3/s/fast) does emit the warning. The documentation makes it clear that the behavior of that warning may be coupled to the optimization level, but this difference between -Og and everything else still looks somewhat odd. Could it be by mistake?
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |