http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55892
sworddragon2 at aol dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID | --- Comment #2 from sworddragon2 at aol dot com 2013-01-07 08:01:36 UTC --- > Take a line which is 16 characters long. > The first time at beginning of the loop, limit: 8; readlimit: 8. > > The next time, limit:0 readlimit: 0. > The next time limit: (unsigned long)(-8) readlimit: INT32_MAX > Warn because readlimit > 1024. You are right, limit -= read_limit; makes anyway no sense there so I removed it (and the compiler wanring is gone too). But there is still something strange on the old example: Why does line 33 trigger the warning but line 34 not? The only difference between them is that line 33 uses a stack variable and line 34 a heap variable. Both have the same size so shouldn't this warning trigger on both lines?