diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-27 23:12:05 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-27 23:12:05 +0000 |
| commit | f457b1b8350ea26180d60c739dfd7258552ee41a (patch) | |
| tree | 64dd08447f00d061dcf30443f9877d93b560c5c8 /gcc | |
| parent | 550db37c4975bec44fc1591de2d71d7d1e7e1eb6 (diff) | |
| download | ppe42-gcc-f457b1b8350ea26180d60c739dfd7258552ee41a.tar.gz ppe42-gcc-f457b1b8350ea26180d60c739dfd7258552ee41a.zip | |
* expr.c (expand_invoke): Don't generate null pointer check if
we're calling <init>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51487 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -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); } |

