diff options
author | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-28 19:22:05 +0000 |
---|---|---|
committer | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-28 19:22:05 +0000 |
commit | a61f5ade3525ce189db00381669c8532f27fe344 (patch) | |
tree | f9d7e07fcb132575fa3d5c3c97c2974472bee646 /gcc | |
parent | 7fd2eec7228c20247c7bacd91768badc0e125314 (diff) | |
download | gcc-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/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 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 |