|
2 | 2 | + // MIR for `main` after ConstProp
|
3 | 3 |
|
4 | 4 | fn main() -> () {
|
5 |
| - let mut _0: (); // return place in scope 0 at $DIR/invalid_constant.rs:15:11: 15:11 |
6 |
| - let _1: std::option::Option<()>; // in scope 0 at $DIR/invalid_constant.rs:16:5: 16:12 |
7 |
| - let mut _2: std::option::Option<std::option::Option<()>>; // in scope 0 at $DIR/invalid_constant.rs:16:7: 16:11 |
8 |
| - let _3: main::Union; // in scope 0 at $DIR/invalid_constant.rs:22:9: 22:22 |
| 5 | + let mut _0: (); // return place in scope 0 at $DIR/invalid_constant.rs:13:11: 13:11 |
| 6 | + let _1: main::InvalidChar; // in scope 0 at $DIR/invalid_constant.rs:19:9: 19:22 |
| 7 | + let mut _3: main::InvalidTag; // in scope 0 at $DIR/invalid_constant.rs:26:25: 26:46 |
| 8 | + let mut _5: main::NoVariants; // in scope 0 at $DIR/invalid_constant.rs:33:35: 33:56 |
9 | 9 | scope 1 {
|
10 |
| - debug _invalid_char => _3; // in scope 1 at $DIR/invalid_constant.rs:22:9: 22:22 |
11 |
| - } |
12 |
| - scope 2 (inlined f) { // at $DIR/invalid_constant.rs:16:5: 16:12 |
13 |
| - debug x => _2; // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
14 |
| - let mut _4: isize; // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
15 |
| - let _5: std::option::Option<()>; // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
16 |
| - scope 3 { |
17 |
| - debug y => _5; // in scope 3 at $DIR/invalid_constant.rs:16:5: 16:12 |
| 10 | + debug _invalid_char => _1; // in scope 1 at $DIR/invalid_constant.rs:19:9: 19:22 |
| 11 | + let _2: [main::InvalidTag; 1]; // in scope 1 at $DIR/invalid_constant.rs:26:9: 26:21 |
| 12 | + scope 2 { |
| 13 | + debug _invalid_tag => _2; // in scope 2 at $DIR/invalid_constant.rs:26:9: 26:21 |
| 14 | + let _4: [main::NoVariants; 1]; // in scope 2 at $DIR/invalid_constant.rs:33:9: 33:31 |
| 15 | + scope 3 { |
| 16 | + debug _enum_without_variants => _4; // in scope 3 at $DIR/invalid_constant.rs:33:9: 33:31 |
| 17 | + } |
18 | 18 | }
|
19 | 19 | }
|
20 | 20 |
|
21 | 21 | bb0: {
|
22 |
| - discriminant(_2) = 0; // scope 0 at $DIR/invalid_constant.rs:16:7: 16:11 |
23 |
| -- _4 = discriminant(_2); // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
24 |
| -- switchInt(move _4) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
25 |
| -+ _4 = const 0_isize; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
26 |
| -+ switchInt(const 0_isize) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
27 |
| - } |
28 |
| - |
29 |
| - bb1: { |
30 |
| -- _3 = const { Union { int: 0x110001 } }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58 |
31 |
| -+ _3 = const main::Union { int: 1114113_u32, chr: {transmute(0x00110001): char} }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58 |
| 22 | + StorageLive(_1); // scope 0 at $DIR/invalid_constant.rs:19:9: 19:22 |
| 23 | +- _1 = const { InvalidChar { int: 0x110001 } }; // scope 0 at $DIR/invalid_constant.rs:19:25: 19:64 |
| 24 | ++ _1 = const InvalidChar { int: 1114113_u32, chr: {transmute(0x00110001): char} }; // scope 0 at $DIR/invalid_constant.rs:19:25: 19:64 |
32 | 25 | // ty::Const
|
33 |
| - // + ty: main::Union |
34 |
| -- // + val: Unevaluated(main::{constant#0}, [main::Union], None) |
| 26 | + // + ty: main::InvalidChar |
| 27 | +- // + val: Unevaluated(main::{constant#0}, [main::InvalidChar], None) |
35 | 28 | + // + val: Value(Scalar(0x00110001))
|
36 | 29 | // mir::Constant
|
37 |
| - // + span: $DIR/invalid_constant.rs:22:25: 22:58 |
38 |
| -- // + literal: Const { ty: main::Union, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:8 ~ invalid_constant[726d]::main::{constant#0}), const_param_did: None }, substs: [main::Union], promoted: None }) } |
39 |
| -+ // + literal: Const { ty: main::Union, val: Value(Scalar(0x00110001)) } |
40 |
| - nop; // scope 0 at $DIR/invalid_constant.rs:15:11: 23:2 |
41 |
| - return; // scope 0 at $DIR/invalid_constant.rs:23:2: 23:2 |
42 |
| - } |
43 |
| - |
44 |
| - bb2: { |
45 |
| -- _5 = ((_2 as Some).0: std::option::Option<()>); // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
46 |
| -- _1 = _5; // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12 |
47 |
| -+ _5 = const Scalar(0x02): Option::<()>; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
| 30 | + // + span: $DIR/invalid_constant.rs:19:25: 19:64 |
| 31 | +- // + literal: Const { ty: main::InvalidChar, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:7 ~ invalid_constant[726d]::main::{constant#0}), const_param_did: None }, substs: [main::InvalidChar], promoted: None }) } |
| 32 | ++ // + literal: Const { ty: main::InvalidChar, val: Value(Scalar(0x00110001)) } |
| 33 | + StorageLive(_2); // scope 1 at $DIR/invalid_constant.rs:26:9: 26:21 |
| 34 | + StorageLive(_3); // scope 1 at $DIR/invalid_constant.rs:26:25: 26:46 |
| 35 | + (_3.0: u32) = const 4_u32; // scope 1 at $DIR/invalid_constant.rs:26:25: 26:46 |
| 36 | +- _2 = [move _3]; // scope 1 at $DIR/invalid_constant.rs:26:24: 26:47 |
| 37 | ++ _2 = [const InvalidTag { int: 4_u32, e: Scalar(0x00000004): E }]; // scope 1 at $DIR/invalid_constant.rs:26:24: 26:47 |
48 | 38 | + // ty::Const
|
49 |
| -+ // + ty: std::option::Option<()> |
50 |
| -+ // + val: Value(Scalar(0x02)) |
| 39 | ++ // + ty: main::InvalidTag |
| 40 | ++ // + val: Value(Scalar(0x00000004)) |
51 | 41 | + // mir::Constant
|
52 |
| -+ // + span: $DIR/invalid_constant.rs:16:5: 16:12 |
53 |
| -+ // + literal: Const { ty: std::option::Option<()>, val: Value(Scalar(0x02)) } |
54 |
| -+ _1 = const Scalar(0x02): Option::<()>; // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12 |
| 42 | ++ // + span: $DIR/invalid_constant.rs:26:24: 26:47 |
| 43 | ++ // + literal: Const { ty: main::InvalidTag, val: Value(Scalar(0x00000004)) } |
| 44 | + StorageDead(_3); // scope 1 at $DIR/invalid_constant.rs:26:46: 26:47 |
| 45 | + StorageLive(_4); // scope 2 at $DIR/invalid_constant.rs:33:9: 33:31 |
| 46 | + StorageLive(_5); // scope 2 at $DIR/invalid_constant.rs:33:35: 33:56 |
| 47 | + (_5.0: u32) = const 0_u32; // scope 2 at $DIR/invalid_constant.rs:33:35: 33:56 |
| 48 | +- _4 = [move _5]; // scope 2 at $DIR/invalid_constant.rs:33:34: 33:57 |
| 49 | ++ _4 = [const NoVariants { int: 0_u32, empty: Scalar(<ZST>): Empty }]; // scope 2 at $DIR/invalid_constant.rs:33:34: 33:57 |
55 | 50 | + // ty::Const
|
56 |
| -+ // + ty: std::option::Option<()> |
57 |
| -+ // + val: Value(Scalar(0x02)) |
| 51 | ++ // + ty: main::NoVariants |
| 52 | ++ // + val: Value(Scalar(0x00000000)) |
58 | 53 | + // mir::Constant
|
59 |
| -+ // + span: $DIR/invalid_constant.rs:16:5: 16:12 |
60 |
| -+ // + literal: Const { ty: std::option::Option<()>, val: Value(Scalar(0x02)) } |
61 |
| - goto -> bb1; // scope 0 at $DIR/invalid_constant.rs:10:20: 10:21 |
62 |
| - } |
63 |
| - |
64 |
| - bb3: { |
65 |
| - discriminant(_1) = 0; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12 |
66 |
| - goto -> bb1; // scope 0 at $DIR/invalid_constant.rs:9:17: 9:21 |
| 54 | ++ // + span: $DIR/invalid_constant.rs:33:34: 33:57 |
| 55 | ++ // + literal: Const { ty: main::NoVariants, val: Value(Scalar(0x00000000)) } |
| 56 | + StorageDead(_5); // scope 2 at $DIR/invalid_constant.rs:33:56: 33:57 |
| 57 | + nop; // scope 0 at $DIR/invalid_constant.rs:13:11: 34:2 |
| 58 | + StorageDead(_4); // scope 2 at $DIR/invalid_constant.rs:34:1: 34:2 |
| 59 | + StorageDead(_2); // scope 1 at $DIR/invalid_constant.rs:34:1: 34:2 |
| 60 | + StorageDead(_1); // scope 0 at $DIR/invalid_constant.rs:34:1: 34:2 |
| 61 | + return; // scope 0 at $DIR/invalid_constant.rs:34:2: 34:2 |
67 | 62 | }
|
68 | 63 | }
|
69 | 64 |
|
0 commit comments