2024-06-28 21:05:01 -05:00
|
|
|
- // MIR for `main` before GVN
|
|
|
|
+ // MIR for `main` after GVN
|
|
|
|
|
|
|
|
fn main() -> () {
|
|
|
|
let mut _0: ();
|
|
|
|
let _1: bool;
|
|
|
|
let mut _2: *mut u8;
|
|
|
|
scope 1 (inlined dangling_mut::<u8>) {
|
|
|
|
let mut _3: usize;
|
|
|
|
scope 2 (inlined align_of::<u8>) {
|
|
|
|
}
|
|
|
|
scope 3 (inlined without_provenance_mut::<u8>) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
scope 4 (inlined Foo::<u8>::cmp_ptr) {
|
|
|
|
let mut _4: *const u8;
|
|
|
|
let mut _5: *mut u8;
|
|
|
|
let mut _6: *const u8;
|
|
|
|
scope 5 (inlined std::ptr::eq::<u8>) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bb0: {
|
|
|
|
StorageLive(_1);
|
|
|
|
StorageLive(_2);
|
|
|
|
StorageLive(_3);
|
|
|
|
- _3 = AlignOf(u8);
|
2024-08-18 16:26:34 -05:00
|
|
|
- _2 = copy _3 as *mut u8 (Transmute);
|
2024-06-28 21:05:01 -05:00
|
|
|
+ _3 = const 1_usize;
|
|
|
|
+ _2 = const {0x1 as *mut u8};
|
|
|
|
StorageDead(_3);
|
|
|
|
StorageLive(_4);
|
|
|
|
StorageLive(_5);
|
2024-08-18 16:26:34 -05:00
|
|
|
- _5 = copy _2;
|
|
|
|
- _4 = copy _2 as *const u8 (PtrToPtr);
|
2024-06-28 21:05:01 -05:00
|
|
|
+ _5 = const {0x1 as *mut u8};
|
|
|
|
+ _4 = const {0x1 as *const u8};
|
|
|
|
StorageDead(_5);
|
|
|
|
StorageLive(_6);
|
|
|
|
- _6 = const Foo::<u8>::SENTINEL as *const u8 (PtrToPtr);
|
2024-08-18 16:26:34 -05:00
|
|
|
- _1 = Eq(copy _4, copy _6);
|
2024-06-28 21:05:01 -05:00
|
|
|
+ _6 = const {0x1 as *const u8};
|
|
|
|
+ _1 = const true;
|
|
|
|
StorageDead(_6);
|
|
|
|
StorageDead(_4);
|
|
|
|
StorageDead(_2);
|
|
|
|
StorageDead(_1);
|
|
|
|
_0 = const ();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|