[LLVMdev] Reference Manual Clarifications 2
jo at durchholz.org
Sun Apr 20 01:27:11 PDT 2008
Am Samstag, den 19.04.2008, 16:24 -0700 schrieb Jon Sargeant:
> First, I can assign -1 to
> the count to indicate an invalid or unknown value.
This is a C-ism. In a language that supports discriminated unions well,
you'd do something like
type AllocaCount = Invalid | Unknown | Known int
(where Invalid, Unknown and Known are the constants that do the
distinction between union variants).
> Second, if I attempt
> to allocate a negative count, I can print an assertion failure and abort
> the program. Had I interpreted the count as an unsigned value, the
> program would attempt to allocate anywhere from 2 gigabytes to 4
Which might be exactly what it's supposed to do. Suppose you're writing
heap management code.
> I'm not necessarily saying that NumElements should be
> signed, only that the choice between signed and unsigned is not obvious.
Obviously, obviousness is in the eye of the beholder :-)
More information about the llvm-dev