diff options
author | Tom Tromey <tromey@redhat.com> | 2005-08-16 16:06:43 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2005-08-16 16:06:43 +0000 |
commit | 33173fd40fa6fa47d85c9dfa169ad4dcb3916a3b (patch) | |
tree | 7c0b6e95a8ebdb28fbcfca41cd2acb48d5f938f6 /gcc/java/expr.c | |
parent | ce45ef468cb3183890e4a159b9757bf640216558 (diff) | |
download | gcc-33173fd40fa6fa47d85c9dfa169ad4dcb3916a3b.zip gcc-33173fd40fa6fa47d85c9dfa169ad4dcb3916a3b.tar.gz gcc-33173fd40fa6fa47d85c9dfa169ad4dcb3916a3b.tar.bz2 |
re PR java/23300 (DECL_FIELD_OFFSET == 0 versus build_field_ref)
PR java/23300.
* expr.c (build_field_ref): Don't generate otable reference when
DECL_FIELD_OFFSET is 0.
* class.c (maybe_layout_super_class): Pass outer class to
do_resolve_class.
From-SVN: r103160
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r-- | gcc/java/expr.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index c5e48a8..c29b8a3 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1688,13 +1688,7 @@ build_field_ref (tree self_value, tree self_class, tree name) tree base_type = promote_type (base_class); if (base_type != TREE_TYPE (self_value)) self_value = fold (build1 (NOP_EXPR, base_type, self_value)); - if (! flag_syntax_only - && (flag_indirect_dispatch - /* DECL_FIELD_OFFSET == 0 if we have no reference for - the field, perhaps because we couldn't find the class - in which the field is defined. - FIXME: We should investigate this. */ - || DECL_FIELD_OFFSET (field_decl) == 0)) + if (! flag_syntax_only && flag_indirect_dispatch) { tree otable_index = build_int_cst (NULL_TREE, get_symbol_table_index |