================
@@ -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

Reply via email to