Considering the attached reduced-testcase, gcc will trigger the following warning: % gcc -m32 -Wall -Os -c -S -o /dev/null foo.c foo.c: In function 'foo': foo.c:9:12: warning: 'b' may be used uninitialized in this function Affected gcc is: % gcc -v Using built-in specs. [...] Thread model: posix gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) however, gcc from trunk (as of 20110609) also produces the warning: /src/x86-64/obj/destdir/bin/x86_64-none-linux-gcc -m32 -Wall -Os -c -S -o /dev/null foo.c foo.c: In function 'foo': foo.c:14:21: warning: 'b' may be used uninitialized in this function [-Wmaybe-uninitialized] This warning only shows up at -Os. Mailing list reference: http://gcc.gnu.org/ml/gcc-help/2011-07/msg00243.html
Created attachment 24834 [details] reduced testcase
This is a semi standard issue with uninitialized variable warnings.
Still present in GCC 4.8.0pr49848.c: In function ‘foo’: pr49848.c:14:21: warning: ‘b’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (a != NULL && b != NULL) ^
Another case where throttling optimizations inhibits accurate warnings. *** This bug has been marked as a duplicate of bug 42145 ***