[clang] [clang] Remove separate evaluation step for static class member init. (PR #142713)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 5 12:42:42 PDT 2025


================
@@ -143,3 +143,8 @@ namespace fold_initializer {
   const float A::f = __builtin_is_constant_evaluated();
   static_assert(fold(A::f == 1.0f));
 }
+
+struct GH99680 {
+  static const int x = 1/(1-__builtin_is_constant_evaluated()); // expected-error {{in-class initializer for static data member is not a constant expression}} \
+    // expected-note {{division by zero}}
----------------
shafik wrote:

Based on the example here: https://eel.is/c++draft/expr.const#28.5

I don't think the division by zero diagnostic makes sense.

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


More information about the cfe-commits mailing list