diff options
author | Jason Merrill <jason@redhat.com> | 2019-11-27 17:05:41 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-11-27 17:05:41 -0500 |
commit | 96cbfa7ff8a146febd6af9a53d10468a90706419 (patch) | |
tree | f585e46432a0cccd16721f316ffa8727271560fa /gcc/tree-inline.c | |
parent | a92cc0da1c4c85b5ac8bb3eb013946ee9ad3a40f (diff) | |
download | gcc-96cbfa7ff8a146febd6af9a53d10468a90706419.zip gcc-96cbfa7ff8a146febd6af9a53d10468a90706419.tar.gz gcc-96cbfa7ff8a146febd6af9a53d10468a90706419.tar.bz2 |
PR c++/92206 - ICE with typedef to dependent alias.
rsandifo's patch for 92206 demonstrated a problem with the existing checking
for alias template specializations: they were returning false for a typedef
to an alias template specialization. Which is sometimes what the caller
wants, and sometimes not: Sometimes we're interested in whether the type was
written as an alias template-id, and sometimes whether it represents one.
The testcase illustrates a case that remained wrong with the earlier patch:
if the typedef is itself an alias template specialization, we can't strip an
underlying dependent alias.
* pt.c (dependent_alias_template_spec_p)
(alias_template_specialization_p): Add transparent_typedefs
parameter.
(iterative_hash_template_arg, any_template_parm_r)
(primary_template_specialization_p, tsubst, dependent_type_p_r):
Adjust.
* decl.c (check_elaborated_type_specifier): Adjust.
* error.c (dump_template_bindings, dump_aggr_type): Adjust.
From-SVN: r278784
Diffstat (limited to 'gcc/tree-inline.c')
0 files changed, 0 insertions, 0 deletions