[clang] [clang] Reject VLAs in `__is_layout_compatible()` (PR #87737)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 5 08:15:07 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]));
----------------
AaronBallman wrote:

I'm fine with splitting the work across multiple patches so long as we get to the desired end state (or have issues filed to track what that end state should be).

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


More information about the cfe-commits mailing list