aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-04-25 11:14:02 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2012-04-25 11:14:02 +0200
commitfdce1719a552ed44439cea61e795f67e82d446e8 (patch)
tree53b045f8ea0328ba2b9da03679a870ab82270087 /gcc
parent32397f22f0adc823b4df39b3381424ba7855828f (diff)
downloadgcc-fdce1719a552ed44439cea61e795f67e82d446e8.zip
gcc-fdce1719a552ed44439cea61e795f67e82d446e8.tar.gz
gcc-fdce1719a552ed44439cea61e795f67e82d446e8.tar.bz2
re PR c/52880 (-Woverride-init emitts unexpected error)
PR c/52880 * c-typeck.c (set_nonincremental_init, set_nonincremental_init_from_string): Pass true instead of false as IMPLICIT to add_pending_init. * gcc.dg/pr52880.c: New test. From-SVN: r186808
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/c-typeck.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr52880.c10
4 files changed, 24 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a592863..a7de119 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2012-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/52880
+ * c-typeck.c (set_nonincremental_init,
+ set_nonincremental_init_from_string): Pass true instead of false
+ as IMPLICIT to add_pending_init.
+
2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
* c-typeck.c (pop_init_level): Improve diagnostics.
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 4e5ffbf..967e8f0 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -7617,7 +7617,7 @@ set_nonincremental_init (struct obstack * braced_init_obstack)
FOR_EACH_CONSTRUCTOR_ELT (constructor_elements, ix, index, value)
{
- add_pending_init (index, value, NULL_TREE, false,
+ add_pending_init (index, value, NULL_TREE, true,
braced_init_obstack);
}
constructor_elements = 0;
@@ -7710,7 +7710,7 @@ set_nonincremental_init_from_string (tree str,
}
value = build_int_cst_wide (type, val[1], val[0]);
- add_pending_init (purpose, value, NULL_TREE, false,
+ add_pending_init (purpose, value, NULL_TREE, true,
braced_init_obstack);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cce98fa..82f6ae9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/52880
+ * gcc.dg/pr52880.c: New test.
+
2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
* gcc.dg/m-un-2.c: Update.
diff --git a/gcc/testsuite/gcc.dg/pr52880.c b/gcc/testsuite/gcc.dg/pr52880.c
new file mode 100644
index 0000000..5a83de8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr52880.c
@@ -0,0 +1,10 @@
+/* PR c/52880 */
+/* { dg-do compile } */
+/* { dg-options "-Woverride-init" } */
+
+struct A { int a; int b; };
+struct B { struct A c; int d, e; };
+struct B f = { .c.a = 0, .e = 1, .d = 2, .c.b = 3 };
+struct C { int g; int h; };
+struct D { int i; struct C j; int k; };
+struct D l = { .j.g = 0, .k = 1, .i = 2, .j.h = 3 };