From: Joerg Brunsmann Date: Mon, 17 Jan 2000 22:54:30 +0000 (+0000) Subject: re GNATS gcj/128 (weak error message when expecting final modifier) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=18990de52b8166a8f5fb71271cf4c12d3c0f0a47;p=gcc.git re GNATS gcj/128 (weak error message when expecting final modifier) Mon Jan 17 11:58:17 2000 Joerg Brunsmann * parse.y (format_parameter:): Use final: rule instead of modifiers:. (final:): New rule. Joerg Brunsmann's contribution to fix the Java PR #128. From-SVN: r31477 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 85c0b05d292..aa636cf4d08 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 17 11:58:17 2000 Joerg Brunsmann + + * parse.y (format_parameter:): Use final: rule instead of modifiers:. + (final:): New rule. + 2000-01-17 Tom Tromey * gjavah.c (print_field_info): Allow non-static final fields. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 85635082dde..b4d9d7666df 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -950,20 +950,29 @@ formal_parameter: { $$ = build_tree_list ($2, $1); } -| modifiers type variable_declarator_id /* Added, JDK1.1 final parms */ +| final type variable_declarator_id /* Added, JDK1.1 final parms */ { parse_jdk1_1_error ("final parameters"); $$ = build_tree_list ($3, $2); } | type error {yyerror ("Missing identifier"); RECOVER;} -| modifiers type error +| final type error { - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", $1)); yyerror ("Missing identifier"); RECOVER; } ; +final: + modifiers + { + check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", + $1, ACC_FINAL); + if ($1 != ACC_FINAL) + MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); + } +; + throws: { $$ = NULL_TREE; } | THROWS_TK class_type_list