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

Reply via email to