xref: /llvm-project/clang/test/SemaCXX/deprecated-copy-with-user-provided-copy.cpp (revision 49e7ef2c09facd722a29a5ad96a7f8f16e362b28)
1 // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated -verify
2 // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated -verify -fms-compatibility
3 // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated-copy-with-user-provided-copy -verify
4 // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated-copy-with-user-provided-copy -verify -fms-compatibility
5 
6 struct A {
7   A &operator=(const A &); // expected-warning {{definition of implicit copy constructor for 'A' is deprecated because it has a user-provided copy assignment operator}}
8 };
9 
foo()10 void foo() {
11   A a1;
12   A a2(a1); // expected-note {{implicit copy constructor for 'A' first required here}}
13 }
14