diff options
author | Patrick Palka <ppalka@redhat.com> | 2025-04-05 22:39:15 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2025-04-05 22:39:15 -0400 |
commit | 7a91400c142899ea0aeb8b62577496cf24c68156 (patch) | |
tree | 4b050c8ae9fca711abfd314eb31229ef097f4822 /gcc/rust/resolve/rust-name-resolution-context.h | |
parent | 58c5055162b698dab6a493b1f90c18af1a34ac65 (diff) | |
download | gcc-7a91400c142899ea0aeb8b62577496cf24c68156.zip gcc-7a91400c142899ea0aeb8b62577496cf24c68156.tar.gz gcc-7a91400c142899ea0aeb8b62577496cf24c68156.tar.bz2 |
c++: maybe_dependent_member_ref and typenames [PR118626]
Here during maybe_dependent_member_ref for accepted_type<_Up>, we
correctly don't strip the typedef because it's a complex one (its
defaulted template parameter isn't used in its definition) and so
we recurse to consider its corresponding TYPE_DECL.
We then incorrectly decide to not rewrite this use because of the
TYPENAME_TYPE shortcut. But I don't think this shortcut should apply to
a typedef TYPE_DECL.
PR c++/118626
gcc/cp/ChangeLog:
* pt.cc (maybe_dependent_member_ref): Restrict TYPENAME_TYPE
shortcut to non-typedef TYPE_DECL.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/class-deduction-alias25a.C: New test.
Reviewed-by: Jason Merrill <jason@redhat.com>
Diffstat (limited to 'gcc/rust/resolve/rust-name-resolution-context.h')
0 files changed, 0 insertions, 0 deletions