http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56897
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2013-04-15 Ever Confirmed|0 |1 --- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2013-04-15 07:53:58 UTC --- (In reply to comment #0) > To reproduce, try this out: > > unsigned long foo = 0x010203040a0b0c0d; > printf("%02x", *((char *)&foo + 7)); > > With -O (and onwards) it will turn out to be zero; at every &X+15, > &X+23, etc. Depending on the offset from the frame pointer. Please create a self-sufficient executable testcase, following the instructions at [1]. I was not able to confirm the problem from the lines you posted. [1] http://gcc.gnu.org/bugs/