On Wed, Feb 19, 2014 at 7:01 PM, Marek Polacek <pola...@redhat.com> wrote: > On Wed, Feb 19, 2014 at 06:05:12PM +0530, Prathamesh Kulkarni wrote: >> Replace calls to error() by error_at(). >> >> * c-parser.c (c_parser_declspecs): replace call to error () by error_at () > > "Replace", drop ()'s, full stop at the end. > >> * c-parser.c (c_parser_parameter_declaration): Likewise > > Full stop at the end. > >> @@ -3608,7 +3608,7 @@ c_parser_parameter_declaration (c_parser >> c_parser_set_source_position_from_token (token); >> if (c_parser_next_tokens_start_typename (parser, cla_prefer_type)) >> { >> - error ("unknown type name %qE", token->value); >> + error_at (token->location, "unknown type name %qE", token->value); > > Only one space between , and ". > > It'd be nice to add a testcase as well, e.g. something like this > > void > fn1 (const foo x) /* { dg-error "..." } */ > { > } > > void > fn2 (int i; foo a; int i) /* { dg-error "..." } */ > { > } > > void > fn3 (char c, foo x, ...) /* { dg-error "..." } */ > { > } > Is this fine ?
* c-parser.c (c_parser_declspecs): Replace call to error by error_at. * c-parser.c (c_parser_parameter_declaration): Likewise. Index: gcc/c/c-parser.c =================================================================== --- gcc/c/c-parser.c (revision 207700) +++ gcc/c/c-parser.c (working copy) @@ -2223,7 +2223,7 @@ c_parser_declspecs (c_parser *parser, st attrs_ok = true; if (kind == C_ID_ID) { - error ("unknown type name %qE", value); + error_at (loc, "unknown type name %qE", value); t.kind = ctsk_typedef; t.spec = error_mark_node; } @@ -3608,7 +3608,7 @@ c_parser_parameter_declaration (c_parser c_parser_set_source_position_from_token (token); if (c_parser_next_tokens_start_typename (parser, cla_prefer_type)) { - error ("unknown type name %qE", token->value); + error_at (token->location, "unknown type name %qE", token->value); parser->error = true; } /* ??? In some Objective-C cases '...' isn't applicable so there Index: gcc/testsuite/gcc.dg/decl-9.c =================================================================== --- gcc/testsuite/gcc.dg/decl-9.c (revision 207700) +++ gcc/testsuite/gcc.dg/decl-9.c (working copy) @@ -30,3 +30,14 @@ void *f3() return x; /* { dg-bogus "'x' undeclared" } */ } +void +f4(const foo x) /* { dg-error "unknown type name 'foo'" } */ +{} + +void +f5(int i; foo x, int i) /* { dg-error "unknown type name 'foo'" } */ +{} + +void +f6(char c, foo x, ...) /* { dg-error "unknown type name 'foo'" } */ +{} > Marek