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{}; }