Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/cpp0x/depr-copy1.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children | 1830386684a0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/cpp0x/depr-copy1.C Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,29 @@ +/* [depr.impldec] The implicit definition of a copy constructor as defaulted is + deprecated if the class has a user-declared copy assignment operator or a + user-declared destructor. The implicit definition of a copy assignment + operator as defaulted is deprecated if the class has a user-declared copy + constructor or a user-declared destructor (15.4, 15.8). In a future revision + of this International Standard, these implicit definitions could become + deleted (11.4). */ + +// { dg-additional-options -Wdeprecated-copy } + +struct X +{ + X(); + X(const X&); +}; +struct A +{ + X x; + ~A(); +}; + +void f(bool b) +{ + A a; + if (b) + throw A(); // Don't warn about elided copy + A a2 = A(); // Here either. + A a3 (a); // { dg-warning "deprecated" "" { target c++11 } } +}