https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94988
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Alexandre Oliva from comment #9) > ISTM that the test invokes undefined behavior because the assignment and the > increment in the loop both modify the same storage without an intervening > sequence point. ISTM that the dynamic type of that storage is thus > uncertain, and accessing it afterwards, without an intervening store that > resolves its type either way, would also invoke undefined behavior. I think the source can be rewritten to *b = x; b++; and still show the original issue on the GIMPLE side.