http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42145
--- Comment #11 from Marcel Telka <marcel at telka dot sk> --- It is reproducible even with -O1: int f(void); int main(void) { int a, b; a = f(); if (a) b = f(); if (a && b) return 1; return 0; } $ gcc -O1 -Wuninitialized -c a.c a.c: In function 'main': a.c:12:15: warning: 'b' may be used uninitialized in this function [-Wmaybe-uninitialized] if (a && b) ^ $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/lto-wrapper Target: sparc-sun-solaris2.11 Configured with: /ws/builds2/jenkins/src/du/dilos-userland-review/components/gcc48/gcc-4.8.2/configure --prefix=/usr/gcc/4.8 --mandir=/usr/gcc/4.8/share/man --bindir=/usr/gcc/4.8/bin --libdir=/usr/gcc/4.8/lib --sbindir=/usr/gcc/4.8/sbin --infodir=/usr/share/info --without-gnu-as --with-as=/usr/bin/as --build=sparc-sun-solaris2.11 --infodir=/usr/gcc/4.8/share/info --libexecdir=/usr/gcc/4.8/lib --enable-languages=c,c++,fortran,objc --enable-shared --enable-targets=sparcv9-sun-solaris2.11 --without-gnu-ld --with-ld=/usr/bin/ld Thread model: posix gcc version 4.8.2 (GCC) $