From patchwork Tue Oct 18 17:36:31 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 120471 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id F3A2AB70DD for ; Wed, 19 Oct 2011 04:37:36 +1100 (EST) Received: (qmail 17324 invoked by alias); 18 Oct 2011 17:37:23 -0000 Received: (qmail 15330 invoked by uid 22791); 18 Oct 2011 17:37:06 -0000 X-SWARE-Spam-Status: No, hits=-5.3 required=5.0 tests=AWL, BAYES_50, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, SPF_HELO_PASS, TW_CX, TW_FN, TW_SF X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 18 Oct 2011 17:36:37 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p9IHaa3i013211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 18 Oct 2011 13:36:36 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p9IHaZsL004583; Tue, 18 Oct 2011 13:36:35 -0400 Received: from [0.0.0.0] (ovpn-113-91.phx2.redhat.com [10.3.113.91]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p9IHaWfZ016499; Tue, 18 Oct 2011 13:36:33 -0400 Message-ID: <4E9DB91F.4050500@redhat.com> Date: Tue, 18 Oct 2011 13:36:31 -0400 From: Jason Merrill User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20111001 Thunderbird/7.0.1 MIME-Version: 1.0 To: gcc-patches List CC: Benjamin Kosnik Subject: C++ PATCH for c++/50500 (DR 1082, implicitly declared copy in class with move) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org DR 1082 changed the rules for implicitly declared copy constructors and assignment operators in the presence of move ctor/op= such that if either move operation is present, instead of being suppressed the copy operations will still be declared, but as deleted. I had to add an explicit declaration of the copy ops to shared_ptr as a result; Benjamin, do the library changes look right? Tested x86_64-pc-linux-gnu, applying to trunk. commit 8b1e494d587c2bc468409fe607ae13dc9b13dff0 Author: Jason Merrill Date: Mon Oct 17 16:29:08 2011 -0400 PR c++/50500 DR 1082 * class.c (type_has_user_declared_move_constructor): New. (type_has_user_declared_move_assign): New. (add_implicitly_declared_members): Add lazy copy ops even if there's a move. * method.c (lazily_declare_fn): Delete implicit copies if there's a move. (maybe_explain_implicit_delete): Explain this. Use inform rather than error. * cp-tree.h: Declare new fns. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 6185054..c8efc7e 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -2736,13 +2736,12 @@ add_implicitly_declared_members (tree t, If a class definition does not explicitly declare a copy constructor, one is declared implicitly. */ - if (! TYPE_HAS_COPY_CTOR (t) && ! TYPE_FOR_JAVA (t) - && !type_has_move_constructor (t)) + if (! TYPE_HAS_COPY_CTOR (t) && ! TYPE_FOR_JAVA (t)) { TYPE_HAS_COPY_CTOR (t) = 1; TYPE_HAS_CONST_COPY_CTOR (t) = !cant_have_const_cctor; CLASSTYPE_LAZY_COPY_CTOR (t) = 1; - if (cxx_dialect >= cxx0x) + if (cxx_dialect >= cxx0x && !type_has_move_constructor (t)) CLASSTYPE_LAZY_MOVE_CTOR (t) = 1; } @@ -2750,13 +2749,12 @@ add_implicitly_declared_members (tree t, when it is needed. For now, just record whether or not the type of the parameter to the assignment operator will be a const or non-const reference. */ - if (!TYPE_HAS_COPY_ASSIGN (t) && !TYPE_FOR_JAVA (t) - && !type_has_move_assign (t)) + if (!TYPE_HAS_COPY_ASSIGN (t) && !TYPE_FOR_JAVA (t)) { TYPE_HAS_COPY_ASSIGN (t) = 1; TYPE_HAS_CONST_COPY_ASSIGN (t) = !cant_have_const_assignment; CLASSTYPE_LAZY_COPY_ASSIGN (t) = 1; - if (cxx_dialect >= cxx0x) + if (cxx_dialect >= cxx0x && !type_has_move_assign (t)) CLASSTYPE_LAZY_MOVE_ASSIGN (t) = 1; } @@ -4495,6 +4493,54 @@ type_has_move_assign (tree t) return false; } +/* Returns true iff class T has a move constructor that was explicitly + declared in the class body. Note that this is different from + "user-provided", which doesn't include functions that are defaulted in + the class. */ + +bool +type_has_user_declared_move_constructor (tree t) +{ + tree fns; + + if (CLASSTYPE_LAZY_MOVE_CTOR (t)) + return false; + + if (!CLASSTYPE_METHOD_VEC (t)) + return false; + + for (fns = CLASSTYPE_CONSTRUCTORS (t); fns; fns = OVL_NEXT (fns)) + { + tree fn = OVL_CURRENT (fns); + if (move_fn_p (fn) && !DECL_ARTIFICIAL (fn)) + return true; + } + + return false; +} + +/* Returns true iff class T has a move assignment operator that was + explicitly declared in the class body. */ + +bool +type_has_user_declared_move_assign (tree t) +{ + tree fns; + + if (CLASSTYPE_LAZY_MOVE_ASSIGN (t)) + return false; + + for (fns = lookup_fnfields_slot (t, ansi_assopname (NOP_EXPR)); + fns; fns = OVL_NEXT (fns)) + { + tree fn = OVL_CURRENT (fns); + if (move_fn_p (fn) && !DECL_ARTIFICIAL (fn)) + return true; + } + + return false; +} + /* Nonzero if we need to build up a constructor call when initializing an object of this class, either because it has a user-provided constructor or because it doesn't have a default constructor (so we need to give an diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index bda18d9..d0e874b 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -4870,6 +4870,8 @@ extern bool type_has_constexpr_default_constructor (tree); extern bool type_has_virtual_destructor (tree); extern bool type_has_move_constructor (tree); extern bool type_has_move_assign (tree); +extern bool type_has_user_declared_move_constructor (tree); +extern bool type_has_user_declared_move_assign(tree); extern bool type_build_ctor_call (tree); extern void explain_non_literal_class (tree); extern void defaulted_late_check (tree); diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 0718f47..bb58312 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1375,18 +1375,31 @@ maybe_explain_implicit_delete (tree decl) { informed = true; if (sfk == sfk_constructor) - error ("a lambda closure type has a deleted default constructor"); + inform (DECL_SOURCE_LOCATION (decl), + "a lambda closure type has a deleted default constructor"); else if (sfk == sfk_copy_assignment) - error ("a lambda closure type has a deleted copy assignment operator"); + inform (DECL_SOURCE_LOCATION (decl), + "a lambda closure type has a deleted copy assignment operator"); else informed = false; } + else if (DECL_ARTIFICIAL (decl) + && (sfk == sfk_copy_assignment + || sfk == sfk_copy_constructor) + && (type_has_user_declared_move_constructor (ctype) + || type_has_user_declared_move_assign (ctype))) + { + inform (0, "%q+#D is implicitly declared as deleted because %qT " + "declares a move constructor or move assignment operator", + decl, ctype); + informed = true; + } if (!informed) { tree parm_type = TREE_VALUE (FUNCTION_FIRST_USER_PARMTYPE (decl)); bool const_p = CP_TYPE_CONST_P (non_reference (parm_type)); tree scope = push_scope (ctype); - error ("%qD is implicitly deleted because the default " + inform (0, "%q+#D is implicitly deleted because the default " "definition would be ill-formed:", decl); pop_scope (scope); synthesized_method_walk (ctype, sfk, const_p, @@ -1743,6 +1756,15 @@ lazily_declare_fn (special_function_kind sfk, tree type) /* Declare the function. */ fn = implicitly_declare_fn (sfk, type, const_p); + /* [class.copy]/8 If the class definition declares a move constructor or + move assignment operator, the implicitly declared copy constructor is + defined as deleted.... */ + if ((sfk == sfk_copy_assignment + || sfk == sfk_copy_constructor) + && (type_has_user_declared_move_constructor (type) + || type_has_user_declared_move_assign (type))) + DECL_DELETED_FN (fn) = true; + /* For move variants, rather than declare them as deleted we just don't declare them at all. */ if (DECL_DELETED_FN (fn) diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted20.C b/gcc/testsuite/g++.dg/cpp0x/defaulted20.C index 5d536a9..9b8c697 100644 --- a/gcc/testsuite/g++.dg/cpp0x/defaulted20.C +++ b/gcc/testsuite/g++.dg/cpp0x/defaulted20.C @@ -2,13 +2,12 @@ // { dg-options -std=c++0x } struct A { - A(A&&) = default; // { dg-message "A::A|no known conversion" } + A(A&&) = default; }; struct B { const A a; B(const B&) = default; - B(B&&) = default; // { dg-error "implicitly deleted|no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 10 } + B(B&&) = default; // { dg-error "implicitly deleted|use of deleted" } }; void g(B); // { dg-error "argument 1" } diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted21.C b/gcc/testsuite/g++.dg/cpp0x/defaulted21.C index 3e74033..30a4a7c 100644 --- a/gcc/testsuite/g++.dg/cpp0x/defaulted21.C +++ b/gcc/testsuite/g++.dg/cpp0x/defaulted21.C @@ -12,7 +12,7 @@ struct X { X(X&&); }; -X::X(X&&)=default; // { dg-error "implicitly deleted" } +X::X(X&&)=default; // { dg-message "implicitly deleted" } // { dg-error "does not have a move constructor" "" { target *-*-* } 15 } X f() { diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C b/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C index 861fe20..c3f6b85 100644 --- a/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C +++ b/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C @@ -3,13 +3,13 @@ struct S { S(); private: - S(S const &&); // { dg-error "" } - S & operator=(S const &&); // { dg-error "" } + S(S const &&); + S & operator=(S const &&); }; void f() { S a; - S b(a); // { dg-error "" } - a = b; // { dg-error "" } + S b(a); // { dg-error "deleted" } + a = b; // { dg-error "deleted" } } diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit12.C b/gcc/testsuite/g++.dg/cpp0x/implicit12.C new file mode 100644 index 0000000..da806e0 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/implicit12.C @@ -0,0 +1,54 @@ +// PR c++/50500 +// { dg-options "-std=c++0x" } + +// If a class declares move operations, the implicitly declared copy +// operations are deleted. +struct A +{ + A(); + A(A&&); + A& operator=(A&&); +}; + +// But they can still be explicitly defaulted. +struct B +{ + B(); + B(B&&); + B(const B&) = default; + B& operator=(B&&); + B& operator=(const B&) = default; +}; + +struct C +{ + C(); + C(C&&); +}; + +struct D +{ + D(); + D& operator=(D&&); +}; + +int main() +{ + A a; + A a2 (a); // { dg-error "deleted" } + a2 = a; // { dg-error "deleted" } + + B b; + B b2 (b); + b2 = b; + + C c; + C c2(c); // { dg-error "deleted" } + c2 = c; // { dg-error "deleted" } + + D d; + D d2(d); // { dg-error "deleted" } + d2 = d; // { dg-error "deleted" } +} + +// { dg-prune-output "because" } diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit4.C b/gcc/testsuite/g++.dg/cpp0x/implicit4.C index f97eb75..47fd56a 100644 --- a/gcc/testsuite/g++.dg/cpp0x/implicit4.C +++ b/gcc/testsuite/g++.dg/cpp0x/implicit4.C @@ -2,14 +2,13 @@ // constructor to be deleted. // { dg-options "-std=c++0x" } -struct A +struct A // { dg-message "declares a move" } { - A(); // { dg-message "A::A|candidate expects" } - A(A&&); // { dg-message "A::A|no known conversion" } + A(); + A(A&&); }; -struct B: A // { dg-error "implicit|no match" } -// { dg-message "candidate" "candidate note" { target *-*-* } 11 } +struct B: A // { dg-error "use of deleted" } { }; diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit5.C b/gcc/testsuite/g++.dg/cpp0x/implicit5.C index f25c085..d252948 100644 --- a/gcc/testsuite/g++.dg/cpp0x/implicit5.C +++ b/gcc/testsuite/g++.dg/cpp0x/implicit5.C @@ -1,19 +1,19 @@ -// Test that the default B copy constructor calls the A member template -// constructor. +// Test that the default B copy constructor calls the deleted A +// copy constructor. // { dg-options -std=c++0x } -struct A +struct A // { dg-message "declares a move" } { A() = default; A(A&&) = default; template - A(const T& t) { t.i; } // { dg-error "no member" } + A(const T& t) { t.i; } }; -struct B: A { }; +struct B: A { }; // { dg-error "implicitly|use of deleted" } int main() { B b; - B b2(b); + B b2(b); // { dg-error "deleted" } } diff --git a/gcc/testsuite/g++.dg/cpp0x/implicit8.C b/gcc/testsuite/g++.dg/cpp0x/implicit8.C index 2f3feba..c949af2 100644 --- a/gcc/testsuite/g++.dg/cpp0x/implicit8.C +++ b/gcc/testsuite/g++.dg/cpp0x/implicit8.C @@ -1,9 +1,6 @@ // The hack for PR c++/44909 breaks this testcase. We need feedback // from the C++ committee to know how to proceed. // { dg-options -std=c++0x } -// { dg-prune-output "implicitly deleted" } -// { dg-prune-output "cannot bind" } -// { dg-prune-output "initializing argument" } struct A { @@ -28,7 +25,8 @@ struct B // subobject of C should use B(const BP&). But we ignore that constructor // in order to break the cycle in 44909. Perhaps the move ctor shouldn't // suppress the copy ctor? -struct C: A, B { }; +// As of DR 1082, it doesn't suppress it. +struct C: A, B { }; // { dg-error "use of deleted" } C c; -C c2(c); // { dg-bogus "deleted" "" { xfail *-*-* } } +C c2(c); // { dg-error "deleted" } diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C index 8d7d093..6468f18 100644 --- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C @@ -9,7 +9,7 @@ decltype(F()) run(F f) // { dg-message "note" } int main() { - auto l = []() { return 5; }; // { dg-error "lambda closure type" } + auto l = []() { return 5; }; // { dg-message "lambda closure type" } run(l); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 14 } diff --git a/gcc/testsuite/g++.dg/cpp0x/not_special.C b/gcc/testsuite/g++.dg/cpp0x/not_special.C index 6d73bd0..2b510bb 100644 --- a/gcc/testsuite/g++.dg/cpp0x/not_special.C +++ b/gcc/testsuite/g++.dg/cpp0x/not_special.C @@ -1,8 +1,8 @@ // I, Howard Hinnant, hereby place this code in the public domain. // Test that move constructor and move assignement are special. -// That is, their presence should inhibit compiler generated -// copy ctor or assignment. +// That is, their presence should cause compiler declared +// copy ctor or assignment to be deleted. // { dg-options "-std=c++0x" } @@ -24,12 +24,12 @@ struct base base& operator=(const base&) {++assign; return *this;} }; -struct derived +struct derived // { dg-message "declares a move" } : base { derived() {} - derived(derived&&) {} // { dg-error "argument 1" } - derived& operator=(derived&&) {return *this;} // { dg-error "argument 1" } + derived(derived&&) {} + derived& operator=(derived&&) {return *this;} }; int test1() @@ -37,11 +37,11 @@ int test1() derived d; derived d2(static_cast(d)); // should not call base::(const base&) assert(copy == 0); - derived d3(d); // { dg-error "lvalue" } + derived d3(d); // { dg-error "deleted" } assert(copy == 1); d2 = static_cast(d); // should not call base::operator= assert(assign == 0); - d3 = d; // { dg-error "lvalue" } + d3 = d; // { dg-error "deleted" } assert(assign == 1); return 0; } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C b/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C index 2765b5f..cbce7c4 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C @@ -5,22 +5,22 @@ int move_construct = 0; int move_assign = 0; -struct base2 +struct base2 // { dg-message "declares a move" } { base2() {} - base2(base2&&) {++move_construct;} // { dg-error "argument 1" } - base2& operator=(base2&&) {++move_assign; return *this;} // { dg-error "argument 1" } + base2(base2&&) {++move_construct;} + base2& operator=(base2&&) {++move_assign; return *this;} }; int test2() { base2 b; - base2 b2(b); // { dg-error "lvalue" } + base2 b2(b); // { dg-error "deleted" } assert(move_construct == 0); base2 b3(static_cast(b)); base2 b4 = static_cast(b); assert(move_construct == 2); - b = b2; // { dg-error "lvalue" } + b = b2; // { dg-error "deleted" } assert(move_assign == 0); b = static_cast(b2); assert(move_assign == 1); diff --git a/gcc/testsuite/g++.dg/cpp0x/rv1n.C b/gcc/testsuite/g++.dg/cpp0x/rv1n.C index 5224d3e..68305eb 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv1n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv1n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -35,9 +35,9 @@ one sink_1_1( A&); // { dg-error "" } int test1_1() { A a; - const A ca = a; // { dg-error "cannot bind" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "cannot bind" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_1(ca); // { dg-error "invalid initialization" } sink_1_1(va); // { dg-error "invalid initialization" } sink_1_1(cva); // { dg-error "invalid initialization" } @@ -53,9 +53,9 @@ two sink_1_2(const A&); // { dg-error "" } int test1_2() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_2(va); // { dg-error "invalid initialization" } sink_1_2(cva); // { dg-error "invalid initialization" } sink_1_2(v_source()); // { dg-error "invalid initialization" } @@ -68,9 +68,9 @@ three sink_1_3(volatile A&); // { dg-error "" } int test1_3() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_3(ca); // { dg-error "invalid initialization" } sink_1_3(cva); // { dg-error "invalid initialization" } sink_1_3(source()); // { dg-error "invalid initialization" } @@ -85,9 +85,9 @@ four sink_1_4(const volatile A&); // { dg-error "" } int test1_4() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_4(source()); // { dg-error "invalid initialization" } sink_1_4(c_source()); // { dg-error "invalid initialization" } sink_1_4(v_source()); // { dg-error "invalid initialization" } @@ -100,9 +100,9 @@ five sink_1_5( A&&); // { dg-error "" } int test1_5() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_5(a); // { dg-error "lvalue" } sink_1_5(ca); // { dg-error "invalid initialization" } sink_1_5(va); // { dg-error "invalid initialization" } @@ -118,9 +118,9 @@ six sink_1_6(const A&&); // { dg-error "" } int test1_6() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_6(a); // { dg-error "lvalue" } sink_1_6(ca); // { dg-error "lvalue" } sink_1_6(va); // { dg-error "invalid initialization" } @@ -135,9 +135,9 @@ seven sink_1_7(volatile A&&); // { dg-error "" } int test1_7() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_7(a); // { dg-error "lvalue" } sink_1_7(ca); // { dg-error "invalid initialization" } sink_1_7(va); // { dg-error "lvalue" } @@ -152,9 +152,9 @@ eight sink_1_8(const volatile A&&); // { dg-error "" } int test1_8() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_1_8(a); // { dg-error "lvalue" } sink_1_8(ca); // { dg-error "lvalue" } sink_1_8(va); // { dg-error "lvalue" } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc/testsuite/g++.dg/cpp0x/rv2n.C index 2b3a9c0..a9d3741 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv2n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv2n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -36,9 +36,9 @@ two sink_2_12(const A&); // { dg-message "note|argument" } int test2_12() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_12(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 42 } sink_2_12(cva); // { dg-error "no match" } @@ -56,9 +56,9 @@ three sink_2_13(volatile A&); // { dg-message "note|argument" } int test2_13() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_13(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 62 } sink_2_13(cva); // { dg-error "no match" } @@ -80,9 +80,9 @@ four sink_2_14(const volatile A&); // { dg-message "note|argument" } int test2_14() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_14(source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 86 } sink_2_14(c_source()); // { dg-error "no match" } @@ -100,9 +100,9 @@ five sink_2_15( A&&); // { dg-message "note|argument" } int test2_15() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_15(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 106 } sink_2_15(va); // { dg-error "no match" } @@ -124,9 +124,9 @@ six sink_2_16(const A&&); // { dg-message "note|argument" } int test2_16() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_16(ca); // { dg-error "lvalue" } sink_2_16(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 131 } @@ -145,9 +145,9 @@ seven sink_2_17(volatile A&&); // { dg-message "note|argument" } int test2_17() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_17(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 151 } sink_2_17(va); // { dg-error "lvalue" } @@ -166,9 +166,9 @@ eight sink_2_18(const volatile A&&); // { dg-error "argument" } int test2_18() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_18(ca); // { dg-error "lvalue" } sink_2_18(va); // { dg-error "lvalue" } sink_2_18(cva); // { dg-error "lvalue" } @@ -180,9 +180,9 @@ three sink_2_23(volatile A&); // { dg-message "note|argument" } int test2_23() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_23(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 186 } sink_2_23(cva); // { dg-error "no match" } @@ -200,9 +200,9 @@ four sink_2_24(const volatile A&); // { dg-message "note|argument" } int test2_24() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_24(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 206 } sink_2_24(cv_source()); // { dg-error "no match" } @@ -216,9 +216,9 @@ four sink_2_34(const volatile A&); // { dg-message "note|argument" } int test2_34() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_34(source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 222 } sink_2_34(c_source()); // { dg-error "no match" } @@ -236,9 +236,9 @@ five sink_2_25( A&&); // { dg-message "note|argument" } int test2_25() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_25(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 242 } sink_2_25(cva); // { dg-error "no match" } @@ -256,9 +256,9 @@ six sink_2_26(const A&&); // { dg-message "note|argument" } int test2_26() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_26(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 262 } sink_2_26(cva); // { dg-error "no match" } @@ -276,9 +276,9 @@ seven sink_2_27(volatile A&&); // { dg-message "note|argument" } int test2_27() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_27(va); // { dg-error "lvalue" } sink_2_27(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 283 } @@ -293,9 +293,9 @@ eight sink_2_28(const volatile A&&); // { dg-error "argument" } int test2_28() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_28(va); // { dg-error "lvalue" } sink_2_28(cva); // { dg-error "lvalue" } } @@ -306,9 +306,9 @@ five sink_2_35( A&&); // { dg-message "note|argument" } int test2_35() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_35(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 312 } sink_2_35(cva); // { dg-error "no match" } @@ -328,9 +328,9 @@ six sink_2_36(const A&&); // { dg-message "note|argument" } int test2_36() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_36(ca); // { dg-error "lvalue" } sink_2_36(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 335 } @@ -347,9 +347,9 @@ seven sink_2_37(volatile A&&); // { dg-message "note|argument" } int test2_37() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_37(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 353 } sink_2_37(cva); // { dg-error "no match" } @@ -367,9 +367,9 @@ eight sink_2_38(const volatile A&&); // { dg-error "argument" } int test2_38() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_38(ca); // { dg-error "lvalue" } sink_2_38(cva); // { dg-error "lvalue" } } @@ -380,9 +380,9 @@ five sink_2_45( A&&); // { dg-message "note|argument" } int test2_45() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_45(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 386 } sink_2_45(v_source()); // { dg-error "no match" } @@ -398,9 +398,9 @@ six sink_2_46(const A&&); // { dg-message "note|argument" } int test2_46() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_46(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 404 } sink_2_46(cv_source()); // { dg-error "no match" } @@ -414,9 +414,9 @@ seven sink_2_47(volatile A&&); // { dg-message "note|argument" } int test2_47() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_47(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 420 } sink_2_47(cv_source()); // { dg-error "no match" } @@ -430,9 +430,9 @@ six sink_2_56(const A&&); // { dg-message "note|argument" } int test2_56() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_56(a); // { dg-error "lvalue" } sink_2_56(ca); // { dg-error "lvalue" } sink_2_56(va); // { dg-error "no match" } @@ -452,9 +452,9 @@ seven sink_2_57(volatile A&&); // { dg-message "note|argument" } int test2_57() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_57(a); // { dg-error "lvalue" } sink_2_57(va); // { dg-error "lvalue" } sink_2_57(ca); // { dg-error "no match" } @@ -474,9 +474,9 @@ eight sink_2_58(const volatile A&&); // { dg-error "argument" } int test2_58() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_58(a); // { dg-error "lvalue" } sink_2_58(ca); // { dg-error "lvalue" } sink_2_58(va); // { dg-error "lvalue" } @@ -489,9 +489,9 @@ seven sink_2_67(volatile A&&); // { dg-message "note|argument" } int test2_67() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_67(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 495 } sink_2_67(ca); // { dg-error "lvalue" } @@ -511,9 +511,9 @@ eight sink_2_68(const volatile A&&); // { dg-error "argument" } int test2_68() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_68(a); // { dg-error "lvalue" } sink_2_68(ca); // { dg-error "lvalue" } sink_2_68(va); // { dg-error "lvalue" } @@ -526,9 +526,9 @@ eight sink_2_78(const volatile A&&); // { dg-error "argument" } int test2_78() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_2_78(a); // { dg-error "lvalue" } sink_2_78(ca); // { dg-error "lvalue" } sink_2_78(va); // { dg-error "lvalue" } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc/testsuite/g++.dg/cpp0x/rv3n.C index 637716f..14b810a 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv3n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv3n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -37,9 +37,9 @@ three sink_3_123(volatile A&); // { dg-message "three sink_3_123|no known int test3_123() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_123(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 43 } sink_3_123(v_source()); // { dg-error "no match" } @@ -60,9 +60,9 @@ four sink_3_124(const volatile A&); // { dg-message "four sink_3_124|no known int test3_124() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_124(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 66 } sink_3_124(cv_source()); // { dg-error "no match" } @@ -73,9 +73,9 @@ int test3_124() int test3_125() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_125(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 79 } sink_3_125(cva); // { dg-error "no match" } @@ -94,9 +94,9 @@ six sink_3_126(const A&&); // { dg-message "six sink_3_126|no known int test3_126() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_126(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 100 } sink_3_126(cva); // { dg-error "no match" } @@ -115,9 +115,9 @@ seven sink_3_127(volatile A&&); // { dg-message "seven sink_3_127|no know int test3_127() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_127(va); // { dg-error "lvalue" } sink_3_127(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 122 } @@ -133,9 +133,9 @@ eight sink_3_128(const volatile A&&); // { dg-message "" } int test3_128() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_128(va); // { dg-error "lvalue" } sink_3_128(cva); // { dg-error "lvalue" } @@ -148,9 +148,9 @@ four sink_3_134(const volatile A&); // { dg-message "four sink_3_134|no known int test3_134() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_134(source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 154 } sink_3_134(c_source()); // { dg-error "no match" } @@ -169,9 +169,9 @@ five sink_3_135( A&&); // { dg-message "five sink_3_135|no known int test3_135() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_135(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 175 } sink_3_135(cva); // { dg-error "no match" } @@ -192,9 +192,9 @@ six sink_3_136(const A&&); // { dg-message "" } int test3_136() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_136(ca); // { dg-error "lvalue" } sink_3_136(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 199 } @@ -212,9 +212,9 @@ seven sink_3_137(volatile A&&); // { dg-message "note" } int test3_137() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_137(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 218 } sink_3_137(cva); // { dg-error "no match" } @@ -233,9 +233,9 @@ eight sink_3_138(const volatile A&&); // { dg-message "" } int test3_138() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_138(ca); // { dg-error "lvalue" } sink_3_138(cva); // { dg-error "lvalue" } return 0; @@ -248,9 +248,9 @@ five sink_3_145( A&&); // { dg-message "note" } int test3_145() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_145(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 254 } sink_3_145(v_source()); // { dg-error "no match" } @@ -267,9 +267,9 @@ six sink_3_146(const A&&); // { dg-message "note" } int test3_146() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_146(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 273 } sink_3_146(cv_source()); // { dg-error "no match" } @@ -284,9 +284,9 @@ seven sink_3_147(volatile A&&); // { dg-message "note" } int test3_147() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_147(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 290 } sink_3_147(cv_source()); // { dg-error "no match" } @@ -301,9 +301,9 @@ six sink_3_156(const A&&); // { dg-message "" } int test3_156() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_156(ca); // { dg-error "lvalue" } sink_3_156(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 308 } @@ -323,9 +323,9 @@ seven sink_3_157(volatile A&&); // { dg-message "" } int test3_157() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_157(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 329 } sink_3_157(va); // { dg-error "lvalue" } @@ -345,9 +345,9 @@ eight sink_3_158(const volatile A&&); // { dg-message "" } int test3_158() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_158(ca); // { dg-error "lvalue" } sink_3_158(va); // { dg-error "lvalue" } sink_3_158(cva); // { dg-error "lvalue" } @@ -361,9 +361,9 @@ seven sink_3_167(volatile A&&); // { dg-message "" } int test3_167() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_167(ca); // { dg-error "lvalue" } sink_3_167(va); // { dg-error "lvalue" } sink_3_167(cva); // { dg-error "no match" } @@ -382,9 +382,9 @@ eight sink_3_168(const volatile A&&); // { dg-message "" } int test3_168() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_168(ca); // { dg-error "lvalue" } sink_3_168(va); // { dg-error "lvalue" } sink_3_168(cva); // { dg-error "lvalue" } @@ -398,9 +398,9 @@ eight sink_3_178(const volatile A&&); // { dg-message "" } int test3_178() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_178(ca); // { dg-error "lvalue" } sink_3_178(va); // { dg-error "lvalue" } sink_3_178(cva); // { dg-error "lvalue" } @@ -414,9 +414,9 @@ four sink_3_234(const volatile A&); // { dg-message "note" } int test3_234() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_234(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 420 } sink_3_234(v_source()); // { dg-error "no match" } @@ -433,9 +433,9 @@ five sink_3_235( A&&); // { dg-message "note" } int test3_235() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_235(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 439 } sink_3_235(cva); // { dg-error "no match" } @@ -454,9 +454,9 @@ six sink_3_236(const A&&); // { dg-message "note" } int test3_236() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_236(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 460 } sink_3_236(cva); // { dg-error "no match" } @@ -475,9 +475,9 @@ seven sink_3_237(volatile A&&); // { dg-message "note" } int test3_237() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_237(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 481 } sink_3_237(cva); // { dg-error "no match" } @@ -494,9 +494,9 @@ eight sink_3_238(const volatile A&&); // { dg-message "eight sink_3_238|no know int test3_238() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_238(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 500 } sink_3_238(cva); // { dg-error "lvalue" } @@ -510,9 +510,9 @@ five sink_3_245( A&&); // { dg-message "five sink_3_245|no known int test3_245() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_245(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 516 } sink_3_245(cv_source()); // { dg-error "no match" } @@ -527,9 +527,9 @@ six sink_3_246(const A&&); // { dg-message "six sink_3_246|no known int test3_246() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_246(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 533 } sink_3_246(cv_source()); // { dg-error "no match" } @@ -544,9 +544,9 @@ seven sink_3_247(volatile A&&); // { dg-message "seven sink_3_247|no know int test3_247() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_247(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 550 } return 0; @@ -559,9 +559,9 @@ six sink_3_256(const A&&); // { dg-message "six sink_3_256|no known int test3_256() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_256(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 565 } sink_3_256(cva); // { dg-error "no match" } @@ -580,9 +580,9 @@ seven sink_3_257(volatile A&&); // { dg-message "seven sink_3_257|no know int test3_257() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_257(va); // { dg-error "lvalue" } sink_3_257(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 587 } @@ -598,9 +598,9 @@ eight sink_3_258(const volatile A&&); // { dg-message "" } int test3_258() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_258(va); // { dg-error "lvalue" } sink_3_258(cva); // { dg-error "lvalue" } return 0; @@ -613,9 +613,9 @@ seven sink_3_267(volatile A&&); // { dg-message "seven sink_3_267|no know int test3_267() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_267(va); // { dg-error "lvalue" } sink_3_267(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 620 } @@ -633,9 +633,9 @@ eight sink_3_268(const volatile A&&); // { dg-message "" } int test3_268() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_268(va); // { dg-error "lvalue" } sink_3_268(cva); // { dg-error "lvalue" } return 0; @@ -648,9 +648,9 @@ eight sink_3_278(const volatile A&&); // { dg-message "" } int test3_278() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_278(va); // { dg-error "lvalue" } sink_3_278(cva); // { dg-error "lvalue" } return 0; @@ -663,9 +663,9 @@ five sink_3_345( A&&); // { dg-message "five sink_3_345|no known int test3_345() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_345(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 669 } sink_3_345(v_source()); // { dg-error "no match" } @@ -682,9 +682,9 @@ six sink_3_346(const A&&); // { dg-message "six sink_3_346|no known int test3_346() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_346(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 688 } sink_3_346(cv_source()); // { dg-error "no match" } @@ -699,9 +699,9 @@ seven sink_3_347(volatile A&&); // { dg-message "seven sink_3_347|no know int test3_347() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_347(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 705 } sink_3_347(cv_source()); // { dg-error "no match" } @@ -716,9 +716,9 @@ six sink_3_356(const A&&); // { dg-message "six sink_3_356|no known int test3_356() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_356(ca); // { dg-error "lvalue" } sink_3_356(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 723 } @@ -736,9 +736,9 @@ seven sink_3_357(volatile A&&); // { dg-message "seven sink_3_357|no know int test3_357() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_357(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 742 } sink_3_357(cva); // { dg-error "no match" } @@ -757,9 +757,9 @@ eight sink_3_358(const volatile A&&); // { dg-message "" } int test3_358() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_358(ca); // { dg-error "lvalue" } sink_3_358(cva); // { dg-error "lvalue" } return 0; @@ -772,9 +772,9 @@ seven sink_3_367(volatile A&&); // { dg-message "seven sink_3_367|no know int test3_367() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_367(ca); // { dg-error "lvalue" } sink_3_367(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 779 } @@ -792,9 +792,9 @@ eight sink_3_368(const volatile A&&); // { dg-message "" } int test3_368() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_368(ca); // { dg-error "lvalue" } sink_3_368(cva); // { dg-error "lvalue" } return 0; @@ -807,9 +807,9 @@ eight sink_3_378(const volatile A&&); // { dg-message "" } int test3_378() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_378(ca); // { dg-error "lvalue" } sink_3_378(cva); // { dg-error "lvalue" } return 0; @@ -822,9 +822,9 @@ six sink_3_456(const A&&); // { dg-message "note" } int test3_456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 828 } sink_3_456(cv_source()); // { dg-error "no match" } @@ -839,9 +839,9 @@ seven sink_3_457(volatile A&&); // { dg-message "note" } int test3_457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_457(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 845 } sink_3_457(cv_source()); // { dg-error "no match" } @@ -856,9 +856,9 @@ seven sink_3_467(volatile A&&); // { dg-message "note" } int test3_467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 862 } sink_3_467(cv_source()); // { dg-error "no match" } @@ -873,9 +873,9 @@ seven sink_3_567(volatile A&&); // { dg-message "seven sink_3_567|no know int test3_567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_567(a); // { dg-error "lvalue" } sink_3_567(ca); // { dg-error "lvalue" } sink_3_567(va); // { dg-error "lvalue" } @@ -893,9 +893,9 @@ eight sink_3_568(const volatile A&&); // { dg-message "" } int test3_568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_568(a); // { dg-error "lvalue" } sink_3_568(ca); // { dg-error "lvalue" } sink_3_568(va); // { dg-error "lvalue" } @@ -910,9 +910,9 @@ eight sink_3_578(const volatile A&&); // { dg-message "" } int test3_578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_578(a); // { dg-error "lvalue" } sink_3_578(ca); // { dg-error "lvalue" } sink_3_578(va); // { dg-error "lvalue" } @@ -927,9 +927,9 @@ eight sink_3_678(const volatile A&&); // { dg-message "eight sink_3_678|no know int test3_678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_3_678(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 933 } sink_3_678(ca); // { dg-error "lvalue" } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc/testsuite/g++.dg/cpp0x/rv4n.C index daff307..076e9a0 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv4n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv4n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -38,9 +38,9 @@ four sink_4_1234(const volatile A&); // { dg-message "note" } int test4_1234() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1234(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 44 } sink_4_1234(cv_source()); // { dg-error "no match" } @@ -56,9 +56,9 @@ five sink_4_1235( A&&); // { dg-message "note" } int test4_1235() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1235(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 62 } sink_4_1235(v_source()); // { dg-error "no match" } @@ -76,9 +76,9 @@ six sink_4_1236(const A&&); // { dg-message "note" } int test4_1236() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1236(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 82 } sink_4_1236(v_source()); // { dg-error "no match" } @@ -96,9 +96,9 @@ seven sink_4_1237(volatile A&&); // { dg-message "note" } int test4_1237() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1237(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 102 } sink_4_1237(cv_source()); // { dg-error "no match" } @@ -114,9 +114,9 @@ eight sink_4_1238(const volatile A&&); // { dg-message "" } int test4_1238() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1238(cva); // { dg-error "lvalue" } return 0; } @@ -129,9 +129,9 @@ five sink_4_1245( A&&); // { dg-message "note" } int test4_1245() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1245(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 135 } sink_4_1245(cv_source()); // { dg-error "no match" } @@ -147,9 +147,9 @@ six sink_4_1246(const A&&); // { dg-message "note" } int test4_1246() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1246(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 153 } sink_4_1246(cv_source()); // { dg-error "no match" } @@ -165,9 +165,9 @@ seven sink_4_1247(volatile A&&); // { dg-message "note" } int test4_1247() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1247(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 171 } return 0; @@ -181,9 +181,9 @@ six sink_4_1256(const A&&); // { dg-message "note" } int test4_1256() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1256(va); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 187 } sink_4_1256(cva); // { dg-error "no match" } @@ -203,9 +203,9 @@ seven sink_4_1257(volatile A&&); // { dg-message "" } int test4_1257() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1257(va); // { dg-error "lvalue" } sink_4_1257(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 210 } @@ -222,9 +222,9 @@ eight sink_4_1258(const volatile A&&); // { dg-message "" } int test4_1258() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1258(va); // { dg-error "lvalue" } sink_4_1258(cva); // { dg-error "lvalue" } return 0; @@ -238,9 +238,9 @@ seven sink_4_1267(volatile A&&); // { dg-message "" } int test4_1267() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1267(va); // { dg-error "lvalue" } sink_4_1267(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 245 } @@ -259,9 +259,9 @@ eight sink_4_1268(const volatile A&&); // { dg-message "" } int test4_1268() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1268(va); // { dg-error "lvalue" } sink_4_1268(cva); // { dg-error "lvalue" } return 0; @@ -275,9 +275,9 @@ eight sink_4_1278(const volatile A&&); // { dg-message "" } int test4_1278() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1278(va); // { dg-error "lvalue" } sink_4_1278(cva); // { dg-error "lvalue" } return 0; @@ -291,9 +291,9 @@ five sink_4_1345( A&&); // { dg-message "note" } int test4_1345() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1345(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 297 } sink_4_1345(v_source()); // { dg-error "no match" } @@ -311,9 +311,9 @@ six sink_4_1346(const A&&); // { dg-message "note" } int test4_1346() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1346(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 317 } sink_4_1346(cv_source()); // { dg-error "no match" } @@ -329,9 +329,9 @@ seven sink_4_1347(volatile A&&); // { dg-message "note" } int test4_1347() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1347(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 335 } sink_4_1347(cv_source()); // { dg-error "no match" } @@ -347,9 +347,9 @@ six sink_4_1356(const A&&); // { dg-message "" } int test4_1356() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1356(ca); // { dg-error "lvalue" } sink_4_1356(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 354 } @@ -368,9 +368,9 @@ seven sink_4_1357(volatile A&&); // { dg-message "note" } int test4_1357() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1357(ca); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 374 } sink_4_1357(cva); // { dg-error "no match" } @@ -390,9 +390,9 @@ eight sink_4_1358(const volatile A&&); // { dg-message "" } int test4_1358() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1358(ca); // { dg-error "lvalue" } sink_4_1358(cva); // { dg-error "lvalue" } return 0; @@ -406,9 +406,9 @@ seven sink_4_1367(volatile A&&); // { dg-message "note" } int test4_1367() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1367(ca); // { dg-error "lvalue" } sink_4_1367(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 413 } @@ -427,9 +427,9 @@ eight sink_4_1368(const volatile A&&); // { dg-message "" } int test4_1368() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1368(ca); // { dg-error "lvalue" } sink_4_1368(cva); // { dg-error "lvalue" } return 0; @@ -443,9 +443,9 @@ eight sink_4_1378(const volatile A&&); // { dg-message "" } int test4_1378() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1378(ca); // { dg-error "lvalue" } sink_4_1378(cva); // { dg-error "lvalue" } return 0; @@ -459,9 +459,9 @@ six sink_4_1456(const A&&); // { dg-message "note" } int test4_1456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 465 } sink_4_1456(cv_source()); // { dg-error "no match" } @@ -477,9 +477,9 @@ seven sink_4_1457(volatile A&&); // { dg-message "note" } int test4_1457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1457(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 483 } sink_4_1457(cv_source()); // { dg-error "no match" } @@ -495,9 +495,9 @@ seven sink_4_1467(volatile A&&); // { dg-message "note" } int test4_1467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 501 } sink_4_1467(cv_source()); // { dg-error "no match" } @@ -513,9 +513,9 @@ seven sink_4_1567(volatile A&&); // { dg-message "" } int test4_1567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1567(ca); // { dg-error "lvalue" } sink_4_1567(va); // { dg-error "lvalue" } sink_4_1567(cva); // { dg-error "no match" } @@ -533,9 +533,9 @@ eight sink_4_1568(const volatile A&&); // { dg-message "" } int test4_1568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1568(ca); // { dg-error "lvalue" } sink_4_1568(va); // { dg-error "lvalue" } sink_4_1568(cva); // { dg-error "lvalue" } @@ -550,9 +550,9 @@ eight sink_4_1578(const volatile A&&); // { dg-message "" } int test4_1578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1578(ca); // { dg-error "lvalue" } sink_4_1578(va); // { dg-error "lvalue" } sink_4_1578(cva); // { dg-error "lvalue" } @@ -567,9 +567,9 @@ eight sink_4_1678(const volatile A&&); // { dg-message "" } int test4_1678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_1678(ca); // { dg-error "lvalue" } sink_4_1678(va); // { dg-error "lvalue" } sink_4_1678(cva); // { dg-error "lvalue" } @@ -586,9 +586,9 @@ five sink_4_2345( A&&); // { dg-message "note" } int test4_2345() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2345(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 592 } sink_4_2345(v_source()); // { dg-error "no match" } @@ -606,9 +606,9 @@ six sink_4_2346(const A&&); // { dg-message "note" } int test4_2346() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2346(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 612 } sink_4_2346(v_source()); // { dg-error "no match" } @@ -626,9 +626,9 @@ seven sink_4_2347(volatile A&&); // { dg-message "note" } int test4_2347() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2347(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 632 } sink_4_2347(cv_source()); // { dg-error "no match" } @@ -644,9 +644,9 @@ eight sink_4_2348(const volatile A&&); // { dg-message "note" } int test4_2348() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2348(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 650 } return 0; @@ -660,9 +660,9 @@ six sink_4_2356(const A&&); // { dg-message "note" } int test4_2356() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2356(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 666 } sink_4_2356(cva); // { dg-error "no match" } @@ -682,9 +682,9 @@ seven sink_4_2357(volatile A&&); // { dg-message "note" } int test4_2357() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2357(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 688 } sink_4_2357(cva); // { dg-error "no match" } @@ -702,9 +702,9 @@ eight sink_4_2358(const volatile A&&); // { dg-message "" } int test4_2358() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2358(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 708 } sink_4_2358(cva); // { dg-error "lvalue" } @@ -719,9 +719,9 @@ seven sink_4_2367(volatile A&&); // { dg-message "note" } int test4_2367() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2367(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 725 } sink_4_2367(cva); // { dg-error "no match" } @@ -741,9 +741,9 @@ eight sink_4_2368(const volatile A&&); // { dg-message "" } int test4_2368() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2368(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 747 } sink_4_2368(cva); // { dg-error "lvalue" } @@ -758,9 +758,9 @@ eight sink_4_2378(const volatile A&&); // { dg-message "" } int test4_2378() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2378(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 764 } sink_4_2378(cva); // { dg-error "lvalue" } @@ -775,9 +775,9 @@ six sink_4_2456(const A&&); // { dg-message "note" } int test4_2456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 781 } sink_4_2456(cv_source()); // { dg-error "no match" } @@ -793,9 +793,9 @@ seven sink_4_2457(volatile A&&); // { dg-message "note" } int test4_2457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2457(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 799 } return 0; @@ -809,9 +809,9 @@ seven sink_4_2467(volatile A&&); // { dg-message "note" } int test4_2467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 815 } sink_4_2467(cv_source()); // { dg-error "no match" } @@ -827,9 +827,9 @@ seven sink_4_2567(volatile A&&); // { dg-message "" } int test4_2567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2567(va); // { dg-error "lvalue" } sink_4_2567(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 834 } @@ -846,9 +846,9 @@ eight sink_4_2568(const volatile A&&); // { dg-message "" } int test4_2568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2568(va); // { dg-error "lvalue" } sink_4_2568(cva); // { dg-error "lvalue" } return 0; @@ -862,9 +862,9 @@ eight sink_4_2578(const volatile A&&); // { dg-message "" } int test4_2578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2578(va); // { dg-error "lvalue" } sink_4_2578(cva); // { dg-error "lvalue" } return 0; @@ -878,9 +878,9 @@ eight sink_4_2678(const volatile A&&); // { dg-message "" } int test4_2678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_2678(va); // { dg-error "lvalue" } sink_4_2678(cva); // { dg-error "lvalue" } sink_4_2678(source()); // { dg-error "ambiguous" } @@ -896,9 +896,9 @@ six sink_4_3456(const A&&); // { dg-message "note" } int test4_3456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 902 } sink_4_3456(cv_source()); // { dg-error "no match" } @@ -914,9 +914,9 @@ seven sink_4_3457(volatile A&&); // { dg-message "note" } int test4_3457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3457(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 920 } sink_4_3457(cv_source()); // { dg-error "no match" } @@ -932,9 +932,9 @@ seven sink_4_3467(volatile A&&); // { dg-message "note" } int test4_3467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 938 } sink_4_3467(cv_source()); // { dg-error "no match" } @@ -950,9 +950,9 @@ seven sink_4_3567(volatile A&&); // { dg-message "note" } int test4_3567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3567(ca); // { dg-error "lvalue" } sink_4_3567(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 957 } @@ -969,9 +969,9 @@ eight sink_4_3568(const volatile A&&); // { dg-message "" } int test4_3568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3568(ca); // { dg-error "lvalue" } sink_4_3568(cva); // { dg-error "lvalue" } return 0; @@ -985,9 +985,9 @@ eight sink_4_3578(const volatile A&&); // { dg-message "" } int test4_3578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3578(ca); // { dg-error "lvalue" } sink_4_3578(cva); // { dg-error "lvalue" } return 0; @@ -1001,9 +1001,9 @@ eight sink_4_3678(const volatile A&&); // { dg-message "" } int test4_3678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_3678(ca); // { dg-error "lvalue" } sink_4_3678(cva); // { dg-error "lvalue" } sink_4_3678(source()); // { dg-error "ambiguous" } @@ -1019,9 +1019,9 @@ seven sink_4_4567(volatile A&&); // { dg-message "note" } int test4_4567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_4567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 1025 } return 0; @@ -1035,9 +1035,9 @@ eight sink_4_4678(const volatile A&&); // { dg-message "note" } int test4_4678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_4678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 1041 } return 0; @@ -1051,9 +1051,9 @@ eight sink_4_5678(const volatile A&&); // { dg-message "" } int test4_5678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_4_5678(a); // { dg-error "lvalue" } sink_4_5678(ca); // { dg-error "lvalue" } sink_4_5678(va); // { dg-error "lvalue" } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv5n.C b/gcc/testsuite/g++.dg/cpp0x/rv5n.C index 660a689..d9b8cd2 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv5n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv5n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -39,9 +39,9 @@ five sink_5_12345( A&&); // { dg-message "note" } int test5_12345() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12345(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 45 } sink_5_12345(cv_source()); // { dg-error "no match" } @@ -58,9 +58,9 @@ six sink_5_12346(const A&&); // { dg-message "note" } int test5_12346() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12346(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 64 } sink_5_12346(cv_source()); // { dg-error "no match" } @@ -77,9 +77,9 @@ seven sink_5_12347(volatile A&&); // { dg-message "note" } int test5_12347() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12347(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 83 } return 0; @@ -94,9 +94,9 @@ six sink_5_12356(const A&&); // { dg-message "note" } int test5_12356() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12356(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 100 } sink_5_12356(v_source()); // { dg-error "no match" } @@ -115,9 +115,9 @@ seven sink_5_12357(volatile A&&); // { dg-message "note" } int test5_12357() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12357(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 121 } sink_5_12357(cv_source()); // { dg-error "no match" } @@ -134,9 +134,9 @@ eight sink_5_12358(const volatile A&&); // { dg-message "" } int test5_12358() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12358(cva); // { dg-error "lvalue" } return 0; } @@ -150,9 +150,9 @@ seven sink_5_12367(volatile A&&); // { dg-message "note" } int test5_12367() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12367(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 156 } sink_5_12367(source()); // { dg-error "ambiguous" } @@ -171,9 +171,9 @@ eight sink_5_12368(const volatile A&&); // { dg-message "" } int test5_12368() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12368(cva); // { dg-error "lvalue" } return 0; } @@ -187,9 +187,9 @@ eight sink_5_12378(const volatile A&&); // { dg-message "" } int test5_12378() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12378(cva); // { dg-error "lvalue" } return 0; } @@ -203,9 +203,9 @@ six sink_5_12456(const A&&); // { dg-message "note" } int test5_12456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 209 } sink_5_12456(cv_source()); // { dg-error "no match" } @@ -222,9 +222,9 @@ seven sink_5_12457(volatile A&&); // { dg-message "note" } int test5_12457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12457(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 228 } return 0; @@ -239,9 +239,9 @@ seven sink_5_12467(volatile A&&); // { dg-message "note" } int test5_12467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 245 } sink_5_12467(cv_source()); // { dg-error "no match" } @@ -258,9 +258,9 @@ seven sink_5_12567(volatile A&&); // { dg-message "" } int test5_12567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12567(va); // { dg-error "lvalue" } sink_5_12567(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 265 } @@ -278,9 +278,9 @@ eight sink_5_12568(const volatile A&&); // { dg-message "" } int test5_12568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12568(va); // { dg-error "lvalue" } sink_5_12568(cva); // { dg-error "lvalue" } return 0; @@ -295,9 +295,9 @@ eight sink_5_12578(const volatile A&&); // { dg-message "" } int test5_12578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12578(va); // { dg-error "lvalue" } sink_5_12578(cva); // { dg-error "lvalue" } return 0; @@ -312,9 +312,9 @@ eight sink_5_12678(const volatile A&&); // { dg-message "" } int test5_12678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_12678(va); // { dg-error "lvalue" } sink_5_12678(cva); // { dg-error "lvalue" } sink_5_12678(source()); // { dg-error "ambiguous" } @@ -331,9 +331,9 @@ six sink_5_13456(const A&&); // { dg-message "note" } int test5_13456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 337 } sink_5_13456(cv_source()); // { dg-error "no match" } @@ -350,9 +350,9 @@ seven sink_5_13457(volatile A&&); // { dg-message "note" } int test5_13457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13457(c_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 356 } sink_5_13457(cv_source()); // { dg-error "no match" } @@ -369,9 +369,9 @@ seven sink_5_13467(volatile A&&); // { dg-message "note" } int test5_13467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 375 } sink_5_13467(cv_source()); // { dg-error "no match" } @@ -388,9 +388,9 @@ seven sink_5_13567(volatile A&&); // { dg-message "note" } int test5_13567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13567(ca); // { dg-error "lvalue" } sink_5_13567(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 395 } @@ -408,9 +408,9 @@ eight sink_5_13568(const volatile A&&); // { dg-message "" } int test5_13568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13568(ca); // { dg-error "lvalue" } sink_5_13568(cva); // { dg-error "lvalue" } return 0; @@ -425,9 +425,9 @@ eight sink_5_13578(const volatile A&&); // { dg-message "" } int test5_13578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13578(ca); // { dg-error "lvalue" } sink_5_13578(cva); // { dg-error "lvalue" } return 0; @@ -442,9 +442,9 @@ eight sink_5_13678(const volatile A&&); // { dg-message "" } int test5_13678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_13678(ca); // { dg-error "lvalue" } sink_5_13678(cva); // { dg-error "lvalue" } sink_5_13678(source()); // { dg-error "ambiguous" } @@ -461,9 +461,9 @@ seven sink_5_14567(volatile A&&); // { dg-message "note" } int test5_14567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_14567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 467 } return 0; @@ -478,9 +478,9 @@ eight sink_5_14678(const volatile A&&); // { dg-message "note" } int test5_14678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_14678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 484 } return 0; @@ -495,9 +495,9 @@ eight sink_5_15678(const volatile A&&); // { dg-message "" } int test5_15678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_15678(ca); // { dg-error "lvalue" } sink_5_15678(va); // { dg-error "lvalue" } sink_5_15678(cva); // { dg-error "lvalue" } @@ -513,9 +513,9 @@ six sink_5_23456(const A&&); // { dg-message "note" } int test5_23456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23456(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 519 } sink_5_23456(v_source()); // { dg-error "no match" } @@ -534,9 +534,9 @@ seven sink_5_23457(volatile A&&); // { dg-message "note" } int test5_23457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23457(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 540 } sink_5_23457(cv_source()); // { dg-error "no match" } @@ -553,9 +553,9 @@ eight sink_5_23458(const volatile A&&); // { dg-message "note" } int test5_23458() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23458(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 559 } return 0; @@ -570,9 +570,9 @@ seven sink_5_23467(volatile A&&); // { dg-message "note" } int test5_23467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23467(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 576 } sink_5_23467(source()); // { dg-error "ambiguous" } @@ -591,9 +591,9 @@ eight sink_5_23468(const volatile A&&); // { dg-message "note" } int test5_23468() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23468(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 597 } return 0; @@ -608,9 +608,9 @@ eight sink_5_23478(const volatile A&&); // { dg-message "note" } int test5_23478() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23478(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 614 } return 0; @@ -625,9 +625,9 @@ seven sink_5_23567(volatile A&&); // { dg-message "note" } int test5_23567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23567(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 631 } sink_5_23567(cva); // { dg-error "no match" } @@ -646,9 +646,9 @@ eight sink_5_23568(const volatile A&&); // { dg-message "" } int test5_23568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23568(cva); // { dg-error "lvalue" } sink_5_23568(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 653 } @@ -664,9 +664,9 @@ eight sink_5_23578(const volatile A&&); // { dg-message "" } int test5_23578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23578(cva); // { dg-error "lvalue" } sink_5_23578(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 671 } @@ -682,9 +682,9 @@ eight sink_5_23678(const volatile A&&); // { dg-message "" } int test5_23678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_23678(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 688 } sink_5_23678(cva); // { dg-error "lvalue" } @@ -702,9 +702,9 @@ seven sink_5_24567(volatile A&&); // { dg-message "note" } int test5_24567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_24567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 708 } return 0; @@ -719,9 +719,9 @@ eight sink_5_24678(const volatile A&&); // { dg-message "note" } int test5_24678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_24678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 725 } return 0; @@ -736,9 +736,9 @@ eight sink_5_25678(const volatile A&&); // { dg-message "" } int test5_25678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_25678(va); // { dg-error "lvalue" } sink_5_25678(cva); // { dg-error "lvalue" } return 0; @@ -753,9 +753,9 @@ seven sink_5_34567(volatile A&&); // { dg-message "note" } int test5_34567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_34567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 759 } return 0; @@ -770,9 +770,9 @@ eight sink_5_34678(const volatile A&&); // { dg-message "note" } int test5_34678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_34678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 776 } return 0; @@ -787,9 +787,9 @@ eight sink_5_35678(const volatile A&&); // { dg-message "" } int test5_35678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_5_35678(ca); // { dg-error "lvalue" } sink_5_35678(cva); // { dg-error "lvalue" } return 0; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv6n.C b/gcc/testsuite/g++.dg/cpp0x/rv6n.C index d0fdbb7..fbc932d 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv6n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv6n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -40,9 +40,9 @@ six sink_6_123456(const A&&); // { dg-message "note" } int test6_123456() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123456(v_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 46 } sink_6_123456(cv_source()); // { dg-error "no match" } @@ -60,9 +60,9 @@ seven sink_6_123457(volatile A&&); // { dg-message "note" } int test6_123457() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123457(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 66 } return 0; @@ -78,9 +78,9 @@ eight sink_6_235678(const volatile A&&); // { dg-message "" } int test6_235678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_235678(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 84 } sink_6_235678(cva); // { dg-error "lvalue" } @@ -97,9 +97,9 @@ eight sink_6_234678(const volatile A&&); // { dg-message "note" } int test6_234678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_234678(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 103 } sink_6_234678(source()); // { dg-error "ambiguous" } @@ -117,9 +117,9 @@ eight sink_6_234578(const volatile A&&); // { dg-message "note" } int test6_234578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_234578(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 123 } return 0; @@ -135,9 +135,9 @@ eight sink_6_234568(const volatile A&&); // { dg-message "note" } int test6_234568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_234568(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 141 } return 0; @@ -153,9 +153,9 @@ seven sink_6_234567(volatile A&&); // { dg-message "note" } int test6_234567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_234567(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 159 } sink_6_234567(cv_source()); // { dg-error "no match" } @@ -173,9 +173,9 @@ eight sink_6_134678(const volatile A&&); // { dg-message "note" } int test6_134678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_134678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 179 } return 0; @@ -191,9 +191,9 @@ eight sink_6_124678(const volatile A&&); // { dg-message "note" } int test6_124678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_124678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 197 } return 0; @@ -209,9 +209,9 @@ eight sink_6_123678(const volatile A&&); // { dg-message "" } int test6_123678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123678(cva); // { dg-error "lvalue" } sink_6_123678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 216 } @@ -228,9 +228,9 @@ seven sink_6_123567(volatile A&&); // { dg-message "note" } int test6_123567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123567(cva); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 234 } sink_6_123567(cv_source()); // { dg-error "no match" } @@ -248,9 +248,9 @@ eight sink_6_123568(const volatile A&&); // { dg-message "" } int test6_123568() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123568(cva); // { dg-error "lvalue" } return 0; } @@ -265,9 +265,9 @@ eight sink_6_123578(const volatile A&&); // { dg-message "" } int test6_123578() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123578(cva); // { dg-error "lvalue" } return 0; } @@ -282,9 +282,9 @@ seven sink_6_123467(volatile A&&); // { dg-message "note" } int test6_123467() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_123467(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 288 } sink_6_123467(cv_source()); // { dg-error "no match" } @@ -302,9 +302,9 @@ seven sink_6_124567(volatile A&&); // { dg-message "note" } int test6_124567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_124567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 308 } return 0; @@ -320,9 +320,9 @@ eight sink_6_125678(const volatile A&&); // { dg-message "" } int test6_125678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_125678(va); // { dg-error "lvalue" } sink_6_125678(cva); // { dg-error "lvalue" } return 0; @@ -338,9 +338,9 @@ seven sink_6_134567(volatile A&&); // { dg-message "note" } int test6_134567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_134567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 344 } return 0; @@ -356,9 +356,9 @@ eight sink_6_135678(const volatile A&&); // { dg-message "" } int test6_135678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_6_135678(ca); // { dg-error "lvalue" } sink_6_135678(cva); // { dg-error "lvalue" } return 0; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv7n.C b/gcc/testsuite/g++.dg/cpp0x/rv7n.C index 6071e05..206cc79 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv7n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv7n.C @@ -20,7 +20,7 @@ struct eight {char x[8];}; struct A { A(); - A(const volatile A&&); // { dg-error "argument 1" } + A(const volatile A&&); }; A source(); @@ -41,9 +41,9 @@ seven sink_7_1234567(volatile A&&); // { dg-message "note" } int test7_1234567() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_7_1234567(cv_source()); // { dg-error "no match" } // { dg-message "candidate" "candidate note" { target *-*-* } 47 } return 0; @@ -60,9 +60,9 @@ eight sink_7_1235678(const volatile A&&); // { dg-message "" } int test7_1235678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_7_1235678(cva); // { dg-error "lvalue" } return 0; } @@ -78,9 +78,9 @@ eight sink_7_2345678(const volatile A&&); // { dg-message "note" } int test7_2345678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_7_2345678(a); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 84 } return 0; @@ -97,9 +97,9 @@ eight sink_7_1234678(const volatile A&&); // { dg-message "note" } int test7_1234678() { A a; - const A ca = a; // { dg-error "lvalue" } + const A ca = a; // { dg-error "deleted" } volatile A va; - const volatile A cva = a; // { dg-error "lvalue" } + const volatile A cva = a; // { dg-error "deleted" } sink_7_1234678(source()); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 103 } return 0; diff --git a/libstdc++-v3/include/bits/shared_ptr.h b/libstdc++-v3/include/bits/shared_ptr.h index 42acace..32addf9 100644 --- a/libstdc++-v3/include/bits/shared_ptr.h +++ b/libstdc++-v3/include/bits/shared_ptr.h @@ -211,6 +211,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @param __r A %shared_ptr. * @post get() == __r.get() && use_count() == __r.use_count() */ + shared_ptr(const shared_ptr&) noexcept = default; template::value>::type> shared_ptr(const shared_ptr<_Tp1>& __r) noexcept @@ -264,6 +265,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr shared_ptr(nullptr_t __p) noexcept : __shared_ptr<_Tp>(__p) { } + shared_ptr& operator=(const shared_ptr&) noexcept = default; template shared_ptr& operator=(const shared_ptr<_Tp1>& __r) noexcept diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc index a3abadf..b72553b 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc @@ -41,19 +41,3 @@ main() test01(); return 0; } - -// { dg-warning "note" "" { target *-*-* } 370 } -// { dg-warning "note" "" { target *-*-* } 365 } -// { dg-warning "note" "" { target *-*-* } 356 } -// { dg-warning "note" "" { target *-*-* } 1103 } -// { dg-warning "note" "" { target *-*-* } 1098 } -// { dg-warning "note" "" { target *-*-* } 1089 } -// { dg-warning "note" "" { target *-*-* } 485 } -// { dg-warning "note" "" { target *-*-* } 479 } -// { dg-warning "note" "" { target *-*-* } 468 } -// { dg-warning "note" "" { target *-*-* } 841 } -// { dg-warning "note" "" { target *-*-* } 1056 } -// { dg-warning "note" "" { target *-*-* } 1050 } -// { dg-warning "note" "" { target *-*-* } 342 } -// { dg-warning "note" "" { target *-*-* } 292 } -// { dg-warning "note" "" { target *-*-* } 224 } diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index 38bfac8..c0b8ee3 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -409,6 +409,14 @@ namespace __gnu_test propagating_allocator(const propagating_allocator&) noexcept = default; + propagating_allocator& + operator=(const propagating_allocator& a) noexcept + { + static_assert(Propagate, "assigning propagating_allocator"); + propagating_allocator(a).swap_base(*this); + return *this; + } + template propagating_allocator& operator=(const propagating_allocator& a) noexcept diff --git a/libstdc++-v3/testsuite/util/testsuite_rvalref.h b/libstdc++-v3/testsuite/util/testsuite_rvalref.h index 2234e81..73c70e0 100644 --- a/libstdc++-v3/testsuite/util/testsuite_rvalref.h +++ b/libstdc++-v3/testsuite/util/testsuite_rvalref.h @@ -255,6 +255,9 @@ namespace __gnu_test { throw 1; } throwing_move_constructor(const throwing_move_constructor&) = default; + + throwing_move_constructor& + operator=(const throwing_move_constructor&) = default; }; } // namespace __gnu_test