1 - // MIR for `main` before ConstProp
2 + // MIR for `main` after ConstProp
5 let mut _0: (); // return place in scope 0 at $DIR/indirect.rs:4:11: 4:11
6 let _1: u8; // in scope 0 at $DIR/indirect.rs:5:9: 5:10
7 let mut _2: u8; // in scope 0 at $DIR/indirect.rs:5:13: 5:25
8 let mut _3: (u8, bool); // in scope 0 at $DIR/indirect.rs:5:13: 5:29
10 debug x => _1; // in scope 1 at $DIR/indirect.rs:5:9: 5:10
14 StorageLive(_1); // scope 0 at $DIR/indirect.rs:5:9: 5:10
15 StorageLive(_2); // scope 0 at $DIR/indirect.rs:5:13: 5:25
16 - _2 = const 2_u32 as u8 (Misc); // scope 0 at $DIR/indirect.rs:5:13: 5:25
17 + _2 = const 2_u8; // scope 0 at $DIR/indirect.rs:5:13: 5:25
20 - // + val: Value(Scalar(0x00000002))
22 + // + val: Value(Scalar(0x02))
24 - // + span: $DIR/indirect.rs:5:14: 5:18
25 - // + literal: Const { ty: u32, val: Value(Scalar(0x00000002)) }
26 - _3 = CheckedAdd(_2, const 1_u8); // scope 0 at $DIR/indirect.rs:5:13: 5:29
27 + // + span: $DIR/indirect.rs:5:13: 5:25
28 + // + literal: Const { ty: u8, val: Value(Scalar(0x02)) }
29 + _3 = (const 3_u8, const false); // scope 0 at $DIR/indirect.rs:5:13: 5:29
32 - // + val: Value(Scalar(0x01))
33 + // + val: Value(Scalar(0x03))
35 - // + span: $DIR/indirect.rs:5:28: 5:29
36 - // + literal: Const { ty: u8, val: Value(Scalar(0x01)) }
37 - assert(!move (_3.1: bool), "attempt to compute `{} + {}` which would overflow", move _2, const 1_u8) -> bb1; // scope 0 at $DIR/indirect.rs:5:13: 5:29
38 + // + span: $DIR/indirect.rs:5:13: 5:29
39 + // + literal: Const { ty: u8, val: Value(Scalar(0x03)) }
42 + // + val: Value(Scalar(0x00))
44 + // + span: $DIR/indirect.rs:5:13: 5:29
45 + // + literal: Const { ty: bool, val: Value(Scalar(0x00)) }
46 + assert(!const false, "attempt to compute `{} + {}` which would overflow", move _2, const 1_u8) -> bb1; // scope 0 at $DIR/indirect.rs:5:13: 5:29
49 + // + val: Value(Scalar(0x00))
51 + // + span: $DIR/indirect.rs:5:13: 5:29
52 + // + literal: Const { ty: bool, val: Value(Scalar(0x00)) }
55 // + val: Value(Scalar(0x01))
57 // + span: $DIR/indirect.rs:5:28: 5:29
58 // + literal: Const { ty: u8, val: Value(Scalar(0x01)) }
62 - _1 = move (_3.0: u8); // scope 0 at $DIR/indirect.rs:5:13: 5:29
63 + _1 = const 3_u8; // scope 0 at $DIR/indirect.rs:5:13: 5:29
66 + // + val: Value(Scalar(0x03))
68 + // + span: $DIR/indirect.rs:5:13: 5:29
69 + // + literal: Const { ty: u8, val: Value(Scalar(0x03)) }
70 StorageDead(_2); // scope 0 at $DIR/indirect.rs:5:28: 5:29
71 _0 = const (); // scope 0 at $DIR/indirect.rs:4:11: 6:2
74 // + val: Value(Scalar(<ZST>))
76 // + span: $DIR/indirect.rs:4:11: 6:2
77 // + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
78 StorageDead(_1); // scope 0 at $DIR/indirect.rs:6:1: 6:2
79 return; // scope 0 at $DIR/indirect.rs:6:2: 6:2