diff options
author | Dan Gohman <gohman@apple.com> | 2009-11-09 18:40:39 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-11-09 18:40:39 +0000 |
commit | 938443807150a1259283412bf8b89bd4141f9111 (patch) | |
tree | 5fc1d6619e5bff7903bddc69d30ab434c0162cda /docs | |
parent | f6572d0aa2abb87d34afcca3e3bec89e1613b8ec (diff) | |
download | external_llvm-938443807150a1259283412bf8b89bd4141f9111.zip external_llvm-938443807150a1259283412bf8b89bd4141f9111.tar.gz external_llvm-938443807150a1259283412bf8b89bd4141f9111.tar.bz2 |
Remove the "special case" for zero-length arrays, and rephrase this
paragraph to be more precise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86572 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/LangRef.html | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index eea1f03..be2b93b 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1576,12 +1576,13 @@ Classifications</a> </div> </tr> </table> -<p>Note that 'variable sized arrays' can be implemented in LLVM with a zero - length array. Normally, accesses past the end of an array are undefined in - LLVM (e.g. it is illegal to access the 5th element of a 3 element array). As - a special case, however, zero length arrays are recognized to be variable - length. This allows implementation of 'pascal style arrays' with the LLVM - type "<tt>{ i32, [0 x float]}</tt>", for example.</p> +<p>Except when the <tt>inbounds</tt> keyword is present, there is no limitation + on indexing beyond the end of the array implied by the static type (though + any loads or stores must of course be within the bounds of the allocated + object!). This means that single-dimension 'variable sized array' addressing + can be implemented in LLVM with a zero length array type. An implementation + of 'pascal style arrays' in LLVM could use the type + "<tt>{ i32, [0 x float]}</tt>", for example.</p> <p>Note that the code generator does not yet support large aggregate types to be used as function return types. The specific limit on how large an aggregate |