Clarify a few things in the inbounds description.
authorDan Gohman <gohman@apple.com>
Thu, 20 Aug 2009 17:08:17 +0000 (17:08 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 20 Aug 2009 17:08:17 +0000 (17:08 +0000)
Describing inbounds in terms of infinitely precise arithmetic prohibits
the assumption address-space-sized integer arithmetic will wrap, with
a wrapped-around value landing within the same object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79538 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 9ef7cce419f5d03592efb89d806c116593e17d99..384c1201fa1a21818c6f850fd561074353d1a310 100644 (file)
@@ -4004,11 +4004,11 @@ entry:
 <p>If the <tt>inbounds</tt> keyword is present, the result value of the
    <tt>getelementptr</tt> is undefined if the base pointer is not an
    <i>in bounds</i> address of an allocated object, or if any of the addresses
-   formed by successive addition of the offsets implied by the indices to
-   the base address are not an <i>in bounds</i> address of that allocated
-   object.
+   that would be formed by successive addition of the offsets implied by the
+   indices to the base address with infinitely precise arithmetic are not an
+   <i>in bounds</i> address of that allocated object.
    The <i>in bounds</i> addresses for an allocated object are all the addresses
-   that point into the object, plus the address one past the end.</p>
+   that point into the object, plus the address one byte past the end.</p>
 
 <p>If the <tt>inbounds</tt> keyword is not present, the offsets are added to
    the base address with silently-wrapping two's complement arithmetic, and