aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-05-02 05:40:38 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-05-02 05:40:38 +0000
commit6a358dcb65c409f966347dc4cfce1f53942f7173 (patch)
tree3886530e4ee93fe1ce5e786a6e2bbb874f908b75 /gcc/c
parentcea4a152f6c7824ec28e27580f2086b7c3e8f87c (diff)
downloadgcc-6a358dcb65c409f966347dc4cfce1f53942f7173.zip
gcc-6a358dcb65c409f966347dc4cfce1f53942f7173.tar.gz
gcc-6a358dcb65c409f966347dc4cfce1f53942f7173.tar.bz2
re PR c/60784 (Spurious -Wmissing-field-initializers warning for anonymous structure)
PR c/60784 * c-typeck.c (push_init_level): Set constructor_designated to p->designated for structures. * gcc.dg/pr60784.c: New test. From-SVN: r209998
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-typeck.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index a5b4f5f..8fc20cf 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-02 Marek Polacek <polacek@redhat.com>
+
+ PR c/60784
+ * c-typeck.c (push_init_level): Set constructor_designated to
+ p->designated for structures.
+
2014-05-01 Marek Polacek <polacek@redhat.com>
PR c/60915
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index 21d1006..98567b4 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -7270,6 +7270,9 @@ push_init_level (int implicit, struct obstack * braced_init_obstack)
push_member_name (constructor_fields);
constructor_depth++;
}
+ /* If upper initializer is designated, then mark this as
+ designated too to prevent bogus warnings. */
+ constructor_designated = p->designated;
}
else if (TREE_CODE (constructor_type) == ARRAY_TYPE)
{