* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
New nonterminals.
(data_def, component_decl): Add reductions to bad_decl.
Co-Authored-By: Joe Buck <jbuck@synopsys.com>
From-SVN: r40752
+2001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+ based on an idea from Joe Buck <jbuck@synopsys.com>
+
+ * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
+ New nonterminals.
+ (data_def, component_decl): Add reductions to bad_decl.
+
2001-03-22 Jakub Jelinek <jakub@redhat.com>
* method.c (do_build_assign_ref): Don't use build_modify_expr for
| error ';'
| error '}'
| ';'
+ | bad_decl
;
ctor_initializer_opt:
$$ = finish_member_class_template ($2.t);
finish_template_decl ($1);
}
+ | bad_decl
+ { $$ = NULL_TREE; }
;
component_decl_1:
}
;
+bad_decl:
+ IDENTIFIER template_arg_list_ignore IDENTIFIER arg_list_ignore ';'
+ {
+ cp_error("'%D' is used as a type, but is not defined as a type.", $1);
+ $3 = error_mark_node;
+ }
+ ;
+
+template_arg_list_ignore:
+ '<' template_arg_list_opt template_close_bracket
+ { }
+ | /* empty */
+ ;
+
+arg_list_ignore:
+ '(' nonnull_exprlist ')'
+ { }
+ | /* empty */
+ ;
+
exception_specification_opt:
/* empty */ %prec EMPTY
{ $$ = NULL_TREE; }