diff options
author | Alexandre Petit-Bianco <apbianco@redhat.com> | 2001-03-28 11:22:05 -0800 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 2001-03-28 11:22:05 -0800 |
commit | 883e9882ff75073eef98ca4f7762b627502cd9b2 (patch) | |
tree | f9d7e07fcb132575fa3d5c3c97c2974472bee646 /gcc/java | |
parent | 0f5c1ee4098e4fbd96432dd0b481a6b589229c6e (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/parse.y | 5 |
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 |