From 7657f6b0029ffb667b4e313ecaaf47a72976c99b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 9 Nov 2009 19:01:53 +0000 Subject: [PATCH] The inbounds keyword isn't relevant to overindexing of static array types. Thanks to Duncan for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86576 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/LangRef.html b/docs/LangRef.html index be2b93b5a03..ab656d89a7e 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1576,13 +1576,12 @@ Classifications -

Except when the inbounds 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 - "{ i32, [0 x float]}", for example.

+

There is no restriction on indexing beyond the end of the array implied by + a static type (though there are restrictions on indexing beyond the bounds + of an allocated object in some cases). 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 "{ i32, [0 x float]}", for example.

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