https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70029
--- Comment #14 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Jason Merrill from comment #13) > I believe r241831 fixed the actual problem that verify_type was catching. > This still fails because free_lang_data_in_type clears TYPE_LANG_FLAG_4 on > 't' but not 'ct'. No, that's not it. The issue is still that build_ref_qualified_type creates a variant, and build_type_attribute_qual_variant doesn't know how to recreate that, so it returns a type that is its own main variant. We'll run into the same issue with exception specifications. So it seems we need a langhook somewhere in BTAQV or build_distinct_type_copy, to reproduce the language qualifiers and variant relationship.