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