https://github.com/SamrudhNelli updated 
https://github.com/llvm/llvm-project/pull/180376

>From 6009736c9f52e136483a9c5804cb8dfee3826031 Mon Sep 17 00:00:00 2001
From: Samrudh Nelli <[email protected]>
Date: Sun, 8 Feb 2026 04:33:08 +0530
Subject: [PATCH] [clang] Fix crashes when initializing constexpr int* with
 floating-point

Call isNullPointer() only when we are sure that the Rvalue is a pointer.
---
 clang/lib/Sema/SemaInit.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index ff278bc7471bd..3c19512595bae 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -8503,8 +8503,9 @@ ExprResult InitializationSequence::Perform(Sema &S,
         Expr::EvalResult ER;
         if (Entity.getType()->getAs<PointerType>() &&
             CurInit.get()->EvaluateAsRValue(ER, S.Context) &&
-            !ER.Val.isNullPointer()) {
+            (!ER.Val.isLValue() || !ER.Val.isNullPointer())) {
           S.Diag(Kind.getLocation(), diag::err_c23_constexpr_pointer_not_null);
+          return ExprError();
         }
       }
 

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to