In foo() below, I'd expect gcc to emit a warning about use of i without initialization, but this does not happen.
reg...@john-home:~$ current-gcc -O -Wall uninit.c -o uninit reg...@john-home:~$ current-gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../configure --prefix=/home/regehr/z/tmp/gcc-r151949-install --program-prefix=r151949- --enable-languages=c,c++ Thread model: posix gcc version 4.5.0 20090921 (experimental) (GCC) reg...@john-home:~$ cat uninit.c #include <stdio.h> void foo (void) { int i; for (; i<10; i=11) { } } int main (void) { foo(); return 0; } -- Summary: failure to warn about uninitialized induction var Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: regehr at cs dot utah dot edu GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41441