21 lines
		
	
	
		
			930 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			930 B
		
	
	
	
		
			C++
		
	
	
	
struct NoCopyCstr {
 | 
						|
  NoCopyCstr() {}
 | 
						|
  // No copy constructor but a move constructor means we have an
 | 
						|
  // implicitly deleted copy constructor (C++11 [class.copy]p7, p18).
 | 
						|
  NoCopyCstr(NoCopyCstr &&);
 | 
						|
};
 | 
						|
struct IndirectlyDeletedCopyCstr {
 | 
						|
  // This field indirectly deletes the implicit copy constructor.
 | 
						|
  NoCopyCstr field;
 | 
						|
  // Completing in the constructor or constructing the class
 | 
						|
  // will cause Sema to declare the special members of IndirectlyDeletedCopyCstr.
 | 
						|
  // If we correctly set the deleted implicit copy constructor in NoCopyCstr then this
 | 
						|
  // should have propagated to this record and Clang won't crash.
 | 
						|
  IndirectlyDeletedCopyCstr() { //%self.expect_expr("IndirectlyDeletedCopyCstr x; 1+1", result_type="int", result_value="2")
 | 
						|
                                //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList())
 | 
						|
  }
 | 
						|
};
 | 
						|
int main() {
 | 
						|
  IndirectlyDeletedCopyCstr{};
 | 
						|
}
 |