[clang] [Clang] Fix crash on non-parameter NTTP arguments during partial ordering (PR #231599)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 14 08:49:33 PDT 2026


================
@@ -257,9 +257,10 @@ getNTTParameterFromExpr(const Expr *E, UnsignedOrNone Depth) {
 }
 
 QualType Sema::getTypeOfConstantTemplateParameter(const TemplateArgument &Arg) {
-  if (NonTypeOrVarTemplateParmDecl NTTP =
-          getNTTParameterFromExpr(Arg.getAsExpr(), std::nullopt))
-    return NTTP.getType();
+  if (Arg.getKind() == TemplateArgument::Expression)
+    if (NonTypeOrVarTemplateParmDecl NTTP =
+            getNTTParameterFromExpr(Arg.getAsExpr(), std::nullopt))
+      return NTTP.getType();
   return QualType();
----------------
cor3ntin wrote:

```suggestion
  return Arg.getNonTypeTemplateArgumentType();
```

https://github.com/llvm/llvm-project/pull/231599


More information about the cfe-commits mailing list