]> git.lizzy.rs Git - rust.git/blob - tests/mir-opt/inline/inline_diverging.h.Inline.diff
Rollup merge of #106591 - Ezrashaw:attempted-integer-identifer, r=Estebank
[rust.git] / tests / mir-opt / inline / inline_diverging.h.Inline.diff
1 - // MIR for `h` before Inline
2 + // MIR for `h` after Inline
3   
4   fn h() -> () {
5       let mut _0: ();                      // return place in scope 0 at $DIR/inline_diverging.rs:+0:12: +0:12
6       let _1: (!, !);                      // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
7 +     let mut _2: fn() -> ! {sleep};       // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
8 +     scope 1 (inlined call_twice::<!, fn() -> ! {sleep}>) { // at $DIR/inline_diverging.rs:22:5: 22:22
9 +         debug f => _2;                   // in scope 1 at $DIR/inline_diverging.rs:26:36: 26:37
10 +         let _3: !;                       // in scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
11 +         let mut _4: &fn() -> ! {sleep};  // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
12 +         let mut _5: ();                  // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
13 +         let mut _6: &fn() -> ! {sleep};  // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:14
14 +         let mut _7: ();                  // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:16
15 +         let mut _8: !;                   // in scope 1 at $DIR/inline_diverging.rs:29:6: 29:7
16 +         let mut _9: !;                   // in scope 1 at $DIR/inline_diverging.rs:29:9: 29:10
17 +         scope 2 {
18 +             debug a => _3;               // in scope 2 at $DIR/inline_diverging.rs:27:9: 27:10
19 +             scope 3 {
20 +                 debug b => _9;           // in scope 3 at $DIR/inline_diverging.rs:28:9: 28:10
21 +             }
22 +         }
23 +         scope 4 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline_diverging.rs:27:13: 27:16
24 +         }
25 +     }
26   
27       bb0: {
28           StorageLive(_1);                 // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
29 -         _1 = call_twice::<!, fn() -> ! {sleep}>(sleep); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
30 +         StorageLive(_2);                 // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
31 +         _2 = sleep;                      // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
32                                            // mir::Constant
33 -                                          // + span: $DIR/inline_diverging.rs:22:5: 22:15
34 -                                          // + literal: Const { ty: fn(fn() -> ! {sleep}) -> (!, !) {call_twice::<!, fn() -> ! {sleep}>}, val: Value(<ZST>) }
35 -                                          // mir::Constant
36                                            // + span: $DIR/inline_diverging.rs:22:16: 22:21
37                                            // + literal: Const { ty: fn() -> ! {sleep}, val: Value(<ZST>) }
38 +         StorageLive(_9);                 // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
39 +         StorageLive(_3);                 // scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
40 +         StorageLive(_4);                 // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
41 +         _4 = &_2;                        // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
42 +         StorageLive(_5);                 // scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
43 +         _3 = move (*_4)() -> [return: bb6, unwind: bb4]; // scope 4 at $SRC_DIR/core/src/ops/function.rs:LL:COL
44 +     }
45
46 +     bb1: {
47 +         StorageDead(_7);                 // scope 2 at $DIR/inline_diverging.rs:28:15: 28:16
48 +         StorageDead(_6);                 // scope 2 at $DIR/inline_diverging.rs:28:15: 28:16
49 +         StorageLive(_8);                 // scope 3 at $DIR/inline_diverging.rs:29:6: 29:7
50 +         _8 = move _3;                    // scope 3 at $DIR/inline_diverging.rs:29:6: 29:7
51 +         Deinit(_1);                      // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
52 +         (_1.0: !) = move _8;             // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
53 +         (_1.1: !) = move _9;             // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
54 +         StorageDead(_8);                 // scope 3 at $DIR/inline_diverging.rs:29:10: 29:11
55 +         StorageDead(_3);                 // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
56 +         drop(_2) -> bb2;                 // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
57 +     }
58
59 +     bb2: {
60 +         unreachable;                     // scope 0 at $DIR/inline_diverging.rs:30:2: 30:2
61 +     }
62
63 +     bb3 (cleanup): {
64 +         drop(_3) -> bb4;                 // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
65 +     }
66
67 +     bb4 (cleanup): {
68 +         drop(_2) -> bb5;                 // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
69 +     }
70
71 +     bb5 (cleanup): {
72 +         resume;                          // scope 1 at $DIR/inline_diverging.rs:26:1: 30:2
73 +     }
74
75 +     bb6: {
76 +         StorageDead(_5);                 // scope 1 at $DIR/inline_diverging.rs:27:15: 27:16
77 +         StorageDead(_4);                 // scope 1 at $DIR/inline_diverging.rs:27:15: 27:16
78 +         StorageLive(_6);                 // scope 2 at $DIR/inline_diverging.rs:28:13: 28:14
79 +         _6 = &_2;                        // scope 2 at $DIR/inline_diverging.rs:28:13: 28:14
80 +         StorageLive(_7);                 // scope 2 at $DIR/inline_diverging.rs:28:13: 28:16
81 +         _9 = <fn() -> ! {sleep} as Fn<()>>::call(move _6, move _7) -> [return: bb1, unwind: bb3]; // scope 2 at $DIR/inline_diverging.rs:28:13: 28:16
82 +                                          // mir::Constant
83 +                                          // + span: $DIR/inline_diverging.rs:28:13: 28:14
84 +                                          // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() -> ! {sleep}, ()) -> <fn() -> ! {sleep} as FnOnce<()>>::Output {<fn() -> ! {sleep} as Fn<()>>::call}, val: Value(<ZST>) }
85       }
86   }
87