Commit df16e146 by Paolo Carlini Committed by Paolo Carlini

re PR c++/53096 ([DR 1333] [c++11] should be possible to default a copy ctor…

re PR c++/53096 ([DR 1333] [c++11] should be possible to default a copy ctor that takes non-const arg)

/cp
2012-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53096
	* class.c (check_bases_and_members): Implement core/1333, do not
	disallow defaulted in the class body non-const ref special members.

/testsuite
2012-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53096
	* g++.dg/cpp0x/defaulted35.C: New.
	* g++.dg/cpp0x/defaulted15.C: Adjust.

From-SVN: r186888
parent fd59643c
2012-04-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53096
* class.c (check_bases_and_members): Implement core/1333, do not
disallow defaulted in the class body non-const ref special members.
2012-04-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52363
......
/* Functions related to building classes and their related objects.
Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011,
2012
Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
......@@ -5144,9 +5145,6 @@ check_bases_and_members (tree t)
give the synthesis error. */
error ("%q+D declared to take const reference, but implicit "
"declaration would take non-const", fn);
else if (imp_const_p && !fn_const_p)
error ("%q+D declared to take non-const reference cannot be "
"defaulted in the class body", fn);
}
defaulted_late_check (fn);
}
......
2012-04-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53096
* g++.dg/cpp0x/defaulted35.C: New.
* g++.dg/cpp0x/defaulted15.C: Adjust.
2012-04-26 Janis Johnson <janisjo@codesourcery.com>
* gcc.dg/bf-ms-layout.c: Adjust offsets to fit ms-bitfield
......
......@@ -43,7 +43,7 @@ SA(__has_trivial_copy(E));
struct F
{
F(F&) = default; // { dg-error "non-const" }
F(F&) = default;
};
struct G: public F
......
// PR c++/53096
// { dg-options -std=c++0x }
struct foo
{
foo(foo&) = default;
foo& operator=(foo&) = default;
};
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