aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>2000-01-17 22:54:30 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2000-01-17 14:54:30 -0800
commit18990de52b8166a8f5fb71271cf4c12d3c0f0a47 (patch)
tree38b3b6e05880001aef4c13dc53095725793ed261
parenta68ad5bdee43a9796ae1f0f324508a5bff4f7cb0 (diff)
downloadgcc-18990de52b8166a8f5fb71271cf4c12d3c0f0a47.zip
gcc-18990de52b8166a8f5fb71271cf4c12d3c0f0a47.tar.gz
gcc-18990de52b8166a8f5fb71271cf4c12d3c0f0a47.tar.bz2
re GNATS gcj/128 (weak error message when expecting final modifier)
Mon Jan 17 11:58:17 2000 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de> * 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
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/parse.y15
2 files changed, 17 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 85c0b05..aa636cf 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jan 17 11:58:17 2000 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
+
+ * parse.y (format_parameter:): Use final: rule instead of modifiers:.
+ (final:): New rule.
+
2000-01-17 Tom Tromey <tromey@cygnus.com>
* gjavah.c (print_field_info): Allow non-static final fields.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 8563508..b4d9d76 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