summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/inline/issue_106141.outer.Inline.diff
blob: 18df6f9af5faebfaea73770c293887c32983b423 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
- // MIR for `outer` before Inline
+ // MIR for `outer` after Inline
  
  fn outer() -> usize {
      let mut _0: usize;                   // return place in scope 0 at $DIR/issue_106141.rs:+0:19: +0:24
+     scope 1 (inlined inner) {            // at $DIR/issue_106141.rs:3:5: 3:12
+         let mut _1: bool;                // in scope 1 at $DIR/issue_106141.rs:14:8: 14:21
+         let mut _2: bool;                // in scope 1 at $DIR/issue_106141.rs:14:8: 14:21
+         let mut _3: &[bool; 1];          // in scope 1 at $DIR/issue_106141.rs:12:18: 12:25
+         scope 2 {
+             debug buffer => _3;          // in scope 2 at $DIR/issue_106141.rs:12:9: 12:15
+             scope 3 {
+                 debug index => _0;       // in scope 3 at $DIR/issue_106141.rs:13:9: 13:14
+             }
+         }
+     }
  
      bb0: {
-         _0 = inner() -> bb1;             // scope 0 at $DIR/issue_106141.rs:+1:5: +1:12
+         StorageLive(_3);                 // scope 0 at $DIR/issue_106141.rs:+1:5: +1:12
+         _3 = const _;                    // scope 1 at $DIR/issue_106141.rs:12:18: 12:25
                                           // mir::Constant
-                                          // + span: $DIR/issue_106141.rs:3:5: 3:10
-                                          // + literal: Const { ty: fn() -> usize {inner}, val: Value(<ZST>) }
+                                          // + span: $DIR/issue_106141.rs:12:18: 12:25
+                                          // + literal: Const { ty: &[bool; 1], val: Unevaluated(inner, [], Some(promoted[0])) }
+         _0 = index() -> bb1;             // scope 2 at $DIR/issue_106141.rs:13:17: 13:24
+                                          // mir::Constant
+                                          // + span: $DIR/issue_106141.rs:13:17: 13:22
+                                          // + literal: Const { ty: fn() -> usize {index}, val: Value(<ZST>) }
      }
  
      bb1: {
+         StorageLive(_1);                 // scope 3 at $DIR/issue_106141.rs:14:8: 14:21
+         _2 = Lt(_0, const 1_usize);      // scope 3 at $DIR/issue_106141.rs:14:8: 14:21
+         assert(move _2, "index out of bounds: the length is {} but the index is {}", const 1_usize, _0) -> bb2; // scope 3 at $DIR/issue_106141.rs:14:8: 14:21
+     }
+ 
+     bb2: {
+         _1 = (*_3)[_0];                  // scope 3 at $DIR/issue_106141.rs:14:8: 14:21
+         switchInt(move _1) -> [0: bb3, otherwise: bb4]; // scope 3 at $DIR/issue_106141.rs:14:8: 14:21
+     }
+ 
+     bb3: {
+         _0 = const 0_usize;              // scope 3 at $DIR/issue_106141.rs:17:9: 17:10
+         goto -> bb4;                     // scope 3 at $DIR/issue_106141.rs:14:5: 18:6
+     }
+ 
+     bb4: {
+         StorageDead(_1);                 // scope 3 at $DIR/issue_106141.rs:18:5: 18:6
+         StorageDead(_3);                 // scope 0 at $DIR/issue_106141.rs:+1:5: +1:12
          return;                          // scope 0 at $DIR/issue_106141.rs:+2:2: +2:2
      }
  }