clarify that byval is valid for any pointer argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45998 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-01-15 04:34:22 +00:00
parent 6bfa8a121d
commit 0747baaf6a

View File

@ -810,11 +810,12 @@ declare i32 @atoi(i8*) nounwind readonly
target-specific</dd> target-specific</dd>
<dt><tt>byval</tt></dt> <dt><tt>byval</tt></dt>
<dd>This indicates that the pointer parameter is really an aggregate that <dd>This indicates that the pointer parameter should really be passed by
was passed by value to the function. The attribute implies that a hidden value to the function. The attribute implies that a hidden copy of the
copy of the struct is made between the caller and the callee, so the pointee is made between the caller and the callee, so the callee is unable
callee is unable to modify the struct in the callee. This attribute is only to modify the value in the callee. This attribute is only valid on llvm
valid on llvm pointer arguments.</dd> pointer arguments. It is generally used to pass structs and arrays by
value, but is also valid on scalars (even though this is silly).</dd>
<dt><tt>sret</tt></dt> <dt><tt>sret</tt></dt>
<dd>This indicates that the parameter specifies the address of a structure <dd>This indicates that the parameter specifies the address of a structure