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 -verify
4 // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated-copy -verify -fms-compatibility
7 A
& operator=(const A
&) = default; // expected-warning {{definition of implicit copy constructor for 'A' is deprecated because it has a user-declared copy assignment operator}}
11 B
& operator=(const B
&) = delete; // expected-warning {{definition of implicit copy constructor for 'B' is deprecated because it has a user-declared copy assignment operator}}
16 A
a2(a1
); // expected-note {{implicit copy constructor for 'A' first required here}}
19 B
b2(b1
); // expected-note {{implicit copy constructor for 'B' first required here}}
25 S
& operator=(const S
&) = delete; // expected-warning {{definition of implicit copy constructor for 'S' is deprecated because it has a user-declared copy assignment operator}}
28 S
test(const S
&s
) { return S(s
); } // expected-note {{implicit copy constructor for 'S' first required here}}