| - // MIR for `sized_ptr` before CheckAlignment | |
| + // MIR for `sized_ptr` after CheckAlignment | |
| fn sized_ptr(_1: *const u32) -> u32 { | |
| debug ptr => _1; | |
| let mut _0: u32; | |
| + let mut _2: *const (); | |
| + let mut _3: usize; | |
| + let mut _4: usize; | |
| + let mut _5: usize; | |
| + let mut _6: bool; | |
| bb0: { | |
| + _2 = copy _1 as *const () (PtrToPtr); | |
| + _3 = copy _2 as usize (Transmute); | |
| + _4 = Sub(const <u32 as std::mem::SizedTypeProperties>::ALIGN, const 1_usize); | |
| + _5 = BitAnd(copy _3, copy _4); | |
| + _6 = Eq(copy _5, const 0_usize); | |
| + assert(copy _6, "misaligned pointer dereference: address must be a multiple of {} but is {}", const <u32 as std::mem::SizedTypeProperties>::ALIGN, copy _3) -> [success: bb1, unwind unreachable]; | |
| + } | |
| + | |
| + bb1: { | |
| _0 = copy (*_1); | |
| return; | |
| } | |
| } | |