- // 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 ::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 ::ALIGN, copy _3) -> [success: bb1, unwind unreachable]; + } + + bb1: { _0 = copy (*_1); return; } }