Commit b216f69b by Mark Mitchell Committed by Mark Mitchell

init.c (expand_default_init): Handle brace-enclosed initializers correctly.

	* init.c (expand_default_init): Handle brace-enclosed initializers
	correctly.

	* g++.dg/init/array8.C: New test.

From-SVN: r58245
parent 15e0653e
2002-10-17 Mark Mitchell <mark@codesourcery.com>
* init.c (expand_default_init): Handle brace-enclosed initializers
correctly.
2002-10-16 Mark Mitchell <mark@codesourcery.com> 2002-10-16 Mark Mitchell <mark@codesourcery.com>
* mangle.c (write_expression): Correct handling of enumeration * mangle.c (write_expression): Correct handling of enumeration
......
...@@ -1181,17 +1181,12 @@ expand_default_init (binfo, true_exp, exp, init, flags) ...@@ -1181,17 +1181,12 @@ expand_default_init (binfo, true_exp, exp, init, flags)
to run a new constructor; and catching an exception, where we to run a new constructor; and catching an exception, where we
have already built up the constructor call so we could wrap it have already built up the constructor call so we could wrap it
in an exception region. */; in an exception region. */;
else if (TREE_CODE (init) == CONSTRUCTOR) else if (TREE_CODE (init) == CONSTRUCTOR
&& TREE_HAS_CONSTRUCTOR (init))
{ {
if (!TYPE_HAS_CONSTRUCTOR (type)) /* A brace-enclosed initializer for an aggregate. */
/* A brace-enclosed initializer has whatever type is my_friendly_assert (CP_AGGREGATE_TYPE_P (type), 20021016);
required. There's no need to convert it. */ init = digest_init (type, init, (tree *)NULL);
;
else
init = ocp_convert (type,
TREE_VALUE (CONSTRUCTOR_ELTS (init)),
CONV_IMPLICIT | CONV_FORCE_TEMP,
flags);
} }
else else
init = ocp_convert (type, init, CONV_IMPLICIT|CONV_FORCE_TEMP, flags); init = ocp_convert (type, init, CONV_IMPLICIT|CONV_FORCE_TEMP, flags);
......
2002-10-17 Mark Mitchell <mark@codesourcery.com>
* g++.dg/init/array8.C: New test.
2002-10-17 Richard Sandiford <rsandifo@redhat.com> 2002-10-17 Richard Sandiford <rsandifo@redhat.com>
* gcc.dg/special/mips-abi.exp: New test. * gcc.dg/special/mips-abi.exp: New test.
......
struct A {
A ();
};
struct B {
A a1;
A a2;
};
A a;
struct B b[] = { { a, a }, { a, a } };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment