Skip to content

Commit 2a010dd

Browse files
committed
./x.py test --bless
1 parent 79d853e commit 2a010dd

6 files changed

+184
-36
lines changed

src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@
22
+ // MIR for `inlined_no_sanitize` after Inline
33

44
fn inlined_no_sanitize() -> () {
5-
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:24:37: 24:37
6-
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:25:5: 25:18
7-
+ scope 1 (inlined no_sanitize) { // at $DIR/inline-compatibility.rs:25:5: 25:18
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:23:37: 23:37
6+
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:24:5: 24:18
7+
+ scope 1 (inlined no_sanitize) { // at $DIR/inline-compatibility.rs:24:5: 24:18
88
+ }
99

1010
bb0: {
11-
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:25:5: 25:18
12-
- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:25:5: 25:18
11+
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:24:5: 24:18
12+
- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:24:5: 24:18
1313
- // mir::Constant
14-
- // + span: $DIR/inline-compatibility.rs:25:5: 25:16
14+
- // + span: $DIR/inline-compatibility.rs:24:5: 24:16
1515
- // + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(Scalar(<ZST>)) }
1616
- }
1717
-
1818
- bb1: {
19-
+ _1 = const (); // scope 1 at $DIR/inline-compatibility.rs:25:5: 25:18
20-
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:25:18: 25:19
21-
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:24:37: 26:2
22-
return; // scope 0 at $DIR/inline-compatibility.rs:26:2: 26:2
19+
+ _1 = const (); // scope 1 at $DIR/inline-compatibility.rs:24:5: 24:18
20+
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:24:18: 24:19
21+
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:23:37: 25:2
22+
return; // scope 0 at $DIR/inline-compatibility.rs:25:2: 25:2
2323
}
2424
}
2525

src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@
22
+ // MIR for `inlined_target_feature` after Inline
33

44
fn inlined_target_feature() -> () {
5-
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:13:40: 13:40
6-
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:14:5: 14:21
7-
+ scope 1 (inlined target_feature) { // at $DIR/inline-compatibility.rs:14:5: 14:21
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:12:40: 12:40
6+
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:13:5: 13:21
7+
+ scope 1 (inlined target_feature) { // at $DIR/inline-compatibility.rs:13:5: 13:21
88
+ }
99

1010
bb0: {
11-
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:14:5: 14:21
12-
- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:14:5: 14:21
11+
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:13:5: 13:21
12+
- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:13:5: 13:21
1313
- // mir::Constant
14-
- // + span: $DIR/inline-compatibility.rs:14:5: 14:19
14+
- // + span: $DIR/inline-compatibility.rs:13:5: 13:19
1515
- // + literal: Const { ty: unsafe fn() {target_feature}, val: Value(Scalar(<ZST>)) }
1616
- }
1717
-
1818
- bb1: {
19-
+ _1 = const (); // scope 1 at $DIR/inline-compatibility.rs:14:5: 14:21
20-
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:14:21: 14:22
21-
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:13:40: 15:2
22-
return; // scope 0 at $DIR/inline-compatibility.rs:15:2: 15:2
19+
+ _1 = const (); // scope 1 at $DIR/inline-compatibility.rs:13:5: 13:21
20+
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:13:21: 13:22
21+
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:12:40: 14:2
22+
return; // scope 0 at $DIR/inline-compatibility.rs:14:2: 14:2
2323
}
2424
}
2525

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
- // MIR for `not_inlined_c_variadic` before Inline
2+
+ // MIR for `not_inlined_c_variadic` after Inline
3+
4+
fn not_inlined_c_variadic() -> () {
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:41:40: 41:40
6+
let _1: u32; // in scope 0 at $DIR/inline-compatibility.rs:42:9: 42:10
7+
scope 1 {
8+
debug s => _1; // in scope 1 at $DIR/inline-compatibility.rs:42:9: 42:10
9+
}
10+
11+
bb0: {
12+
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:42:9: 42:10
13+
_1 = sum(const 4_u32, const 4_u32, const 30_u32, const 200_u32, const 1000_u32) -> bb1; // scope 0 at $DIR/inline-compatibility.rs:42:13: 42:52
14+
// mir::Constant
15+
// + span: $DIR/inline-compatibility.rs:42:13: 42:16
16+
// + literal: Const { ty: unsafe extern "C" fn(u32, ...) -> u32 {sum}, val: Value(Scalar(<ZST>)) }
17+
}
18+
19+
bb1: {
20+
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:41:40: 43:2
21+
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:43:1: 43:2
22+
return; // scope 0 at $DIR/inline-compatibility.rs:43:2: 43:2
23+
}
24+
}
25+

src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
+ // MIR for `not_inlined_no_sanitize` after Inline
33

44
fn not_inlined_no_sanitize() -> () {
5-
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:29:41: 29:41
6-
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:30:5: 30:18
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:28:41: 28:41
6+
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:29:5: 29:18
77

88
bb0: {
9-
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:30:5: 30:18
10-
_1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:30:5: 30:18
9+
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:29:5: 29:18
10+
_1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:29:5: 29:18
1111
// mir::Constant
12-
// + span: $DIR/inline-compatibility.rs:30:5: 30:16
12+
// + span: $DIR/inline-compatibility.rs:29:5: 29:16
1313
// + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(Scalar(<ZST>)) }
1414
}
1515

1616
bb1: {
17-
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:30:18: 30:19
18-
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:29:41: 31:2
19-
return; // scope 0 at $DIR/inline-compatibility.rs:31:2: 31:2
17+
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:29:18: 29:19
18+
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:28:41: 30:2
19+
return; // scope 0 at $DIR/inline-compatibility.rs:30:2: 30:2
2020
}
2121
}
2222

src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
+ // MIR for `not_inlined_target_feature` after Inline
33

44
fn not_inlined_target_feature() -> () {
5-
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:18:44: 18:44
6-
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:19:5: 19:21
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:17:44: 17:44
6+
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:18:5: 18:21
77

88
bb0: {
9-
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:19:5: 19:21
10-
_1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:19:5: 19:21
9+
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:18:5: 18:21
10+
_1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:18:5: 18:21
1111
// mir::Constant
12-
// + span: $DIR/inline-compatibility.rs:19:5: 19:19
12+
// + span: $DIR/inline-compatibility.rs:18:5: 18:19
1313
// + literal: Const { ty: unsafe fn() {target_feature}, val: Value(Scalar(<ZST>)) }
1414
}
1515

1616
bb1: {
17-
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:19:21: 19:22
18-
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:18:44: 20:2
19-
return; // scope 0 at $DIR/inline-compatibility.rs:20:2: 20:2
17+
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:18:21: 18:22
18+
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:17:44: 19:2
19+
return; // scope 0 at $DIR/inline-compatibility.rs:19:2: 19:2
2020
}
2121
}
2222

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
- // MIR for `main` before Inline
2+
+ // MIR for `main` after Inline
3+
4+
fn main() -> () {
5+
let mut _0: (); // return place in scope 0 at $DIR/inline-generator.rs:8:11: 8:11
6+
let _1: std::ops::GeneratorState<<impl std::ops::Generator<bool> as std::ops::Generator<bool>>::Yield, <impl std::ops::Generator<bool> as std::ops::Generator<bool>>::Return>; // in scope 0 at $DIR/inline-generator.rs:9:9: 9:11
7+
let mut _2: std::pin::Pin<&mut impl std::ops::Generator<bool>>; // in scope 0 at $DIR/inline-generator.rs:9:14: 9:32
8+
let mut _3: &mut impl std::ops::Generator<bool>; // in scope 0 at $DIR/inline-generator.rs:9:23: 9:31
9+
let mut _4: impl std::ops::Generator<bool>; // in scope 0 at $DIR/inline-generator.rs:9:28: 9:31
10+
+ let mut _7: bool; // in scope 0 at $DIR/inline-generator.rs:9:14: 9:46
11+
scope 1 {
12+
debug _r => _1; // in scope 1 at $DIR/inline-generator.rs:9:9: 9:11
13+
}
14+
+ scope 2 (inlined g) { // at $DIR/inline-generator.rs:9:28: 9:31
15+
+ }
16+
+ scope 3 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]>::new) { // at $DIR/inline-generator.rs:9:14: 9:32
17+
+ debug pointer => _3; // in scope 3 at $DIR/inline-generator.rs:9:14: 9:32
18+
+ let mut _5: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]; // in scope 3 at $DIR/inline-generator.rs:9:14: 9:32
19+
+ scope 4 {
20+
+ scope 5 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]>::new_unchecked) { // at $DIR/inline-generator.rs:9:14: 9:32
21+
+ debug pointer => _5; // in scope 5 at $DIR/inline-generator.rs:9:14: 9:32
22+
+ let mut _6: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]; // in scope 5 at $DIR/inline-generator.rs:9:14: 9:32
23+
+ }
24+
+ }
25+
+ }
26+
+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline-generator.rs:9:14: 9:46
27+
+ debug a => _8; // in scope 6 at $DIR/inline-generator.rs:9:14: 9:46
28+
+ let mut _8: bool; // in scope 6 at $DIR/inline-generator.rs:9:14: 9:46
29+
+ let mut _9: u32; // in scope 6 at $DIR/inline-generator.rs:9:14: 9:46
30+
+ }
31+
32+
bb0: {
33+
StorageLive(_1); // scope 0 at $DIR/inline-generator.rs:9:9: 9:11
34+
StorageLive(_2); // scope 0 at $DIR/inline-generator.rs:9:14: 9:32
35+
StorageLive(_3); // scope 0 at $DIR/inline-generator.rs:9:23: 9:31
36+
StorageLive(_4); // scope 0 at $DIR/inline-generator.rs:9:28: 9:31
37+
- _4 = g() -> bb1; // scope 0 at $DIR/inline-generator.rs:9:28: 9:31
38+
- // mir::Constant
39+
- // + span: $DIR/inline-generator.rs:9:28: 9:29
40+
- // + literal: Const { ty: fn() -> impl std::ops::Generator<bool> {g}, val: Value(Scalar(<ZST>)) }
41+
- }
42+
-
43+
- bb1: {
44+
+ discriminant(_4) = 0; // scope 2 at $DIR/inline-generator.rs:9:28: 9:31
45+
_3 = &mut _4; // scope 0 at $DIR/inline-generator.rs:9:23: 9:31
46+
- _2 = Pin::<&mut impl Generator<bool>>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:9:14: 9:32
47+
- // mir::Constant
48+
- // + span: $DIR/inline-generator.rs:9:14: 9:22
49+
- // + user_ty: UserType(0)
50+
- // + literal: Const { ty: fn(&mut impl std::ops::Generator<bool>) -> std::pin::Pin<&mut impl std::ops::Generator<bool>> {std::pin::Pin::<&mut impl std::ops::Generator<bool>>::new}, val: Value(Scalar(<ZST>)) }
51+
- }
52+
-
53+
- bb2: {
54+
+ StorageLive(_5); // scope 4 at $DIR/inline-generator.rs:9:14: 9:32
55+
+ _5 = move _3; // scope 4 at $DIR/inline-generator.rs:9:14: 9:32
56+
+ StorageLive(_6); // scope 5 at $DIR/inline-generator.rs:9:14: 9:32
57+
+ _6 = move _5; // scope 5 at $DIR/inline-generator.rs:9:14: 9:32
58+
+ (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]) = move _6; // scope 5 at $DIR/inline-generator.rs:9:14: 9:32
59+
+ StorageDead(_6); // scope 5 at $DIR/inline-generator.rs:9:14: 9:32
60+
+ StorageDead(_5); // scope 4 at $DIR/inline-generator.rs:9:14: 9:32
61+
StorageDead(_3); // scope 0 at $DIR/inline-generator.rs:9:31: 9:32
62+
- _1 = <impl Generator<bool> as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:9:14: 9:46
63+
- // mir::Constant
64+
- // + span: $DIR/inline-generator.rs:9:33: 9:39
65+
- // + literal: Const { ty: for<'r> fn(std::pin::Pin<&'r mut impl std::ops::Generator<bool>>, bool) -> std::ops::GeneratorState<<impl std::ops::Generator<bool> as std::ops::Generator<bool>>::Yield, <impl std::ops::Generator<bool> as std::ops::Generator<bool>>::Return> {<impl std::ops::Generator<bool> as std::ops::Generator<bool>>::resume}, val: Value(Scalar(<ZST>)) }
66+
+ StorageLive(_7); // scope 0 at $DIR/inline-generator.rs:9:14: 9:46
67+
+ _7 = const false; // scope 0 at $DIR/inline-generator.rs:9:14: 9:46
68+
+ _9 = discriminant((*(_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]))); // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
69+
+ switchInt(move _9) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
70+
}
71+
72+
- bb3: {
73+
+ bb1: {
74+
+ StorageDead(_7); // scope 0 at $DIR/inline-generator.rs:9:14: 9:46
75+
StorageDead(_2); // scope 0 at $DIR/inline-generator.rs:9:45: 9:46
76+
StorageDead(_4); // scope 0 at $DIR/inline-generator.rs:9:46: 9:47
77+
_0 = const (); // scope 0 at $DIR/inline-generator.rs:8:11: 10:2
78+
StorageDead(_1); // scope 0 at $DIR/inline-generator.rs:10:1: 10:2
79+
return; // scope 0 at $DIR/inline-generator.rs:10:2: 10:2
80+
}
81+
82+
- bb4 (cleanup): {
83+
+ bb2 (cleanup): {
84+
resume; // scope 0 at $DIR/inline-generator.rs:8:1: 10:2
85+
+ }
86+
+
87+
+ bb3: {
88+
+ _8 = move _7; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
89+
+ switchInt(_8) -> [false: bb4, otherwise: bb5]; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
90+
+ }
91+
+
92+
+ bb4: {
93+
+ ((_1 as Yielded).0: i32) = const 13_i32; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
94+
+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
95+
+ }
96+
+
97+
+ bb5: {
98+
+ ((_1 as Yielded).0: i32) = const 7_i32; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
99+
+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
100+
+ }
101+
+
102+
+ bb6: {
103+
+ discriminant(_1) = 0; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
104+
+ discriminant((*(_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]))) = 3; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
105+
+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:11: 15:39
106+
+ }
107+
+
108+
+ bb7: {
109+
+ ((_1 as Complete).0: bool) = move _7; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
110+
+ discriminant(_1) = 1; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
111+
+ discriminant((*(_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:41 {bool, i32}]))) = 1; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
112+
+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:41: 15:41
113+
+ }
114+
+
115+
+ bb8: {
116+
+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
117+
+ }
118+
+
119+
+ bb9: {
120+
+ unreachable; // scope 6 at $DIR/inline-generator.rs:9:14: 9:46
121+
}
122+
}
123+

0 commit comments

Comments
 (0)