1 | // RUN: %clang_cc1 -triple i686-windows-gnu -fms-extensions -verify -std=c++03 %s |
2 | // RUN: %clang_cc1 -triple i686-windows-gnu -fms-extensions -verify -std=c++11 %s |
3 | // RUN: %clang_cc1 -triple i686-windows-msvc -fms-extensions -verify -std=c++03 -DERROR %s |
4 | // RUN: %clang_cc1 -triple i686-windows-msvc -fms-extensions -verify -std=c++11 %s |
5 | |
6 | #ifndef ERROR |
7 | // expected-no-diagnostics |
8 | #endif |
9 | |
10 | struct NonCopyable { |
11 | private: |
12 | #ifdef ERROR |
13 | // expected-note@+2{{declared private here}} |
14 | #endif |
15 | NonCopyable(); |
16 | }; |
17 | |
18 | #ifdef ERROR |
19 | // expected-error@+4{{field of type 'NonCopyable' has private default constructor}} |
20 | // expected-note@+3{{implicit default constructor for 'S' first required here}} |
21 | // expected-note@+2{{due to 'S' being dllexported; try compiling in C++11 mode}} |
22 | #endif |
23 | struct __declspec(dllexport) S { |
24 | NonCopyable member; |
25 | }; |
26 | |