================
@@ -4906,12 +4906,22 @@ TemplateName
TreeTransform<Derived>::TransformTemplateName(
return TemplateName();
assert(!UnderlyingQualifier && "unexpected qualifier");
- if (!getDerived().AlwaysRebuild() &&
- QualifierLoc.getNestedNameSpecifier() == QTN->getQualifier() &&
+ NestedNameSpecifier QNNS = QualifierLoc.getNestedNameSpecifier();
+ if (!getDerived().AlwaysRebuild() && QNNS == QTN->getQualifier() &&
NewUnderlyingName == UnderlyingName)
return Name;
CXXScopeSpec SS;
SS.Adopt(QualifierLoc);
+ TemplateDecl *TD = NewUnderlyingName.getAsTemplateDecl();
+ if (TD && TD->getIdentifier() && QNNS != QTN->getQualifier()) {
+ CXXRecordDecl *RD = QNNS.getAsRecordDecl();
+ bool IsInjectedClassName = RD && isa<ClassTemplateDecl>(TD) &&
+ RD->getIdentifier() == TD->getIdentifier();
+ if (!IsInjectedClassName)
+ return getDerived().RebuildTemplateName(
+ SS, TemplateKWLoc, *TD->getIdentifier(), NameLoc, ObjectType,
+ AllowInjectedClassName);
+ }
----------------
mizvekov wrote:
Can you please point to the commit which fixed this?
https://github.com/llvm/llvm-project/pull/208345
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits