1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

Remove the "special case" for zero-length arrays, and rephrase this

paragraph to be more precise.

llvm-svn: 86572
This commit is contained in:
Dan Gohman 2009-11-09 18:40:39 +00:00
parent 457b8bad4e
commit e2afe7c1c7

View File

@ -1576,12 +1576,13 @@ Classifications</a> </div>
</tr> </tr>
</table> </table>
<p>Note that 'variable sized arrays' can be implemented in LLVM with a zero <p>Except when the <tt>inbounds</tt> keyword is present, there is no limitation
length array. Normally, accesses past the end of an array are undefined in on indexing beyond the end of the array implied by the static type (though
LLVM (e.g. it is illegal to access the 5th element of a 3 element array). As any loads or stores must of course be within the bounds of the allocated
a special case, however, zero length arrays are recognized to be variable object!). This means that single-dimension 'variable sized array' addressing
length. This allows implementation of 'pascal style arrays' with the LLVM can be implemented in LLVM with a zero length array type. An implementation
type "<tt>{ i32, [0 x float]}</tt>", for example.</p> 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 <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 used as function return types. The specific limit on how large an aggregate