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

Tom Tromey tromey@redhat.com
Tue Jul 29 14:35:00 GMT 2003


>>>>> "Jeff" == Jeff Sturm <jsturm@one-point.com> writes:

>> 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:
 alloc_no_finalizer_node = 
 builtin_function ("_Jv_AllocObjectNoFinalizer",
		 build_function_type (ptr_type_node, t),
		 0, NOT_BUILT_IN, NULL, NULL_TREE);
 DECL_IS_MALLOC (alloc_no_finalizer_node) = 1;
Something else must be going on...
Tom


More information about the Java mailing list

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