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:
parent
457b8bad4e
commit
e2afe7c1c7
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user