https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118900
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ((&b[1] - (a & ~a)) - a) goes outside of the array bounds of b. so it becomes undefined, at the second iteration But in this case, it just happens the address of c is at &b[-6] b 0x404038 b[2] 0x404040 e 0x404020 ae 1 aexpr 0x40403c eexpr 0x404020 ae 0 aexpr 0x404038 eexpr 0x404020 ae -2 aexpr 0x404030 eexpr 0x404020 ae -6 aexpr 0x404020 eexpr 0x404020