// RUN: %clang_cc1 -fsyntax-only -verify %s // RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s class Foo { ~Foo(); Foo(const Foo&); public: Foo(int); }; class Bar { int foo_count; Foo foos[0]; #if __cplusplus >= 201103L // expected-note@-2 {{copy constructor of 'Bar' is implicitly deleted because field 'foos' has an inaccessible copy constructor}} #endif Foo foos2[0][2]; Foo foos3[2][0]; public: Bar(): foo_count(0) { } ~Bar() { } }; void testBar() { Bar b; Bar b2(b); #if __cplusplus >= 201103L // expected-error@-2 {{call to implicitly-deleted copy constructor of 'Bar}} #else // expected-no-diagnostics #endif b = b2; }