https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87843
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- But the following fixes it: diff --git a/gcc/alias.c b/gcc/alias.c index 7963ece291a..4c88c0980d3 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1235,14 +1235,14 @@ record_component_aliases (tree type) Accesses to it conflicts with accesses to any other pointer type. */ tree t = TREE_TYPE (field); - if (in_lto_p) + if (1) { /* VECTOR_TYPE and ARRAY_TYPE share the alias set with their element type and that type has to be normalized to void *, too, in the case it is a pointer. */ while (!canonical_type_used_p (t) && !POINTER_TYPE_P (t)) { - gcc_checking_assert (TYPE_STRUCTURAL_EQUALITY_P (t)); + gcc_checking_assert (!in_lto_p || TYPE_STRUCTURAL_EQUALITY_P (t)); t = TREE_TYPE (t); } if (POINTER_TYPE_P (t))