From: Tom Tromey Date: Fri, 24 Sep 2004 15:44:35 +0000 (+0000) Subject: re PR java/15656 (ICE segfault in lex.c) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8d481c2e58c9b25818f95269073aca647fb1c847;p=gcc.git re PR java/15656 (ICE segfault in lex.c) 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 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index f66e444e601..7e7e7eb6ffb 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,11 @@ +2004-09-24 Tom Tromey + + 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 PR java/16789: diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 2287d9075d2..0a725997869 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -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