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

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 6 06:13:27 PDT 2025


================
@@ -1603,6 +1603,11 @@ defm assume_unique_vtables : BoolFOption<"assume-unique-vtables",
   BothFlags<[], [ClangOption, CLOption]>>;
 
 def fassume_sane_operator_new : Flag<["-"], "fassume-sane-operator-new">, Group<f_Group>;
+defm assume_array_bounds : BoolFOption<"assume-array-bounds",
+  CodeGenOpts<"AssumeArrayBounds">, DefaultFalse,
+  PosFlag<SetTrue, [], [ClangOption, CC1Option],
+          "Generate llvm.assume for array bounds to enable optimizations (may break code with intentional out-of-bounds access)">,
----------------
erichkeane wrote:

Is this ALL accesses, or just dereferences?  We need to ensure we allow 1 past the end for iterators, else this feature is worthless.

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


More information about the cfe-commits mailing list