Why does GCJ generate so many explicit checks for null pointers?

Jeff Sturm jsturm@one-point.com
Tue Jul 29 15:13:00 GMT 2003


On 29 Jul 2003, Tom Tromey wrote:
> >> Why check before the constructor call? Is it ever possible for
> >> _Jv_AllocObjectNoFinalizer to return null?
>> Jeff> No, but the backend optimizers don't know that, or else DCE would
> Jeff> eliminate the test.
>> Hmm, on the C++ side we mark this function, and others like it, with
> __attribute__((__malloc__)). We do this in gcj as well; from
> java/decl.c:

But malloc can return NULL, right? From what I understand the malloc
attribute is a hint for alias analysis, and doesn't say anything about the
null-ness of its return value.
The CCP pass currently handles integer and boolean types just fine, but
doesn't appear to do anything special for pointers. Like Andrew said,
tree-ssa will be a good opportunity for experimentation here.
Jeff


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /