Jeffrey Walton <noloader@xxxxxxxxx> writes: | On Tue, Mar 5, 2013 at 1:41 PM, Lars Gullik Bjønnes <larsbj@xxxxxxxxxx> wrote: >> I get a lot of warnings with -Og and gcc from trunk. >> I do not get these warnings with any other warning level. >> >> This is a reduced example: >> ---------- >> int foo(void); >> >> int failing(void) >> { >> int r; >> unsigned int i; >> struct h * p[3]; >> >> for (i = 0; i < sizeof(p) / sizeof(p[0]); ++i) { >> r = foo(); >> if (r != 0) >> break; >> } >> return r >= 0; >> } >> ----------- >> >> Compile with: gcc -Og -Wall -c fil.c >> >> gcc --version >> gcc (GCC) 4.8.0 20130304 (experimental) >> >> Should I create a bug on this, or will someone else handle that? | What warnings? $ gcc -Og -Wall -c fil.c fil.c: In function ‘failing’: fil.c:14:11: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized] return r >= 0; ^ | The code does not look correct to me (but I could be wrong). Does | 'sizeof(p) / sizeof(p[0])' produce correct results when using | pointers? I belive that part to be correct. -- Lgb