]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir
New upstream version 1.51.0+dfsg1
[rustc.git] / src / test / mir-opt / nll / region_subtyping_basic.main.nll.0.64bit.mir
CommitLineData
ba9703b0
XL
1// MIR for `main` 0 nll
2
3| Free Region Mapping
4| '_#0r | Global | ['_#0r, '_#1r]
5| '_#1r | Local | ['_#1r]
6|
7| Inferred Region Values
5869c6ff
XL
8| '_#0r | U0 | {bb0[0..=8], bb1[0..=7], bb2[0..=3], bb3[0..=1], bb4[0..=3], bb5[0..=2], bb6[0..=5], bb7[0], '_#0r, '_#1r}
9| '_#1r | U0 | {bb0[0..=8], bb1[0..=7], bb2[0..=3], bb3[0..=1], bb4[0..=3], bb5[0..=2], bb6[0..=5], bb7[0], '_#1r}
f9f354fc 10| '_#2r | U0 | {}
5869c6ff
XL
11| '_#3r | U0 | {bb1[0..=7], bb2[0..=2]}
12| '_#4r | U0 | {bb1[1..=7], bb2[0..=2]}
13| '_#5r | U0 | {bb1[4..=7], bb2[0..=2]}
ba9703b0
XL
14|
15| Inference Constraints
5869c6ff
XL
16| '_#0r live at {bb0[0..=8], bb1[0..=7], bb2[0..=3], bb3[0..=1], bb4[0..=3], bb5[0..=2], bb6[0..=5], bb7[0]}
17| '_#1r live at {bb0[0..=8], bb1[0..=7], bb2[0..=3], bb3[0..=1], bb4[0..=3], bb5[0..=2], bb6[0..=5], bb7[0]}
29967ef6
XL
18| '_#3r live at {bb1[0]}
19| '_#4r live at {bb1[1..=3]}
5869c6ff 20| '_#5r live at {bb1[4..=7], bb2[0..=2]}
29967ef6
XL
21| '_#3r: '_#4r due to Assignment at Single(bb1[0])
22| '_#4r: '_#5r due to Assignment at Single(bb1[3])
ba9703b0
XL
23|
24fn main() -> () {
f9f354fc
XL
25 let mut _0: (); // return place in scope 0 at $DIR/region-subtyping-basic.rs:16:11: 16:11
26 let mut _1: [usize; Const { ty: usize, val: Value(Scalar(0x0000000000000003)) }]; // in scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
27 let _3: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:16: 18:17
28 let mut _4: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
29 let mut _5: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
30 let mut _7: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:20:8: 20:12
31 let _8: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:21:9: 21:18
32 let mut _9: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:21:15: 21:17
33 let _10: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:23:9: 23:18
ba9703b0 34 scope 1 {
f9f354fc
XL
35 debug v => _1; // in scope 1 at $DIR/region-subtyping-basic.rs:17:9: 17:14
36 let _2: &'_#4r usize; // in scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
ba9703b0 37 scope 2 {
f9f354fc
XL
38 debug p => _2; // in scope 2 at $DIR/region-subtyping-basic.rs:18:9: 18:10
39 let _6: &'_#5r usize; // in scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
ba9703b0 40 scope 3 {
f9f354fc 41 debug q => _6; // in scope 3 at $DIR/region-subtyping-basic.rs:19:9: 19:10
ba9703b0
XL
42 }
43 }
44 }
45
46 bb0: {
f9f354fc
XL
47 StorageLive(_1); // bb0[0]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
48 _1 = [const Const(Value(Scalar(0x0000000000000001)): usize), const Const(Value(Scalar(0x0000000000000002)): usize), const Const(Value(Scalar(0x0000000000000003)): usize)]; // bb0[1]: scope 0 at $DIR/region-subtyping-basic.rs:17:17: 17:26
f9f354fc
XL
49 FakeRead(ForLet, _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
50 StorageLive(_2); // bb0[3]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
51 StorageLive(_3); // bb0[4]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
52 _3 = const Const(Value(Scalar(0x0000000000000000)): usize); // bb0[5]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
f9f354fc
XL
53 _4 = Len(_1); // bb0[6]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
54 _5 = Lt(_3, _4); // bb0[7]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
5869c6ff 55 assert(move _5, "index out of bounds: the length is {} but the index is {}", move _4, _3) -> [success: bb1, unwind: bb7]; // bb0[8]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
ba9703b0
XL
56 }
57
29967ef6
XL
58 bb1: {
59 _2 = &'_#3r _1[_3]; // bb1[0]: scope 1 at $DIR/region-subtyping-basic.rs:18:13: 18:18
60 FakeRead(ForLet, _2); // bb1[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
61 StorageLive(_6); // bb1[2]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
62 _6 = _2; // bb1[3]: scope 2 at $DIR/region-subtyping-basic.rs:19:13: 19:14
63 FakeRead(ForLet, _6); // bb1[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
64 StorageLive(_7); // bb1[5]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
65 _7 = const Const(Value(Scalar(0x01)): bool); // bb1[6]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
5869c6ff 66 switchInt(move _7) -> [Const(Value(Scalar(0x00)): bool): bb3, otherwise: bb2]; // bb1[7]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
ba9703b0
XL
67 }
68
69 bb2: {
5869c6ff
XL
70 StorageLive(_8); // bb2[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
71 StorageLive(_9); // bb2[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
72 _9 = (*_6); // bb2[2]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
73 _8 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(move _9) -> [return: bb4, unwind: bb7]; // bb2[3]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
74 // mir::Constant
75 // + span: $DIR/region-subtyping-basic.rs:21:9: 21:14
76 // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
ba9703b0
XL
77 }
78
79 bb3: {
29967ef6 80 StorageLive(_10); // bb3[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
5869c6ff 81 _10 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(const Const(Value(Scalar(0x0000000000000016)): usize)) -> [return: bb5, unwind: bb7]; // bb3[1]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
ba9703b0 82 // mir::Constant
f9f354fc 83 // + span: $DIR/region-subtyping-basic.rs:23:9: 23:14
ba9703b0 84 // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
ba9703b0
XL
85 }
86
29967ef6 87 bb4: {
5869c6ff
XL
88 StorageDead(_9); // bb4[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:17: 21:18
89 StorageDead(_8); // bb4[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:18: 21:19
90 _0 = const Const(Value(Scalar(<ZST>)): ()); // bb4[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:13: 22:6
91 goto -> bb6; // bb4[3]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
ba9703b0
XL
92 }
93
29967ef6 94 bb5: {
5869c6ff
XL
95 StorageDead(_10); // bb5[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:18: 23:19
96 _0 = const Const(Value(Scalar(<ZST>)): ()); // bb5[1]: scope 3 at $DIR/region-subtyping-basic.rs:22:12: 24:6
97 goto -> bb6; // bb5[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
29967ef6
XL
98 }
99
ba9703b0 100 bb6: {
5869c6ff
XL
101 StorageDead(_7); // bb6[0]: scope 3 at $DIR/region-subtyping-basic.rs:24:5: 24:6
102 StorageDead(_6); // bb6[1]: scope 2 at $DIR/region-subtyping-basic.rs:25:1: 25:2
103 StorageDead(_3); // bb6[2]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
104 StorageDead(_2); // bb6[3]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
105 StorageDead(_1); // bb6[4]: scope 0 at $DIR/region-subtyping-basic.rs:25:1: 25:2
106 return; // bb6[5]: scope 0 at $DIR/region-subtyping-basic.rs:25:2: 25:2
ba9703b0
XL
107 }
108
5869c6ff
XL
109 bb7 (cleanup): {
110 resume; // bb7[0]: scope 0 at $DIR/region-subtyping-basic.rs:16:1: 25:2
ba9703b0
XL
111 }
112}