[llvm] LangRef: allocated objects can grow (PR #141338)

Ralf Jung via llvm-commits llvm-commits at lists.llvm.org
Sat May 24 10:13:40 PDT 2025


================
@@ -3327,6 +3327,15 @@ behavior is undefined:
 -  the size of all allocated objects must be non-negative and not exceed the
    largest signed integer that fits into the index type.
 
+Allocated objects that are created with operations recognized by LLVM (such as
+:ref:`alloca <i_alloca>`, heap allocation functions marked as such, and global
+variables) may *not* change their size. However, allocated objects can also be
+created by means not recognized by LLVM, e.g. by directly calling ``mmap``.
+Those allocated objects are allowed to grow to the right (i.e., keeping the same
+base address, but increasing their size), as long as they always satisfy the
+properties described above. Currently, allocated objects are not permitted to
+grow to the left or to shrink, nor can they have holes.
----------------
RalfJung wrote:

Good point, I'll add that.

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


More information about the llvm-commits mailing list