The cpp_other rule has redundant code due to an additional production for end attributes. Use end_attributes_opt to resolve this.
Signed-off-by: Jaskaran Singh <[email protected]> --- parsing_c/parser_c.mly | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/parsing_c/parser_c.mly b/parsing_c/parser_c.mly index 61bb1ca0..10cd4435 100644 --- a/parsing_c/parser_c.mly +++ b/parsing_c/parser_c.mly @@ -2202,39 +2202,7 @@ cpp_other: * the rule are slightly different, they can't be statement and so expr * at the top, only decl or function definition. *)*/ - | identifier TOPar argument_list TCPar TPtVirg - { - if args_are_params $3 - then - (* if all args are params, assume it is a prototype of a function - with no return type *) - let parameters = args_to_params $3 None in - let paramlist = (parameters, (false, [])) in (* no varargs *) - let id = RegularName (mk_string_wrap $1) in - let ret = - warning "type defaults to 'int'" - (mk_ty defaultInt [fakeInfo fake_pi]) in - let ty = - fixOldCDecl (mk_ty (FunctionType (ret, paramlist)) [$2;$4]) in - let attrs = Ast_c.noattr in - let sto = (NoSto, false), [] in - let iistart = Ast_c.fakeInfo () in - Declaration( - DeclList ([{v_namei = Some (id,NoInit); v_type = ty; - v_storage = unwrap sto; v_local = NotLocalDecl; - v_attr = attrs; v_endattr = Ast_c.noattr; - v_type_bis = ref None; - },[]], - ($5::iistart::snd sto))) - else - Declaration - (MacroDecl - ((NoSto, fst $1, $3, Ast_c.noattr, true), - [snd $1;$2;$4;$5;fakeInfo()])) - (* old: MacroTop (fst $1, $3, [snd $1;$2;$4;$5]) *) - } - - | identifier TOPar argument_list TCPar end_attributes TPtVirg + | identifier TOPar argument_list TCPar end_attributes_opt TPtVirg { if args_are_params $3 then -- 2.21.1 _______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
