<-- snip --> $ cat test.c int foo, bar;
void decode_reloc(int reloc, int *is_alt) { if (reloc >= 20) *is_alt = 1; else if (reloc >= 10) *is_alt = 0; } void testfunc() { int alt_reloc; decode_reloc(foo, &alt_reloc); if (alt_reloc) bar = 42; } $ gcc -O2 -Wall -c test.c test.c: In function âtestfuncâ: test.c:17: warning: âalt_relocâ is used uninitialized in this function $ <-- snip --> A "may be used uninitialized in this function" warning might be appropriate here, but gcc seems to wrongly think it can prove "alt_reloc" was for sure uninitialized here. -- Summary: [4.3/4.4 Regression] bogus "is used uninitialized in this function" warning Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bunk at stusta dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35609