diff options
-rw-r--r-- | gcc/cp/decl.c | 17 |
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; |