]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/generator-drop-cleanup/rustc.main-{{closure}}.generator_drop.0.mir
Adjust mir-opt test and make it drop something
[rust.git] / src / test / mir-opt / generator-drop-cleanup / rustc.main-{{closure}}.generator_drop.0.mir
1 // MIR for `main::{{closure}}#0` 0 generator_drop
2 // generator_layout = GeneratorLayout { field_tys: [std::string::String], variant_fields: [[], [], [], [_0]], storage_conflicts: BitMatrix { num_rows: 1, num_columns: 1, words: [1], marker: PhantomData } }
3
4 fn main::{{closure}}#0(_1: *mut [generator@$DIR/generator-drop-cleanup.rs:8:15: 11:6 {std::string::String, ()}]) -> () {
5     let mut _0: ();                      // return place in scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
6     let mut _2: ();                      // in scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
7     let _3: std::string::String;         // in scope 0 at $DIR/generator-drop-cleanup.rs:9:13: 9:15
8     let _4: ();                          // in scope 0 at $DIR/generator-drop-cleanup.rs:10:9: 10:14
9     let mut _5: ();                      // in scope 0 at $DIR/generator-drop-cleanup.rs:10:9: 10:14
10     let mut _7: ();                      // in scope 0 at $DIR/generator-drop-cleanup.rs:8:18: 8:18
11     let mut _8: ();                      // in scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
12     let mut _9: isize;                   // in scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
13     scope 1 {
14         debug _s => (((*_1) as variant#3).0: std::string::String); // in scope 1 at $DIR/generator-drop-cleanup.rs:9:13: 9:15
15     }
16     scope 2 {
17         let mut _6: std::vec::Vec<u8>;   // in scope 2 at $DIR/generator-drop-cleanup.rs:9:18: 9:31
18         scope 3 {
19         }
20     }
21
22     bb0: {
23         _9 = discriminant((*_1));        // bb0[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
24         switchInt(move _9) -> [0u32: bb7, 3u32: bb11, otherwise: bb12]; // bb0[1]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
25     }
26
27     bb1 (cleanup): {
28         resume;                          // bb1[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
29     }
30
31     bb2 (cleanup): {
32         nop;                             // bb2[0]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
33         goto -> bb8;                     // bb2[1]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
34     }
35
36     bb3: {
37         StorageDead(_5);                 // bb3[0]: scope 1 at $DIR/generator-drop-cleanup.rs:10:13: 10:14
38         StorageDead(_4);                 // bb3[1]: scope 1 at $DIR/generator-drop-cleanup.rs:10:14: 10:15
39         drop((((*_1) as variant#3).0: std::string::String)) -> [return: bb4, unwind: bb2]; // bb3[2]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
40     }
41
42     bb4: {
43         nop;                             // bb4[0]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
44         goto -> bb9;                     // bb4[1]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
45     }
46
47     bb5: {
48         return;                          // bb5[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
49     }
50
51     bb6: {
52         return;                          // bb6[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
53     }
54
55     bb7: {
56         goto -> bb10;                    // bb7[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
57     }
58
59     bb8 (cleanup): {
60         goto -> bb1;                     // bb8[0]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
61     }
62
63     bb9: {
64         goto -> bb5;                     // bb9[0]: scope 0 at $DIR/generator-drop-cleanup.rs:11:5: 11:6
65     }
66
67     bb10: {
68         goto -> bb6;                     // bb10[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
69     }
70
71     bb11: {
72         StorageLive(_4);                 // bb11[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
73         StorageLive(_5);                 // bb11[1]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
74         goto -> bb3;                     // bb11[2]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
75     }
76
77     bb12: {
78         return;                          // bb12[0]: scope 0 at $DIR/generator-drop-cleanup.rs:8:15: 11:6
79     }
80 }