aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2004-11-04 23:12:29 +0000
committerTom Tromey <tromey@redhat.com>2004-11-04 23:12:29 +0000
commit8dcd31a4e8322ac5778c6df17f13e2694d9dd088 (patch)
tree14b3d99712ce3a58197650f55128784bd5ef74e3
parent6beb4aabbc5443562cb6c55a56dee16999acc669 (diff)
* class.c (build_static_field_ref): Don't emit direct references
when using indirect dispatch. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj-abi-2-dev-branch@90086 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/class.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 20d3f18b524..6225e478c74 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-04 Tom Tromey <tromey@redhat.com>
+
+ * class.c (build_static_field_ref): Don't emit direct references
+ when using indirect dispatch.
+
2004-11-03 Tom Tromey <tromey@redhat.com>
* expr.c (expand_java_arrayload): Set lhs_type_node.
diff --git a/gcc/java/class.c b/gcc/java/class.c
index d01ce72fd96..8998fdce85c 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1054,8 +1054,7 @@ build_static_field_ref (tree fdecl)
However, currently sometimes gcj is too eager and will end up
returning the field itself, leading to an incorrect external
reference being generated. */
- if ((is_compiled
- && (! flag_indirect_dispatch || current_class == fclass))
+ if ((is_compiled && ! flag_indirect_dispatch)
|| (FIELD_FINAL (fdecl) && DECL_INITIAL (fdecl) != NULL_TREE
&& (JSTRING_TYPE_P (TREE_TYPE (fdecl))
|| JNUMERIC_TYPE_P (TREE_TYPE (fdecl)))