[clang] [Clang][Sema] Use correct TemplateName when transforming TemplateSpecializationType (PR #93411)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Sun May 26 08:39:14 PDT 2024
================
@@ -7216,9 +7216,30 @@ TreeTransform<Derived>::TransformElaboratedType(TypeLocBuilder &TLB,
return QualType();
}
- QualType NamedT = getDerived().TransformType(TLB, TL.getNamedTypeLoc());
- if (NamedT.isNull())
- return QualType();
+ QualType NamedT;
+ if (SemaRef.getLangOpts().CPlusPlus20 && QualifierLoc &&
+ isa<TemplateSpecializationType>(TL.getNamedTypeLoc().getType())) {
+ TemplateSpecializationTypeLoc SpecTL =
+ TL.getNamedTypeLoc().castAs<TemplateSpecializationTypeLoc>();
+ const TemplateSpecializationType *TST =
+ SpecTL.getType()->castAs<TemplateSpecializationType>();
----------------
zyn0217 wrote:
```c++
if (QualType QT = TL.getNamedTypeLoc().getType(); ... && isa<...>(QT)) {
auto SpecTL = ...;
auto *TST = QT.getTypePtr();
}
```
Probably looks better.
https://github.com/llvm/llvm-project/pull/93411
More information about the cfe-commits
mailing list