[clang] [Clang] Diagnose invalid object size kinds during constant evaluation (PR #230979)

Timm Baeder via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 12 05:21:27 PDT 2026


================
@@ -30,6 +30,8 @@ int f3(void) {
   return OBJECT_SIZE_BUILTIN(&a, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
 }
 
+_Static_assert(OBJECT_SIZE_BUILTIN((void *)0, -1), ""); // expected-error {{static assertion expression is not an integral constant expression}} expected-note {{argument value -1 is outside the valid range [0, 3]}}
+_Static_assert(OBJECT_SIZE_BUILTIN((void *)0, 4), ""); // expected-error {{static assertion expression is not an integral constant expression}} expected-note {{argument value 4 is outside the valid range [0, 3]}}
----------------
tbaederr wrote:

```suggestion
_Static_assert(OBJECT_SIZE_BUILTIN((void *)0, -1), ""); // expected-error {{static assertion expression is not an integral constant expression}} \
                                                           expected-note {{argument value -1 is outside the valid range [0, 3]}}
_Static_assert(OBJECT_SIZE_BUILTIN((void *)0, 4), ""); // expected-error {{static assertion expression is not an integral constant expression}} \
                                                          expected-note {{argument value 4 is outside the valid range [0, 3]}}
```

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


More information about the cfe-commits mailing list