================ @@ -1162,12 +1179,32 @@ static ExprResult formImmediatelyDeclaredConstraint( // constraint of T. [...] CXXScopeSpec SS; SS.Adopt(NS); - ExprResult ImmediatelyDeclaredConstraint = S.CheckConceptTemplateId( - SS, /*TemplateKWLoc=*/SourceLocation(), NameInfo, - /*FoundDecl=*/FoundDecl ? FoundDecl : NamedConcept, NamedConcept, - &ConstraintArgs); - if (ImmediatelyDeclaredConstraint.isInvalid() || !EllipsisLoc.isValid()) - return ImmediatelyDeclaredConstraint; + ExprResult ImmediatelyDeclaredConstraint; + if (auto *CD = dyn_cast<ConceptDecl>(NamedConcept)) { + ImmediatelyDeclaredConstraint = S.CheckConceptTemplateId( + SS, /*TemplateKWLoc=*/SourceLocation(), NameInfo, + /*FoundDecl=*/FoundDecl ? FoundDecl : NamedConcept, CD, + &ConstraintArgs); + if (ImmediatelyDeclaredConstraint.isInvalid() || !EllipsisLoc.isValid()) + return ImmediatelyDeclaredConstraint; + } + // We have a template template parameter + else { + auto *CDT = dyn_cast<TemplateTemplateParmDecl>(NamedConcept); + ImmediatelyDeclaredConstraint = S.CheckVarOrConceptTemplateTemplateId( + SS, NameInfo, CDT, SourceLocation(), &ConstraintArgs); + if (ImmediatelyDeclaredConstraint.isInvalid()) + return ImmediatelyDeclaredConstraint; + UnresolvedSet<1> R; + R.addDecl(CDT); + ImmediatelyDeclaredConstraint = UnresolvedLookupExpr::Create( + S.getASTContext(), nullptr, SS.getWithLocInContext(S.getASTContext()), + SourceLocation(), NameInfo, false, &ConstraintArgs, R.begin(), R.end(), + /*KnownDependent=*/false, + /*KnownInstantiationDependent=*/false); ---------------- cor3ntin wrote:
I added that in CheckVarOrConceptTemplateTemplateId (and moved the creation of the UnresolvedLookupExpr there) https://github.com/llvm/llvm-project/pull/150823 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits