https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118887
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- # RANGE [irange] unsigned long [8, +INF] MASK 0xfffffffffffffff8 VALUE 0x0 _21 = (unsigned long) &sD.2327; # RANGE [irange] unsigned long [0, 0][8, 47][49, +INF] MASK 0xfffffffffffffff8 VALUE 0x0 ivtmp.16_20 = _21 + 48; vs # RANGE [irange] unsigned long [8, +INF] MASK 0xfffffffffffffff8 VALUE 0x0 ivtmp.16_20 = (unsigned long) &MEM <struct S[50]> [(voidD.45 *)&sD.2292 + 48B]; Maybe r15-6657-g405c99c17210a5 .