diff options
Diffstat (limited to 'gcc/java')
| -rw-r--r-- | gcc/java/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/java/expr.c | 5 | 
2 files changed, 8 insertions, 2 deletions
| diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 58cf198e3da..aba8cdb504d 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2002-03-27  Tom Tromey  <tromey@redhat.com> + +	* expr.c (expand_invoke): Don't generate null pointer check if +	we're calling <init>. +  2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>  	* expr.c (java_lang_expand_expr): Rename java_expand_expr, diff --git a/gcc/java/expr.c b/gcc/java/expr.c index a25140463f3..895c3221629 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -2129,12 +2129,13 @@ expand_invoke (opcode, method_ref_index, nargs)  	 method's `this'.  In other cases we just rely on an  	 optimization pass to eliminate redundant checks.  FIXME:  	 Unfortunately there doesn't seem to be a way to determine -	 what the current method is right now.  */ +	 what the current method is right now. +	 We do omit the check if we're calling <init>.  */        /* We use a SAVE_EXPR here to make sure we only evaluate  	 the new `self' expression once.  */        tree save_arg = save_expr (TREE_VALUE (arg_list));        TREE_VALUE (arg_list) = save_arg; -      check = java_check_reference (save_arg, 1); +      check = java_check_reference (save_arg, ! DECL_INIT_P (method));        func = build_known_method_ref (method, method_type, self_type,  				     method_signature, arg_list);      } | 

