http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60294
Bug ID: 60294
Summary: missing diagnostic with -Wmaybe-uninitialized
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gmail dot com
The documentation for the -Wmaybe-uninitialized option includes an example
similar to the one below to demonstrate the conditions under which GCC is
expected to issue a diagnostic. However, GCC fails to issue the expected
diagnostic when the option is used (it does issue it with -Wall, -Wextra, and,
contrary to expectations, with -Wuninitialized).
$ (set -x && cat t.c && for w in all extra uninitialized maybe-uninitialized;
do gcc -O2 -Werror -W$w -c -o/dev/null t.c && echo success; done)
+ cat t.c
void foo (int);
void bar (int y) {
int x;
switch (y)
{
case 1: x = 1;
break;
case 2: x = 4;
break;
case 3: x = 5;
}
foo (x);
}
+ for w in all extra uninitialized maybe-uninitialized
+ gcc -O2 -Werror -Wall -c -o/dev/null t.c
t.c: In function ‘bar’:
t.c:12:9: error: ‘x’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
foo (x);
^
cc1: all warnings being treated as errors
+ for w in all extra uninitialized maybe-uninitialized
+ gcc -O2 -Werror -Wextra -c -o/dev/null t.c
t.c: In function ‘bar’:
t.c:12:9: error: ‘x’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
foo (x);
^
cc1: all warnings being treated as errors
+ for w in all extra uninitialized maybe-uninitialized
+ gcc -O2 -Werror -Wuninitialized -c -o/dev/null t.c
t.c: In function ‘bar’:
t.c:12:9: error: ‘x’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
foo (x);
^
cc1: all warnings being treated as errors
+ for w in all extra uninitialized maybe-uninitialized
+ gcc -O2 -Werror -Wmaybe-uninitialized -c -o/dev/null t.c
+ echo success
success