summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-23 01:19:40 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-23 01:19:40 +0000
commit9007ad92f455839cd4fc7b8d6e1761c1d8c6c3ad (patch)
tree9d22513daa79990d80e17edc0c4ea1c4f7260107 /gcc/java
parentbadfe8419cab4c6f076ec57c6010b8061a45cab3 (diff)
downloadgcc-9007ad92f455839cd4fc7b8d6e1761c1d8c6c3ad.tar.gz
2002-03-22 Tom Tromey <tromey@redhat.com>
Andrew Haley <aph@cambridge.redhat.com> * expr.c (build_field_ref): Don't build a check if the field is a member of `this'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51213 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog7
-rw-r--r--gcc/java/expr.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 1cc00969b0b..d43075c3c2c 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,10 @@
+2002-03-22 Tom Tromey <tromey@redhat.com>
+
+ Andrew Haley <aph@cambridge.redhat.com>
+
+ * expr.c (build_field_ref): Don't build a check if the field is a
+ member of `this'.
+
2002-03-21 Eric Blake <ebb9@email.byu.edu>
Fix for PR java/6026:
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index fa2935f3107..2a8e2e3d85c 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));
}