]>
Commit | Line | Data |
---|---|---|
416331ca XL |
1 | // This test makes sure that the LLDB pretty printer does not throw an exception |
2 | // for nested closures and generators. | |
3 | ||
ba9703b0 | 4 | // Require a gdb that can read DW_TAG_variant_part. |
416331ca XL |
5 | // min-gdb-version: 8.2 |
6 | // ignore-tidy-linelength | |
7 | ||
8 | // compile-flags:-g | |
9 | ||
10 | // === GDB TESTS =================================================================================== | |
11 | ||
12 | // gdb-command:run | |
13 | ||
14 | // gdb-command:print g | |
15 | // gdb-check:$1 = issue_57822::main::closure-1 (issue_57822::main::closure-0 (1)) | |
16 | ||
17 | // gdb-command:print b | |
18 | // gdb-check:$2 = issue_57822::main::generator-3 {__0: issue_57822::main::generator-2 {__0: 2, <<variant>>: {[...]}}, <<variant>>: {[...]}} | |
19 | ||
20 | // === LLDB TESTS ================================================================================== | |
21 | ||
22 | // lldb-command:run | |
23 | ||
24 | // lldb-command:print g | |
25 | // lldbg-check:(issue_57822::main::closure-1) $0 = closure-1(closure-0(1)) | |
26 | ||
27 | // lldb-command:print b | |
28 | // lldbg-check:(issue_57822::main::generator-3) $1 = generator-3(generator-2(2)) | |
29 | ||
30 | #![feature(omit_gdb_pretty_printer_section, generators, generator_trait)] | |
31 | #![omit_gdb_pretty_printer_section] | |
32 | ||
33 | use std::ops::Generator; | |
34 | use std::pin::Pin; | |
35 | ||
36 | fn main() { | |
37 | let mut x = 1; | |
38 | let f = move || x; | |
39 | let g = move || f(); | |
40 | ||
41 | let mut y = 2; | |
42 | let mut a = move || { | |
43 | y += 1; | |
44 | yield; | |
45 | }; | |
46 | let mut b = move || { | |
74b04a01 | 47 | Pin::new(&mut a).resume(()); |
416331ca XL |
48 | yield; |
49 | }; | |
50 | ||
51 | zzz(); // #break | |
52 | } | |
53 | ||
54 | fn zzz() { () } |