https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49330
--- Comment #37 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Namniav from comment #36) > (In reply to Richard Biener from comment #35) > > It's "subtle" only in a way showing that we simplify ia == ib ? ia : ib > > to ib and that we simplify (int *)(uintptr_t)(&b + 1) to (&b + 1). > > But it's in the branch of `if (ia == ib)`. Did you mean that the result of > `ia == ib` is allowed to be inconsistent? No, I pointed out the expression 'ia == ib ? ia : ib' is simplified to 'ib' independent on context because that simplification is always valid. This is just another way where provenance is wrongly associated with equivalences.