diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/parse.y | 18 |
2 files changed, 18 insertions, 6 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 3037f8c..cfc62d0 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2002-06-13 Akim Demaille <akim@epita.fr> + + * parse.y (class_declaration, interface_declaration): Make sure + all their rules have an action, in order to avoid meaningless `$$ + = $1' and their type clashes. + 2002-06-11 Tom Tromey <tromey@redhat.com> * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 907ca28..7f37384 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -579,7 +579,7 @@ static GTY(()) tree src_parse_roots[1]; anonymous_class_creation trap_overflow_corner_case %type <node> return_statement break_statement continue_statement -%type <operator> ASSIGN_TK MULT_ASSIGN_TK DIV_ASSIGN_TK +%type <operator> ASSIGN_TK MULT_ASSIGN_TK DIV_ASSIGN_TK %type <operator> REM_ASSIGN_TK PLUS_ASSIGN_TK MINUS_ASSIGN_TK %type <operator> LS_ASSIGN_TK SRS_ASSIGN_TK ZRS_ASSIGN_TK %type <operator> AND_ASSIGN_TK XOR_ASSIGN_TK OR_ASSIGN_TK @@ -846,20 +846,22 @@ class_declaration: modifiers CLASS_TK identifier super interfaces { create_class ($1, $3, $4, $5); } class_body + {;} | CLASS_TK identifier super interfaces { create_class (0, $2, $3, $4); } class_body + {;} | modifiers CLASS_TK error - {yyerror ("Missing class name"); RECOVER;} + { yyerror ("Missing class name"); RECOVER; } | CLASS_TK error - {yyerror ("Missing class name"); RECOVER;} + { yyerror ("Missing class name"); RECOVER; } | CLASS_TK identifier error { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); } | modifiers CLASS_TK identifier error - {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;} + { if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER; } ; super: @@ -1279,19 +1281,23 @@ interface_declaration: INTERFACE_TK identifier { create_interface (0, $2, NULL_TREE); } interface_body + { ; } | modifiers INTERFACE_TK identifier { create_interface ($1, $3, NULL_TREE); } interface_body + { ; } | INTERFACE_TK identifier extends_interfaces { create_interface (0, $2, $3); } interface_body + { ; } | modifiers INTERFACE_TK identifier extends_interfaces { create_interface ($1, $3, $4); } interface_body + { ; } | INTERFACE_TK identifier error - {yyerror ("'{' expected"); RECOVER;} + { yyerror ("'{' expected"); RECOVER; } | modifiers INTERFACE_TK identifier error - {yyerror ("'{' expected"); RECOVER;} + { yyerror ("'{' expected"); RECOVER; } ; extends_interfaces: |