In gcc, certain warnings require optimization to be enabled. For example:
int foo() {
int x;
return x;
}
In order to detect the uninitialized variable, -O must be passed.
$ gcc -W -Wall -c test.c
$ gcc -W -Wall -c test.c -O
test.c: In function ‘foo’:
test.c:3: warning: ‘x’ is used uninitialized in this function
However, this can interfere with debugging. Is there a way to enable just the analysis phases needed for warnings (and not just this particular warning, but as many as possible), without affecting the generated code too much?
I'm using gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) on x86-64.
Best Answer
Try using
-Wall
instead of-W
.-W
is deprecated IIRC. (As Jonathan Leffler points out in a comment,-W
's replacement is-Wextra
, not-Wall
.)[Edit]
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html#Warning-Options
[Edit]
This behavior has changed in GCC 4.4: