[clang] [clang] add array out-of-bounds access constraints using llvm.assume (PR #159046)

Michael Kruse via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 6 01:56:13 PDT 2025


================
@@ -4610,6 +4627,26 @@ void CodeGenFunction::EmitArrayBoundsConstraints(const ArraySubscriptExpr *E,
   if (ArraySize == 0)
     return;
 
+  // Don't generate assumes for flexible array member pattern.
+  // Arrays of size 1 in structs are often used as placeholders for
+  // variable-length data (pre-C99 flexible array member idiom.)
+  if (ArraySize == 1) {
----------------
Meinersbur wrote:

The idiom can also be [zero-length array](https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html).

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


More information about the cfe-commits mailing list