https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83187
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The problem is that we have a type (complex double) where TYPE_CANONICAL (TYPE_MAIN_VARIANT (t)) != TYPE_MAIN_VARIANT (TYPE_CANONICAL (TYPE_MAIN_VARIANT (t))) which get_alias_set code asserts on, because it does: t = TYPE_MAIN_VARIANT (t); ... if (TYPE_STRUCTURAL_EQUALITY_P (t)) ... else t = TYPE_CANONICAL (t); gcc_checking_assert (t == TYPE_MAIN_VARIANT (t)); Nathan, can you please have a look?