From: Alexandre Petit-Bianco Date: Wed, 28 Mar 2001 19:22:05 +0000 (-0800) Subject: re PR java/2066 (Source parser segfault in resolve_package) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=883e9882ff75073eef98ca4f7762b627502cd9b2;p=gcc.git 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 --- 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