From 8dcd31a4e8322ac5778c6df17f13e2694d9dd088 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 4 Nov 2004 23:12:29 +0000 Subject: * 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 --- gcc/java/ChangeLog | 5 +++++ gcc/java/class.c | 3 +-- 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 + + * class.c (build_static_field_ref): Don't emit direct references + when using indirect dispatch. + 2004-11-03 Tom Tromey * 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))) -- cgit v1.2.3