================
@@ -606,8 +606,11 @@ TemplateArgumentLoc::TemplateArgumentLoc(ASTContext &Ctx,
       LocInfo(Ctx, TemplateKWLoc, QualifierLoc, TemplateNameLoc, EllipsisLoc) {
   assert(Argument.getKind() == TemplateArgument::Template ||
          Argument.getKind() == TemplateArgument::TemplateExpansion);
-  assert(QualifierLoc.getNestedNameSpecifier() ==
-         Argument.getAsTemplateOrTemplatePattern().getQualifier());
+  // We can't assume QualifierLoc.getNestedNameSpecifier() ==
+  // Argument.getAsTemplateOrTemplatePattern().getQualifier() at this point,
+  // because in template rewriting, we may substitute a DependentTemplateName
+  // (which has a NNSLoc) into a template template parameter (which
+  // doesn't have a NNSLoc).
----------------
zyn0217 wrote:

I explained why under the corresponding regression case. Let's move our 
conversation there

https://github.com/llvm/llvm-project/pull/141776
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to