From c58408bf8deb973f7aecbff4c80a093ba2203569 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 23 Mar 2002 01:19:40 +0000 Subject: Andrew Haley 2002-03-22 Tom Tromey Andrew Haley * expr.c (build_field_ref): Don't build a check if the field is a member of `this'. From-SVN: r51213 --- gcc/java/ChangeLog | 7 +++++++ gcc/java/expr.c | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'gcc/java') diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 1cc0096..d43075c 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2002-03-22 Tom Tromey + + Andrew Haley + + * expr.c (build_field_ref): Don't build a check if the field is a + member of `this'. + 2002-03-21 Eric Blake Fix for PR java/6026: diff --git a/gcc/java/expr.c b/gcc/java/expr.c index fa2935f..2a8e2e3 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1582,6 +1582,10 @@ build_field_ref (self_value, self_class, name) } else { + int check = (flag_check_references + && ! (DECL_P (self_value) + && DECL_NAME (self_value) == this_identifier_node)); + tree base_handle_type = promote_type (base_class); if (base_handle_type != TREE_TYPE (self_value)) self_value = fold (build1 (NOP_EXPR, base_handle_type, self_value)); @@ -1589,7 +1593,7 @@ build_field_ref (self_value, self_class, name) self_value = unhand_expr (self_value); #endif self_value = build_java_indirect_ref (TREE_TYPE (TREE_TYPE (self_value)), - self_value, flag_check_references); + self_value, check); return fold (build (COMPONENT_REF, TREE_TYPE (field_decl), self_value, field_decl)); } -- cgit v1.1