re PR java/15656 (ICE segfault in lex.c)
authorTom Tromey <tromey@redhat.com>
Fri, 24 Sep 2004 15:44:35 +0000 (15:44 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Fri, 24 Sep 2004 15:44:35 +0000 (15:44 +0000)
PR java/15656:
* parse.y (class_instance_creation_expression): Set `$$' to NULL
in error parts of rule.
(unary_expression): Don't call error_if_numeric_overflow when $1
is NULL.

From-SVN: r88048

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

index f66e444e601b9c1b925010e2c98597436cde00b3..7e7e7eb6ffbab392fbd239e1e7d25e18ad038d29 100644 (file)
@@ -1,3 +1,11 @@
+2004-09-24  Tom Tromey  <tromey@redhat.com>
+
+       PR java/15656:
+       * parse.y (class_instance_creation_expression): Set `$$' to NULL
+       in error parts of rule.
+       (unary_expression): Don't call error_if_numeric_overflow when $1
+       is NULL.
+
 2004-09-24  Tom Tromey  <tromey@redhat.com>
 
        PR java/16789:
index 2287d9075d22c6dea7161f2389ff7952b1edcaa5..0a72599786943701c2593133e27fd2bee4533de7 100644 (file)
@@ -2016,17 +2016,22 @@ class_instance_creation_expression:
                }
 |      something_dot_new identifier OP_TK argument_list CP_TK class_body
 |      NEW_TK error SC_TK
-               {yyerror ("'(' expected"); DRECOVER(new_1);}
+               {$$ = NULL_TREE; yyerror ("'(' expected"); DRECOVER(new_1);}
 |      NEW_TK class_type error
-               {yyerror ("'(' expected"); RECOVER;}
+               {$$ = NULL_TREE; yyerror ("'(' expected"); RECOVER;}
 |      NEW_TK class_type OP_TK error
-               {yyerror ("')' or term expected"); RECOVER;}
+               {$$ = NULL_TREE; yyerror ("')' or term expected"); RECOVER;}
 |      NEW_TK class_type OP_TK argument_list error
-               {yyerror ("')' expected"); RECOVER;}
+               {$$ = NULL_TREE; yyerror ("')' expected"); RECOVER;}
 |      something_dot_new error
-               {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;}
+               {
+                 $$ = NULL_TREE;
+                 YYERROR_NOW;
+                 yyerror ("Identifier expected");
+                 RECOVER;
+               }
 |      something_dot_new identifier error
-               {yyerror ("'(' expected"); RECOVER;}
+               {$$ = NULL_TREE; yyerror ("'(' expected"); RECOVER;}
 ;
 
 /* Created after JDK1.1 rules originally added to
@@ -2343,7 +2348,8 @@ trap_overflow_corner_case:
 unary_expression:
        trap_overflow_corner_case
                {
-                 error_if_numeric_overflow ($1);
+                 if ($1)
+                   error_if_numeric_overflow ($1);
                  $$ = $1;
                }
 |      MINUS_TK trap_overflow_corner_case