diff mbox

c-parser.c replace error() by error_at()

Message ID CAJXstsApNjRdxXykQWAfuCVTvzMRuVW5hHJ+9UuPO8gg3s7bMw@mail.gmail.com
State New
Headers show

Commit Message

Prathamesh Kulkarni Feb. 19, 2014, 3:15 p.m. UTC
On Wed, Feb 19, 2014 at 7:56 PM, Marek Polacek <polacek@redhat.com> wrote:
> On Wed, Feb 19, 2014 at 07:43:56PM +0530, Prathamesh Kulkarni wrote:
>> 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'" } */
>> +{}
>
> I'd omit the 'foo' in dg-error and please create a new testcase for this,
> don't reuse decl-9.c.
Ok. I moved the test cases into new file decl-10.c (suggest a better name ?)
>
> Otherwise looks good (can't approve though), thanks.
>
[gcc/c]
* c-parser.c (c_parser_declspecs): Replace call to error by error_at.
* c-parser.c (c_parser_parameter_declaration): Likewise.

[gcc/testsuite]
* gcc.dg/decl-10.c: New test case.


>         Marek

Comments

Marek Polacek Feb. 19, 2014, 4:11 p.m. UTC | #1
On Wed, Feb 19, 2014 at 08:45:04PM +0530, Prathamesh Kulkarni wrote:
> 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

BTW, your MUA eats tabs, so the patch can't be applied (common gmail
problem).

> Index: gcc/testsuite/gcc.dg/decl-10.c
> ===================================================================
> --- gcc/testsuite/gcc.dg/decl-10.c (revision 0)
> +++ gcc/testsuite/gcc.dg/decl-10.c (working copy)
> @@ -0,0 +1,13 @@
> +/* { dg-do compile } */
> +
> +void
> +f4(const foo x) /* { dg-error "unknown type name" } */
> +{}
> +
> +void
> +f5(foo x, int i) /* { dg-error "unknown type name" } */
> +{}
> +
> +void
> +f6(char c, foo x, ...) /* { dg-error "unknown type name" } */
> +{}

Since we're testing the column numbers here, those dg-errors should
test that.  So please adjust them:
/* { dg-error "10:unknown type name" } */
/* { dg-error "4:unknown type name" } */
/* { dg-error "12:unknown type name" } */

Thanks.

	Marek
diff mbox

Patch

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-10.c
===================================================================
--- gcc/testsuite/gcc.dg/decl-10.c (revision 0)
+++ gcc/testsuite/gcc.dg/decl-10.c (working copy)
@@ -0,0 +1,13 @@ 
+/* { dg-do compile } */
+
+void
+f4(const foo x) /* { dg-error "unknown type name" } */
+{}
+
+void
+f5(foo x, int i) /* { dg-error "unknown type name" } */
+{}
+
+void
+f6(char c, foo x, ...) /* { dg-error "unknown type name" } */
+{}