Hi, I have accidentally comitted in the following sanity check that fails and is discussed in https://gcc.gnu.org/pipermail/gcc-patches/2020-November/558538.html The current ipa-icf code is conservatively correct because alias_ptr_types_compatible_p returns false on ref_all_alias_ptr_type_p.
Comitted as obvious. I apologize for the breakage, Honza * tree-ssa-alias.c (ao_ref_base_alias_ptr_type, ao_ref_alias_ptr_type): Revert accidental commit diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 9f279c805e5..5ebbb087285 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -755,7 +755,6 @@ ao_ref_base_alias_ptr_type (ao_ref *ref) while (handled_component_p (base_ref)) base_ref = TREE_OPERAND (base_ref, 0); tree ret = reference_alias_ptr_type (base_ref); - gcc_checking_assert (get_deref_alias_set (ret) == ao_ref_base_alias_set (ref)); return ret; } @@ -768,7 +767,6 @@ ao_ref_alias_ptr_type (ao_ref *ref) if (!ref->ref) return NULL_TREE; tree ret = reference_alias_ptr_type (ref->ref); - gcc_checking_assert (get_deref_alias_set (ret) == ao_ref_alias_set (ref)); return ret; }