https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114574
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |lto --- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- Wrong TYPE_CANONICAL leads to wrong TBAA. And yes "fixing" TYPE_CANONICAL after the fact means possibly merging two equivalence classes which means you have to fix all members of both classes to have the corresponding TYPE_CANONICAL. Plus the complication of derived types (vector, pointer, and others) which have constraints based on their contained type equivalence class.