[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