Andrew Haley <aph@cambridge.redhat.com>
authorTom Tromey <tromey@redhat.com>
Sat, 23 Mar 2002 01:19:40 +0000 (01:19 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Sat, 23 Mar 2002 01:19:40 +0000 (01:19 +0000)
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'.

From-SVN: r51213

gcc/java/ChangeLog
gcc/java/expr.c

index 1cc0096..d43075c 100644 (file)
@@ -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:
index fa2935f..2a8e2e3 100644 (file)
@@ -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));
     }