[clang] [clang] Reject VLAs in `__is_layout_compatible()` (PR #87737)
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 5 06:50:16 PDT 2024
================
@@ -1741,8 +1741,10 @@ void is_layout_compatible(int n)
static_assert(!__is_layout_compatible(unsigned char, signed char));
static_assert(__is_layout_compatible(int[], int[]));
static_assert(__is_layout_compatible(int[2], int[2]));
- static_assert(!__is_layout_compatible(int[n], int[2])); // FIXME: VLAs should be rejected
- static_assert(!__is_layout_compatible(int[n], int[n])); // FIXME: VLAs should be rejected
+ static_assert(!__is_layout_compatible(int[n], int[2]));
+ // expected-error at -1 {{variable length arrays are not supported for '__is_layout_compatible'}}
+ static_assert(!__is_layout_compatible(int[n], int[n]));
----------------
Endilll wrote:
I recognize that discussion has spiraled out of VLAs into incomplete types and flexible array members, but can I keep the original scope of this PR, focusing on just VLAs?
https://github.com/llvm/llvm-project/pull/87737
More information about the cfe-commits
mailing list