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

Reply via email to