// 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 | |
// <rdar://problem/10228639> | |
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; | |
} |