10e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -triple i686-windows-gnu  -verify -std=c++03 %s
20e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -triple i686-windows-gnu  -verify -std=c++11 %s
30e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -triple i686-windows-msvc -verify -std=c++03 -DERROR %s
40e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -triple i686-windows-msvc -verify -std=c++11 %s
50e2c34f92f00628d48968dfea096d36381f494cbStephen Hines
60e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#ifndef ERROR
70e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expected-no-diagnostics
80e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#endif
90e2c34f92f00628d48968dfea096d36381f494cbStephen Hines
100e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct NonCopyable {
110e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesprivate:
120e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#ifdef ERROR
130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  // expected-note@+2{{declared private here}}
140e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#endif
150e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  NonCopyable();
160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines};
170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines
180e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#ifdef ERROR
190e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expected-error@+4{{field of type 'NonCopyable' has private default constructor}}
200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expected-note@+3{{implicit default constructor for 'S' first required here}}
210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expected-note@+2{{due to 'S' being dllexported; try compiling in C++11 mode}}
220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#endif
230e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesstruct __declspec(dllexport) S {
240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  NonCopyable member;
250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines};
26