@@ -3295,7 +3295,8 @@ that is :ref:`based on <pointeraliasing>` the allocation value. If a pointer
3295
3295
that is not based on the object tries to read or write to the object, it is
3296
3296
undefined behavior.
3297
3297
3298
- The following properties hold for all allocated objects:
3298
+ The following properties hold for all allocated objects, otherwise the
3299
+ behavior is undefined:
3299
3300
3300
3301
- no allocated object may cross the unsigned address space boundary (including
3301
3302
the pointer after the end of the object),
@@ -11718,8 +11719,9 @@ For ``nuw`` (no unsigned wrap):
11718
11719
For ``inbounds`` all rules of the ``nusw`` attribute apply. Additionally,
11719
11720
if the ``getelementptr`` has any non-zero indices, the following rules apply:
11720
11721
11721
- * The base pointer has an *in bounds* address of the allocated object that it
11722
- is :ref:`based <pointeraliasing>` on. This means that it points into that
11722
+ * The base pointer has an *in bounds* address of the
11723
+ :ref:`allocated object<allocatedobjects>` that it is
11724
+ :ref:`based <pointeraliasing>` on. This means that it points into that
11723
11725
allocated object, or to its end. Note that the object does not have to be
11724
11726
live anymore; being in-bounds of a deallocated object is sufficient.
11725
11727
* During the successive addition of offsets to the address, the resulting
@@ -11730,9 +11732,6 @@ Note that ``getelementptr`` with all-zero indices is always considered to be
11730
11732
As a corollary, the only pointer in bounds of the null pointer in the default
11731
11733
address space is the null pointer itself.
11732
11734
11733
- These rules are based on the assumption for
11734
- :ref:`allocated object<allocatedobjects>`.
11735
-
11736
11735
If ``inbounds`` is present on a ``getelementptr`` instruction, the ``nusw``
11737
11736
attribute will be automatically set as well. For this reason, the ``nusw``
11738
11737
will also not be printed in textual IR if ``inbounds`` is already present.
@@ -26468,7 +26467,7 @@ can belong to any address space.
26468
26467
Overview:
26469
26468
"""""""""
26470
26469
26471
- The '``llvm.invariant.end``' intrinsic specifies that the contents of a
26470
+ The '``llvm.invariant.end``' intrinsic specifies that the contents of an
26472
26471
:ref:`allocated object<allocatedobjects>` are mutable.
26473
26472
26474
26473
Arguments:
0 commit comments