From 924b2450262392778ecd8c0e637f6abaefd81094 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 13 Jun 2005 19:20:22 +0000 Subject: [PATCH] re PR java/21844 (miscompilation of LinkedHashMap) PR java/21844: * parse.y (nested_field_access_p): Handle case where outer field is inherited by enclosing class. From-SVN: r100893 --- gcc/java/ChangeLog | 6 ++++++ gcc/java/parse.y | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index c16e1ef849b..52196e49a36 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2005-06-13 Tom Tromey + + PR java/21844: + * parse.y (nested_field_access_p): Handle case where outer field + is inherited by enclosing class. + 2005-06-12 Per Bothner * class.c (inherits_from_p): Do load_class if needed. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index ebaede8ab12..11087192bec 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -8389,13 +8389,6 @@ nested_field_access_p (tree type, tree decl) { if (type_root == decl_type) return 1; - - /* Before we give up, see whether it is a non-static field - inherited from the enclosing context we are considering. */ - if (!DECL_CONTEXT (TYPE_NAME (type_root)) - && !is_static - && inherits_from_p (type_root, decl_type)) - return 1; } if (TREE_CODE (decl_type) == RECORD_TYPE @@ -8416,6 +8409,13 @@ nested_field_access_p (tree type, tree decl) if (type_root == decl_type_root) return 1; + /* Before we give up, see whether it is a non-static field + inherited from the enclosing context we are considering. */ + if (!DECL_CONTEXT (TYPE_NAME (type_root)) + && !is_static + && inherits_from_p (type_root, decl_type)) + return 1; + return 0; } -- 2.30.2