[LLVMdev] Reference Manual Clarifications 2
delta17 at cox.net
Sat Apr 19 15:27:56 PDT 2008
Thanks for your reply.
Chris Lattner wrote:
>> Regarding free, I also think your wording isn't clear enough: "If the
>> pointer is null, the result is undefined." The free result is void.
>> Consider rewording as "If the pointer is null, the operation is valid
>> but does not free the pointer."
> It isn't though. free(NULL) could segfault the app, for example.
See Nick's post.
>> Regarding malloc and alloca, I realized that the size is unsigned,
>> so a
>> negative value for NumElements is impossible. I suggest replacing "it
>> is the number of elements allocated" with "it is the UNSIGNED number
>> elements allocated".
> I'm not sure why this is more clear.
The semantics of malloc and alloca depend on whether you interpret
NumElements as a signed or unsigned 32-bit integer. For example, if
NumElements is 0xffffFFFF, should the instruction fail (because
allocating a negative number of elements doesn't make sense), or should
the instruction allocate 2^32-1 elements? I don't see any mention of
whether NumElements is signed or unsigned in the documentation.
>> I'm working on another set of changes now. If it's not too much
>> trouble, it would be more convenient for me to post the changes (as
>> done in this e-mail) and let you integrate them into LangRef.html.
> It would definitely be easier to integrate in patch form. Here is
> what I committed:
Very well. I'll submit future changes as patches.
More information about the llvm-dev