re GNATS gcj/56 (gcj segfaults in jc1 on OK java file)
authorAlexandre Petit-Bianco <apbianco@cygnus.com>
Fri, 22 Oct 1999 06:06:47 +0000 (06:06 +0000)
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>
Fri, 22 Oct 1999 06:06:47 +0000 (23:06 -0700)
Thu Oct 21 01:27:31 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

* parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
(qualify_ambiguous_name): Likewise.

This fixes the net PR #56
(http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00131.html)

From-SVN: r30127

gcc/java/ChangeLog
gcc/java/parse.c
gcc/java/parse.y

index 8bbdad3cfe702bcf31f5d4a8f643b92048460c46..96a81cedd3e02a6a451a9ad9eb28e8605318cd6c 100644 (file)
@@ -1,3 +1,8 @@
+Thu Oct 21 01:27:31 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
+       (qualify_ambiguous_name): Likewise.
+
 Wed Oct 20 01:41:47 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * parse.y (java_complete_tree): fold_constant_for_init to work on
index 863d1eca308b5c586f3885e7108350ac732b6e74..2152035616c812c770a9e8acad5a9201200f265d 100644 (file)
@@ -9262,6 +9262,7 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
 
        case CONDITIONAL_EXPR:
        case STRING_CST:
+       case MODIFY_EXPR:
          *where_found = decl = java_complete_tree (qual_wfl);
          if (decl == error_mark_node)
            return 1;
@@ -10445,11 +10446,7 @@ qualify_ambiguous_name (id)
        && TREE_CODE (TREE_TYPE (qual_wfl)) == EXPR_WITH_FILE_LOCATION)
       name = EXPR_WFL_NODE (TREE_TYPE (qual_wfl));
 
-    else if (code == ARRAY_REF &&
-            TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
-      name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));
-
-    else if (code == CALL_EXPR && 
+    else if ((code == ARRAY_REF || code == CALL_EXPR || code == MODIFY_EXPR) &&
             TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
       name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));
 
index 1fabf8071f40fd5336c059a486ead90f6c525fab..76b91f26999a62353e93c8ae0e27a7ea59052ab5 100644 (file)
@@ -6675,6 +6675,7 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
 
        case CONDITIONAL_EXPR:
        case STRING_CST:
+       case MODIFY_EXPR:
          *where_found = decl = java_complete_tree (qual_wfl);
          if (decl == error_mark_node)
            return 1;
@@ -7858,11 +7859,7 @@ qualify_ambiguous_name (id)
        && TREE_CODE (TREE_TYPE (qual_wfl)) == EXPR_WITH_FILE_LOCATION)
       name = EXPR_WFL_NODE (TREE_TYPE (qual_wfl));
 
-    else if (code == ARRAY_REF &&
-            TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
-      name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));
-
-    else if (code == CALL_EXPR && 
+    else if ((code == ARRAY_REF || code == CALL_EXPR || code == MODIFY_EXPR) &&
             TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
       name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));