aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java')
-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 1203410..abfc482 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 d377e8f..04c9e90 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