aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@redhat.com>2001-03-28 11:22:05 -0800
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2001-03-28 11:22:05 -0800
commit883e9882ff75073eef98ca4f7762b627502cd9b2 (patch)
treef9d7e07fcb132575fa3d5c3c97c2974472bee646 /gcc/java
parent0f5c1ee4098e4fbd96432dd0b481a6b589229c6e (diff)
downloadgcc-883e9882ff75073eef98ca4f7762b627502cd9b2.zip
gcc-883e9882ff75073eef98ca4f7762b627502cd9b2.tar.gz
gcc-883e9882ff75073eef98ca4f7762b627502cd9b2.tar.bz2
re PR java/2066 (Source parser segfault in resolve_package)
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) From-SVN: r40938
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