From 883e9882ff75073eef98ca4f7762b627502cd9b2 Mon Sep 17 00:00:00 2001 From: Alexandre Petit-Bianco Date: Wed, 28 Mar 2001 11:22:05 -0800 Subject: [PATCH] re PR java/2066 (Source parser segfault in resolve_package) 2001-03-21 Alexandre Petit-Bianco * 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 --- gcc/java/ChangeLog | 6 ++++++ 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 + + * 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 * 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 -- 2.30.2