]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/generator_tiny.main-{{closure}}.generator_resume.0.mir
Auto merge of #74899 - sajattack:libc_0.2.74_bump, r=jonas-schievink
[rust.git] / src / test / mir-opt / generator_tiny.main-{{closure}}.generator_resume.0.mir
1 // MIR for `main::{{closure}}#0` 0 generator_resume
2 /* generator_layout = GeneratorLayout {
3     field_tys: {
4         _0: HasDrop,
5     },
6     variant_fields: {
7         Unresumed(0): [],
8         Returned (1): [],
9         Panicked (2): [],
10         Suspend0 (3): [_0],
11     },
12     storage_conflicts: BitMatrix(1x1) {
13         (_0, _0),
14     },
15 } */
16
17 fn main::{{closure}}#0(_1: std::pin::Pin<&mut [generator@$DIR/generator-tiny.rs:19:16: 25:6 {u8, HasDrop, ()}]>, _2: u8) -> std::ops::GeneratorState<(), ()> {
18     debug _x => _10;                     // in scope 0 at $DIR/generator-tiny.rs:19:17: 19:19
19     let mut _0: std::ops::GeneratorState<(), ()>; // return place in scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
20     let _3: HasDrop;                     // in scope 0 at $DIR/generator-tiny.rs:20:13: 20:15
21     let mut _4: !;                       // in scope 0 at $DIR/generator-tiny.rs:21:9: 24:10
22     let mut _5: ();                      // in scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
23     let _6: u8;                          // in scope 0 at $DIR/generator-tiny.rs:22:13: 22:18
24     let mut _7: ();                      // in scope 0 at $DIR/generator-tiny.rs:22:13: 22:18
25     let _8: ();                          // in scope 0 at $DIR/generator-tiny.rs:23:13: 23:21
26     let mut _9: ();                      // in scope 0 at $DIR/generator-tiny.rs:19:25: 19:25
27     let _10: u8;                         // in scope 0 at $DIR/generator-tiny.rs:19:17: 19:19
28     let mut _11: u32;                    // in scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
29     scope 1 {
30         debug _d => (((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 25:6 {u8, HasDrop, ()}])) as variant#3).0: HasDrop); // in scope 1 at $DIR/generator-tiny.rs:20:13: 20:15
31     }
32
33     bb0: {
34         _11 = discriminant((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 25:6 {u8, HasDrop, ()}]))); // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
35         switchInt(move _11) -> [0_u32: bb1, 3_u32: bb5, otherwise: bb6]; // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
36     }
37
38     bb1: {
39         _10 = move _2;                   // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
40         nop;                             // scope 0 at $DIR/generator-tiny.rs:20:13: 20:15
41         (((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 25:6 {u8, HasDrop, ()}])) as variant#3).0: HasDrop) = HasDrop; // scope 0 at $DIR/generator-tiny.rs:20:18: 20:25
42         StorageLive(_4);                 // scope 1 at $DIR/generator-tiny.rs:21:9: 24:10
43         goto -> bb2;                     // scope 1 at $DIR/generator-tiny.rs:21:9: 24:10
44     }
45
46     bb2: {
47         StorageLive(_6);                 // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
48         StorageLive(_7);                 // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
49         _7 = ();                         // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
50         _0 = std::ops::GeneratorState::<(), ()>::Yielded(move _7); // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
51         discriminant((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 25:6 {u8, HasDrop, ()}]))) = 3; // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
52         return;                          // scope 1 at $DIR/generator-tiny.rs:22:13: 22:18
53     }
54
55     bb3: {
56         StorageDead(_7);                 // scope 1 at $DIR/generator-tiny.rs:22:17: 22:18
57         StorageDead(_6);                 // scope 1 at $DIR/generator-tiny.rs:22:18: 22:19
58         StorageLive(_8);                 // scope 1 at $DIR/generator-tiny.rs:23:13: 23:21
59         _8 = const callee() -> bb4;      // scope 1 at $DIR/generator-tiny.rs:23:13: 23:21
60                                          // ty::Const
61                                          // + ty: fn() {callee}
62                                          // + val: Value(Scalar(<ZST>))
63                                          // mir::Constant
64                                          // + span: $DIR/generator-tiny.rs:23:13: 23:19
65                                          // + literal: Const { ty: fn() {callee}, val: Value(Scalar(<ZST>)) }
66     }
67
68     bb4: {
69         StorageDead(_8);                 // scope 1 at $DIR/generator-tiny.rs:23:21: 23:22
70         _5 = const ();                   // scope 1 at $DIR/generator-tiny.rs:21:14: 24:10
71                                          // ty::Const
72                                          // + ty: ()
73                                          // + val: Value(Scalar(<ZST>))
74                                          // mir::Constant
75                                          // + span: $DIR/generator-tiny.rs:21:14: 24:10
76                                          // + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
77         goto -> bb2;                     // scope 1 at $DIR/generator-tiny.rs:21:9: 24:10
78     }
79
80     bb5: {
81         StorageLive(_4);                 // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
82         StorageLive(_6);                 // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
83         StorageLive(_7);                 // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
84         _6 = move _2;                    // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
85         goto -> bb3;                     // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
86     }
87
88     bb6: {
89         unreachable;                     // scope 0 at $DIR/generator-tiny.rs:19:16: 25:6
90     }
91 }