Skip to content

Commit e2caebc

Browse files
committed
Add tests.
1 parent eb7a743 commit e2caebc

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
- // MIR for `fn0` before ConstProp
2+
+ // MIR for `fn0` after ConstProp
3+
4+
fn fn0() -> bool {
5+
let mut _0: bool; // return place in scope 0 at $DIR/address_of_pair.rs:+0:17: +0:21
6+
let mut _1: !; // in scope 0 at $DIR/address_of_pair.rs:+0:22: +9:2
7+
let mut _2: (i32, bool); // in scope 0 at $DIR/address_of_pair.rs:+1:9: +1:17
8+
let _4: (); // in scope 0 at $DIR/address_of_pair.rs:+4:5: +6:6
9+
let mut _6: bool; // in scope 0 at $DIR/address_of_pair.rs:+7:16: +7:22
10+
scope 1 {
11+
debug pair => _2; // in scope 1 at $DIR/address_of_pair.rs:+1:9: +1:17
12+
let _3: *mut bool; // in scope 1 at $DIR/address_of_pair.rs:+2:9: +2:12
13+
scope 2 {
14+
debug ptr => _3; // in scope 2 at $DIR/address_of_pair.rs:+2:9: +2:12
15+
let _5: bool; // in scope 2 at $DIR/address_of_pair.rs:+7:9: +7:12
16+
scope 3 {
17+
}
18+
scope 4 {
19+
debug ret => _5; // in scope 4 at $DIR/address_of_pair.rs:+7:9: +7:12
20+
}
21+
}
22+
}
23+
24+
bb0: {
25+
StorageLive(_2); // scope 0 at $DIR/address_of_pair.rs:+1:9: +1:17
26+
- _2 = (const 1_i32, const false); // scope 0 at $DIR/address_of_pair.rs:+1:20: +1:30
27+
+ _2 = const (1_i32, false); // scope 0 at $DIR/address_of_pair.rs:+1:20: +1:30
28+
StorageLive(_3); // scope 1 at $DIR/address_of_pair.rs:+2:9: +2:12
29+
_3 = &raw mut (_2.1: bool); // scope 1 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
30+
- _2 = (const 1_i32, const false); // scope 2 at $DIR/address_of_pair.rs:+3:5: +3:22
31+
+ _2 = const (1_i32, false); // scope 2 at $DIR/address_of_pair.rs:+3:5: +3:22
32+
StorageLive(_4); // scope 2 at $DIR/address_of_pair.rs:+4:5: +6:6
33+
(*_3) = const true; // scope 3 at $DIR/address_of_pair.rs:+5:9: +5:20
34+
_4 = const (); // scope 3 at $DIR/address_of_pair.rs:+4:5: +6:6
35+
StorageDead(_4); // scope 2 at $DIR/address_of_pair.rs:+6:5: +6:6
36+
StorageLive(_5); // scope 2 at $DIR/address_of_pair.rs:+7:9: +7:12
37+
StorageLive(_6); // scope 2 at $DIR/address_of_pair.rs:+7:16: +7:22
38+
- _6 = (_2.1: bool); // scope 2 at $DIR/address_of_pair.rs:+7:16: +7:22
39+
- _5 = Not(move _6); // scope 2 at $DIR/address_of_pair.rs:+7:15: +7:22
40+
+ _6 = const false; // scope 2 at $DIR/address_of_pair.rs:+7:16: +7:22
41+
+ _5 = const true; // scope 2 at $DIR/address_of_pair.rs:+7:15: +7:22
42+
StorageDead(_6); // scope 2 at $DIR/address_of_pair.rs:+7:21: +7:22
43+
- _0 = _5; // scope 4 at $DIR/address_of_pair.rs:+8:12: +8:15
44+
+ _0 = const true; // scope 4 at $DIR/address_of_pair.rs:+8:12: +8:15
45+
StorageDead(_5); // scope 2 at $DIR/address_of_pair.rs:+9:1: +9:2
46+
StorageDead(_3); // scope 1 at $DIR/address_of_pair.rs:+9:1: +9:2
47+
StorageDead(_2); // scope 0 at $DIR/address_of_pair.rs:+9:1: +9:2
48+
return; // scope 0 at $DIR/address_of_pair.rs:+9:2: +9:2
49+
}
50+
}
51+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// unit-test: ConstProp
2+
3+
// EMIT_MIR address_of_pair.fn0.ConstProp.diff
4+
pub fn fn0() -> bool {
5+
let mut pair = (1, false);
6+
let ptr = core::ptr::addr_of_mut!(pair.1);
7+
pair = (1, false);
8+
unsafe {
9+
*ptr = true;
10+
}
11+
let ret = !pair.1;
12+
return ret;
13+
}
14+
15+
pub fn main() {
16+
println!("{}", fn0());
17+
}

0 commit comments

Comments
 (0)