Commit 13ead6d8 by H.J. Lu Committed by H.J. Lu

Revert the accidental checkin in revision 158918.

gcc/cp/

2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/43951
	* init.c (build_new_1): Revert the accidental checkin in
	revision 158918.

gcc/testsuite/

2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/43951
	* g++.dg/init/new28.C: New.

From-SVN: r158959
parent 619dea2d
2010-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR c++/43951
* init.c (build_new_1): Revert the accidental checkin in
revision 158918.
2010-04-30 Jason Merrill <jason@redhat.com>
PR c++/43868
......
......@@ -1911,13 +1911,13 @@ build_new_1 (VEC(tree,gc) **placement, tree type, tree nelts,
is_initialized = (TYPE_NEEDS_CONSTRUCTING (elt_type) || *init != NULL);
if (*init == NULL)
if (*init == NULL && !type_has_user_provided_constructor (elt_type))
{
bool maybe_uninitialized_error = false;
bool uninitialized_error = false;
/* A program that calls for default-initialization [...] of an
entity of reference type is ill-formed. */
if (CLASSTYPE_REF_FIELDS_NEED_INIT (elt_type))
maybe_uninitialized_error = true;
uninitialized_error = true;
/* A new-expression that creates an object of type T initializes
that object as follows:
......@@ -1932,9 +1932,9 @@ build_new_1 (VEC(tree,gc) **placement, tree type, tree nelts,
const-qualified type, the program is ill-formed; */
if (CLASSTYPE_READONLY_FIELDS_NEED_INIT (elt_type))
maybe_uninitialized_error = true;
uninitialized_error = true;
if (maybe_uninitialized_error)
if (uninitialized_error)
{
if (complain & tf_error)
diagnose_uninitialized_cst_or_ref_member (elt_type,
......
2010-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR c++/43951
* g++.dg/init/new28.C: New.
2010-04-30 Iain Sandoe <iains@gcc.gnu.org>
PR objc++/32052
......
// PR c++/43951
// { dg-do run }
// { dg-options "-O2" }
extern "C" void abort ();
class Foo
{
public:
Foo () : xxx (1) {};
const int xxx;
};
Foo *
bar ()
{
return new Foo;
}
int
main ()
{
Foo *p = bar ();
if (p->xxx != 1)
abort ();
return 0;
}
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