https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67781
--- Comment #6 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- So after performing the symbolic computation, the result is: 0x04030201 with 01 being the byte represented by b. This is correct so far and n->range shows 5 since 5 bytes have been touched. However, the base address points to a because that's the lowest value but the lowest byte in the symbolic number is the second byte in a. That's this inconsistency that's causing the bug. I'll come up with a patch tomorrow and do the testing.