This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


>>>>> "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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]