2012-03-03 Jason Merrill <jason@redhat.com>
+ Core 1270
+ * call.c (build_aggr_conv): Call reshape_init.
+ (convert_like_real): Likewise.
+ * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
+ not all constant.
+
* mangle.c (write_nested_name): Use decl_mangling_context.
(write_prefix, write_template_prefix): Likewise.
tree field = next_initializable_field (TYPE_FIELDS (type));
tree empty_ctor = NULL_TREE;
+ ctor = reshape_init (type, ctor, tf_none);
+ if (ctor == error_mark_node)
+ return NULL;
+
for (; field; field = next_initializable_field (DECL_CHAIN (field)))
{
tree ftype = TREE_TYPE (field);
expr = build2 (COMPLEX_EXPR, totype, real, imag);
return fold_if_not_in_template (expr);
}
+ expr = reshape_init (totype, expr, complain);
return get_target_expr (digest_init (totype, expr, complain));
default:
TREE_TYPE (init) = type;
if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE)
cp_complete_array_type (&TREE_TYPE (init), init, /*do_default=*/0);
- if (!(flags & PICFLAG_NOT_ALL_CONSTANT))
+ if (flags & PICFLAG_NOT_ALL_CONSTANT)
+ /* Make sure TREE_CONSTANT isn't set from build_constructor. */
+ TREE_CONSTANT (init) = false;
+ else
{
TREE_CONSTANT (init) = 1;
if (!(flags & PICFLAG_NOT_ALL_SIMPLE))
2012-03-03 Jason Merrill <jason@redhat.com>
+ Core 1270
+ * g++.dg/cpp0x/initlist65.C: New.
+
PR c++/36797
* g++.dg/ext/is_empty2.C: New.
--- /dev/null
+// Core 1270
+// { dg-options -std=c++11 }
+
+struct A
+{
+ int i[2];
+};
+
+A f() { return {1,2}; }