aboutsummaryrefslogtreecommitdiff
path: root/include/gdb/gdb-index.h
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2024-07-25 19:05:19 -0400
committerPatrick Palka <ppalka@redhat.com>2024-07-25 19:05:19 -0400
commit523836716137d0f7f4088c85752a980f5f971b36 (patch)
treed23dc2a57c10495d0554d31d6eebe0e7a911adf7 /include/gdb/gdb-index.h
parent9bcad238837e2100978cd839c343c488f72e1d4a (diff)
downloadgcc-523836716137d0f7f4088c85752a980f5f971b36.zip
gcc-523836716137d0f7f4088c85752a980f5f971b36.tar.gz
gcc-523836716137d0f7f4088c85752a980f5f971b36.tar.bz2
c++: non-template alias with dependent attributes [PR115897]
This patch generalizes our support for dependent attributes on alias templates to also support them on non-template aliases. The main addition is a new predicate dependent_opaque_alias_p controlling whether we can treat an alias (template or non-template) as type-equivalent to its expansion. PR c++/115897 gcc/cp/ChangeLog: * cp-tree.h (dependent_opaque_alias_p): Declare. * pt.cc (push_template_decl): Manually mark a dependent opaque alias or dependent alias template specialization as dependent, and use structural equality for them. (dependent_opaque_alias_p): Define. (alias_template_specialization_p): Don't look through an opaque alias. (complex_alias_template_p): Use dependent_opaque_alias_p instead of any_dependent_template_arguments_p directly. (dependent_alias_template_spec_p): Don't look through an opaque alias. (get_underlying_template): Use dependent_opaque_alias_p instead of any_dependent_template_arguments_p. (instantiate_alias_template): Mention same logic in push_template_decl. (dependent_type_p_r): Remove dependent_alias_template_spec_p check. (any_template_arguments_need_structural_equality_p): Return true for a dependent opaque alias. (alias_ctad_tweaks): Use template_args_equal instead of same_type_p followed by dependent_alias_template_spec_p. * tree.cc (strip_typedefs): Don't strip an opaque alias. * typeck.cc (structural_comptypes): Compare declaration attributes for an opaque alias. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/alias-decl-79.C: Remove xfails. * g++.dg/cpp0x/alias-decl-79a.C: New test. Reviewed-by: Jason Merrill <jason@redhat.com>
Diffstat (limited to 'include/gdb/gdb-index.h')
0 files changed, 0 insertions, 0 deletions