aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2005-06-13 19:20:22 +0000
committerTom Tromey <tromey@gcc.gnu.org>2005-06-13 19:20:22 +0000
commit924b2450262392778ecd8c0e637f6abaefd81094 (patch)
tree43d19766aaba73926ee2ae577243e6ab28129ad7 /gcc
parentab99519a1d26973028300440e48f36d4888b004d (diff)
downloadgcc-924b2450262392778ecd8c0e637f6abaefd81094.zip
gcc-924b2450262392778ecd8c0e637f6abaefd81094.tar.gz
gcc-924b2450262392778ecd8c0e637f6abaefd81094.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.y14
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index c16e1ef..52196e4 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-13 Tom Tromey <tromey@redhat.com>
+
+ PR java/21844:
+ * parse.y (nested_field_access_p): Handle case where outer field
+ is inherited by enclosing class.
+
2005-06-12 Per Bothner <per@bothner.com>
* class.c (inherits_from_p): Do load_class if needed.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index ebaede8..1108719 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;
}