Bootstrapped/regtested on x86_64-linux, applying to trunk. 2015-04-29 Marek Polacek <pola...@redhat.com>
* c-typeck.c (set_init_label): Call error_at instead of error and pass LOC to it. * gcc.dg/init-bad-8.c: New test. diff --git gcc/c/c-typeck.c gcc/c/c-typeck.c index c58e918..466079f 100644 --- gcc/c/c-typeck.c +++ gcc/c/c-typeck.c @@ -7926,7 +7926,7 @@ set_init_label (location_t loc, tree fieldname, field = lookup_field (constructor_type, fieldname); if (field == 0) - error ("unknown field %qE specified in initializer", fieldname); + error_at (loc, "unknown field %qE specified in initializer", fieldname); else do { diff --git gcc/testsuite/gcc.dg/init-bad-8.c gcc/testsuite/gcc.dg/init-bad-8.c index e69de29..b321323 100644 --- gcc/testsuite/gcc.dg/init-bad-8.c +++ gcc/testsuite/gcc.dg/init-bad-8.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "" } */ + +struct S { int i, j, k; }; + +void +foo (void) +{ + struct S s = { .i = 1, .j = 2, .l = 4}; /* { dg-error "34:unknown field .l. specified in initializer" } */ +} Marek