[llvm] LangRef: allocated objects can grow (PR #141338)
Ralf Jung via llvm-commits
llvm-commits at lists.llvm.org
Sat May 24 02:41:47 PDT 2025
================
@@ -3327,6 +3327,14 @@ 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, as long as they always satisfy the
+properties described above. Currently, allocated objects are not permitted to
+ever shrink, nor can they have holes.
----------------
RalfJung wrote:
I think operationally we could say that the maximal extent of the allocation (smallest base address and biggest size it will ever have) are parameters of the initial operation that creates the allocation, and "inbounds" would then use that maximal extent for its check.
https://github.com/llvm/llvm-project/pull/141338
More information about the llvm-commits
mailing list