aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/decl.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 1e157f7..5c3df09 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -7551,24 +7551,11 @@ reshape_init (tree type, tree *initp)
{
/* Loop through the initializable fields, gathering
initializers. */
- while (*initp)
+ /* FIXME support non-trivial labeled initializers. */
+ while (*initp && field)
{
tree field_init;
- /* Handle designated initializers, as an extension. */
- if (TREE_PURPOSE (*initp))
- {
- if (pedantic)
- pedwarn ("ISO C++ does not allow designated initializers");
- field = lookup_field_1 (type, TREE_PURPOSE (*initp),
- /*want_type=*/false);
- if (!field || TREE_CODE (field) != FIELD_DECL)
- error ("`%T' has no non-static data member named `%D'",
- type, TREE_PURPOSE (*initp));
- }
- if (!field)
- break;
-
field_init = reshape_init (TREE_TYPE (field), initp);
TREE_CHAIN (field_init) = CONSTRUCTOR_ELTS (new_init);
CONSTRUCTOR_ELTS (new_init) = field_init;