summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-28 19:22:05 +0000
committerapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-28 19:22:05 +0000
commita61f5ade3525ce189db00381669c8532f27fe344 (patch)
treef9d7e07fcb132575fa3d5c3c97c2974472bee646 /gcc
parent7fd2eec7228c20247c7bacd91768badc0e125314 (diff)
downloadgcc-a61f5ade3525ce189db00381669c8532f27fe344.tar.gz
2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (qualify_ambiguous_name): Broaden `length' recognition. Help MODIFY_EXPR be resolved as expression names. Fixes PR java/2066. Fixes PR java/2400. (http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01935.html) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40938 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.y5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 1203410133e..abfc4823609 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
+
+ * parse.y (qualify_ambiguous_name): Broaden `length'
+ recognition. Help MODIFY_EXPR be resolved as expression names.
+ Fixes PR java/2066. Fixes PR java/2400.
+
2001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
* jvgenmain.c (do_mangle_classname): End string constant with '\0'.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index d377e8fe59d..04c9e90de72 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -10891,7 +10891,7 @@ qualify_ambiguous_name (id)
expression name. If we saw a NEW_ARRAY_EXPR before and want to
address length, it is OK. */
else if ((decl = lookup_field_wrapper (ptr_type, name))
- || (new_array_found && name == length_identifier_node))
+ || name == length_identifier_node)
{
RESOLVE_EXPRESSION_NAME_P (qual_wfl) = 1;
QUAL_RESOLUTION (qual) = (new_array_found ? NULL_TREE : decl);
@@ -10916,7 +10916,8 @@ qualify_ambiguous_name (id)
/* Method call, array references and cast are expression name */
else if (TREE_CODE (QUAL_WFL (qual)) == CALL_EXPR
|| TREE_CODE (QUAL_WFL (qual)) == ARRAY_REF
- || TREE_CODE (QUAL_WFL (qual)) == CONVERT_EXPR)
+ || TREE_CODE (QUAL_WFL (qual)) == CONVERT_EXPR
+ || TREE_CODE (QUAL_WFL (qual)) == MODIFY_EXPR)
RESOLVE_EXPRESSION_NAME_P (qual_wfl) = 1;
/* Check here that NAME isn't declared by more than one