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