forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			37 lines
		
	
	
		
			746 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			746 B
		
	
	
	
		
			C++
		
	
	
	
// 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;
 | 
						|
}
 |