aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index aa53706..ebdaa7b 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -890,7 +890,10 @@ method_header:
| modifiers VOID_TK method_declarator throws
{ $$ = method_header ($1, void_type_node, $3, $4); }
| type error
- {RECOVER;}
+ {
+ yyerror ("Invalid method declaration, method name required");
+ RECOVER;
+ }
| modifiers type error
{RECOVER;}
| VOID_TK error
@@ -1669,10 +1672,14 @@ synchronized_statement:
;
synchronized:
- MODIFIER_TK
+ modifiers
{
- if ((1 << $1) != ACC_SYNCHRONIZED)
- fatal ("synchronized was '%d' - yyparse", (1 << $1));
+ check_modifiers ("Illegal modifier `%s'. Only "
+ "`synchronized' was expected here",
+ $1, ACC_SYNCHRONIZED);
+ if ($1 != ACC_SYNCHRONIZED)
+ MODIFIER_WFL (SYNCHRONIZED_TK) =
+ build_wfl_node (NULL_TREE);
}
;