[Bug tree-optimization/80147] missing maybe-uninitialized warning on variable with no side effects
egallager at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Oct 1 01:23:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80147
Eric Gallager <egallager at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-10-01
Ever confirmed|0 |1
--- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> ---
Confirmed, probably because optimization lets gcc take advantage of knowledge
that f1 doesn't actually use its parameter:
$ /usr/local/bin/gcc -c -Wall -Wextra -O1 80147.c
80147.c: In function ‘f1’:
80147.c:2:21: warning: unused parameter ‘i’ [-Wunused-parameter]
static void f1 (int i) { }
^
80147.c: In function ‘g’:
80147.c:8:2: warning: ‘i1’ is used uninitialized in this function
[-Wuninitialized]
f1 (i1);
^~~~~~~
80147.c:9:2: warning: ‘i2’ is used uninitialized in this function
[-Wuninitialized]
f2 (i2);
^~~~~~~
80147.c:3:26: warning: ‘j2’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
static void f2 (int i) { f0 (i); }
^~~~~~
80147.c:7:18: note: ‘j2’ was declared here
int i1, i2, j1, j2;
^~
$
...but if that's the case, then why doesn't the warning go away for i1, too?
More information about the Gcc-bugs
mailing list