https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66166
Mikhail Maltsev <miyuki at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |miyuki at gcc dot gnu.org --- Comment #2 from Mikhail Maltsev <miyuki at gcc dot gnu.org> --- Why should not it abort? Suppose that RHS of the outermost comparison operator is evaluated first. Then c = 1, e = 0, a = 0, p = 8. In the first iteration of the loop p is assigned value 0, and b gets the same value. At -O0 LHS is probably evaluated first (the order of evaluation is unspecified).