http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36299
--- Comment #9 from Vincent Lefèvre <vincent at vinc17 dot org> 2011-03-02 15:17:33 UTC --- (In reply to comment #8) > Every warning warns about something valid in C, otherwise it would be an error > not a warning. No, for instance: int main(void) { int i; return i; } This is undefined behavior and detected by GCC, but one gets only a warning: tst.c: In function ‘main’: tst.c:4: warning: ‘i’ is used uninitialized in this function Compare to a == 0 in the above testcase, which has a well-defined behavior.