Skip to content

Commit db9a2d2

Browse files
committed
bless tests
1 parent bea0a6d commit db9a2d2

7 files changed

+389
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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-into-box-place.rs:+0:11: +0:11
6+
let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
7+
let mut _2: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
8+
let mut _3: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
9+
let mut _4: *mut u8; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
10+
let mut _5: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
11+
let mut _6: (); // in scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
12+
let mut _7: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
13+
let mut _8: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
14+
+ let mut _9: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
15+
scope 1 {
16+
debug _x => _1; // in scope 1 at $DIR/inline-into-box-place.rs:+1:9: +1:11
17+
}
18+
scope 2 {
19+
}
20+
+ scope 3 (inlined Vec::<u32>::new) { // at $DIR/inline-into-box-place.rs:8:33: 8:43
21+
+ let mut _10: alloc::raw_vec::RawVec<u32>; // in scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
22+
+ }
23+
24+
bb0: {
25+
StorageLive(_1); // scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
26+
_2 = SizeOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
27+
_3 = AlignOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
28+
_4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
29+
// mir::Constant
30+
// + span: $DIR/inline-into-box-place.rs:8:29: 8:43
31+
// + literal: Const { ty: unsafe fn(usize, usize) -> *mut u8 {alloc::alloc::exchange_malloc}, val: Value(<ZST>) }
32+
}
33+
34+
bb1: {
35+
StorageLive(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
36+
_5 = ShallowInitBox(move _4, std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
37+
StorageLive(_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
38+
_7 = (((_5.0: std::ptr::Unique<std::vec::Vec<u32>>).0: std::ptr::NonNull<std::vec::Vec<u32>>).0: *const std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
39+
- (*_7) = Vec::<u32>::new() -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
40+
+ StorageLive(_9); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
41+
+ _9 = &mut (*_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
42+
+ StorageLive(_10); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
43+
+ _10 = const alloc::raw_vec::RawVec::<u32>::NEW; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
44+
// mir::Constant
45+
- // + span: $DIR/inline-into-box-place.rs:8:33: 8:41
46+
- // + user_ty: UserType(1)
47+
- // + literal: Const { ty: fn() -> Vec<u32> {Vec::<u32>::new}, val: Value(<ZST>) }
48+
- }
49+
-
50+
- bb2: {
51+
+ // + span: $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
52+
+ // + user_ty: UserType(0)
53+
+ // + literal: Const { ty: alloc::raw_vec::RawVec<u32>, val: Unevaluated(alloc::raw_vec::RawVec::<T>::NEW, [u32], ()) }
54+
+ Deinit((*_9)); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
55+
+ ((*_9).0: alloc::raw_vec::RawVec<u32>) = move _10; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
56+
+ ((*_9).1: usize) = const 0_usize; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
57+
+ StorageDead(_10); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
58+
+ StorageDead(_9); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
59+
StorageDead(_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
60+
_1 = move _5; // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
61+
StorageDead(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
62+
_0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:+0:11: +2:2
63+
- drop(_1) -> [return: bb3, unwind: bb5]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
64+
+ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
65+
}
66+
67+
- bb3: {
68+
+ bb2: {
69+
StorageDead(_1); // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
70+
return; // scope 0 at $DIR/inline-into-box-place.rs:+2:2: +2:2
71+
}
72+
73+
- bb4 (cleanup): {
74+
- StorageDead(_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
75+
- _6 = alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>(move (_5.0: std::ptr::Unique<std::vec::Vec<u32>>), move (_5.1: std::alloc::Global)) -> bb5; // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
76+
- // mir::Constant
77+
- // + span: $DIR/inline-into-box-place.rs:8:42: 8:43
78+
- // + literal: Const { ty: unsafe fn(Unique<Vec<u32>>, std::alloc::Global) {alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>}, val: Value(<ZST>) }
79+
- }
80+
-
81+
- bb5 (cleanup): {
82+
+ bb3 (cleanup): {
83+
resume; // scope 0 at $DIR/inline-into-box-place.rs:+0:1: +2:2
84+
}
85+
}
86+

src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff

+7-6
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,13 @@
4848
- bb2: {
4949
+ // + span: $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
5050
+ // + user_ty: UserType(0)
51-
+ // + literal: Const { ty: alloc::raw_vec::RawVec<u32>, val: Unevaluated(alloc::raw_vec::RawVec::<T>::NEW, [u32], None) }
52-
+ Deinit((*_8)); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
53-
+ ((*_8).0: alloc::raw_vec::RawVec<u32>) = move _9; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
54-
+ ((*_8).1: usize) = const 0_usize; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
55-
+ StorageDead(_9); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
56-
+ StorageDead(_8); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
51+
+ // + literal: Const { ty: alloc::raw_vec::RawVec<u32>, val: Unevaluated(alloc::raw_vec::RawVec::<T>::NEW, [u32], ()) }
52+
+ Deinit((*_9)); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
53+
+ ((*_9).0: alloc::raw_vec::RawVec<u32>) = move _10; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
54+
+ ((*_9).1: usize) = const 0_usize; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
55+
+ StorageDead(_10); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
56+
+ StorageDead(_9); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
57+
StorageDead(_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
5758
_1 = move _5; // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
5859
StorageDead(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
5960
_0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:+0:11: +2:2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
- // MIR for `main` before PreCodegen
2+
+ // MIR for `main` after PreCodegen
3+
4+
fn main() -> () {
5+
let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:+0:11: +0:11
6+
let _1: i32; // in scope 0 at $DIR/issue-73223.rs:+1:9: +1:14
7+
let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:+1:23: +1:30
8+
let _3: i32; // in scope 0 at $DIR/issue-73223.rs:+2:14: +2:15
9+
let mut _5: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
10+
let mut _6: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
11+
let mut _7: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
12+
let mut _10: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
13+
let mut _11: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
14+
let mut _12: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
15+
let _14: !; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
16+
let mut _15: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
17+
let _16: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
18+
let mut _17: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
19+
let _18: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
20+
let mut _19: std::option::Option<std::fmt::Arguments>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
21+
scope 1 {
22+
debug split => _1; // in scope 1 at $DIR/issue-73223.rs:+1:9: +1:14
23+
let _4: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:+6:9: +6:14
24+
scope 3 {
25+
debug _prev => _4; // in scope 3 at $DIR/issue-73223.rs:+6:9: +6:14
26+
let _8: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
27+
let _9: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
28+
let mut _20: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
29+
scope 4 {
30+
debug left_val => _8; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
31+
debug right_val => _9; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
32+
let _13: core::panicking::AssertKind; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
33+
scope 5 {
34+
debug kind => _13; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
35+
}
36+
}
37+
}
38+
}
39+
scope 2 {
40+
debug v => _3; // in scope 2 at $DIR/issue-73223.rs:+2:14: +2:15
41+
}
42+
43+
bb0: {
44+
StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:+1:9: +1:14
45+
StorageLive(_2); // scope 0 at $DIR/issue-73223.rs:+1:23: +1:30
46+
Deinit(_2); // scope 0 at $DIR/issue-73223.rs:+1:23: +1:30
47+
((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:+1:23: +1:30
48+
discriminant(_2) = 1; // scope 0 at $DIR/issue-73223.rs:+1:23: +1:30
49+
StorageLive(_3); // scope 0 at $DIR/issue-73223.rs:+2:14: +2:15
50+
_3 = ((_2 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:+2:14: +2:15
51+
_1 = _3; // scope 2 at $DIR/issue-73223.rs:+2:20: +2:21
52+
StorageDead(_3); // scope 0 at $DIR/issue-73223.rs:+2:20: +2:21
53+
StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:+4:6: +4:7
54+
StorageLive(_4); // scope 1 at $DIR/issue-73223.rs:+6:9: +6:14
55+
StorageLive(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
56+
StorageLive(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
57+
_6 = &_1; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
58+
StorageLive(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
59+
_20 = const _; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
60+
// mir::Constant
61+
// + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
62+
// + literal: Const { ty: &i32, val: Unevaluated(main, [], Some(promoted[0])) }
63+
_7 = _20; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
64+
Deinit(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
65+
(_5.0: &i32) = move _6; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
66+
(_5.1: &i32) = move _7; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
67+
StorageDead(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
68+
StorageDead(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
69+
StorageLive(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
70+
_8 = (_5.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
71+
StorageLive(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
72+
_9 = (_5.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
73+
StorageLive(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
74+
StorageLive(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
75+
StorageLive(_12); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
76+
_12 = (*_8); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
77+
_11 = Eq(move _12, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
78+
StorageDead(_12); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
79+
_10 = Not(move _11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
80+
StorageDead(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
81+
switchInt(move _10) -> [false: bb2, otherwise: bb1]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
82+
}
83+
84+
bb1: {
85+
StorageLive(_13); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
86+
StorageLive(_14); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
87+
StorageLive(_15); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
88+
StorageLive(_16); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
89+
_16 = _8; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
90+
_15 = _16; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
91+
StorageLive(_17); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
92+
StorageLive(_18); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
93+
_18 = _9; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
94+
_17 = _18; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
95+
StorageLive(_19); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
96+
Deinit(_19); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
97+
discriminant(_19) = 0; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
98+
_14 = core::panicking::assert_failed::<i32, i32>(const core::panicking::AssertKind::Eq, move _15, move _17, move _19); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
99+
// mir::Constant
100+
// + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
101+
// + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r i32, &'s i32, Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<i32, i32>}, val: Value(<ZST>) }
102+
// mir::Constant
103+
// + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
104+
// + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
105+
}
106+
107+
bb2: {
108+
StorageDead(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
109+
StorageDead(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
110+
StorageDead(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
111+
StorageDead(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
112+
StorageDead(_4); // scope 1 at $DIR/issue-73223.rs:+8:1: +8:2
113+
StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:+8:1: +8:2
114+
return; // scope 0 at $DIR/issue-73223.rs:+8:2: +8:2
115+
}
116+
}
117+

0 commit comments

Comments
 (0)