[clang] [Clang] Fix ICE in constraint normalization when substituting concept template parameters (PR #184406)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 4 07:45:16 PST 2026
================
@@ -4481,11 +4481,39 @@ ExprResult Sema::SubstConceptTemplateArguments(
ExprResult TransformUnresolvedLookupExpr(UnresolvedLookupExpr *E,
bool IsAddressOfOperand = false) {
- if (E->isConceptReference()) {
- ExprResult Res = SemaRef.SubstExpr(E, MLTAL);
- return Res;
- }
- return E;
+ if (!E->isConceptReference())
+ return E;
+
+ NamedDecl *D = *E->decls_begin();
+ ConceptDecl *ResolvedConcept = nullptr;
+
+ if (const auto * const TTP = dyn_cast<TemplateTemplateParmDecl>(D)) {
+ const auto Depth = TTP->getDepth();
+ const auto Pos = TTP->getPosition();
----------------
zyn0217 wrote:
```suggestion
unsigned Depth = TTP->getDepth();
unsigned Pos = TTP->getPosition();
```
https://github.com/llvm/llvm-project/pull/184406
More information about the cfe-commits
mailing list