19 lines
658 B
Rust
19 lines
658 B
Rust
//@ compile-flags: -Copt-level=1 -Zmir-opt-level=2 -Zub-checks
|
|
//@ only-64bit
|
|
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
|
|
|
|
#![crate_type = "lib"]
|
|
|
|
// The diff shows exactly what is generated by the pass;
|
|
// then we check the final `-O1` output for people who want to run them
|
|
// without the codegen being too terrible.
|
|
|
|
// EMIT_MIR alignment_checks.sized_ptr.CheckAlignment.diff
|
|
pub unsafe fn sized_ptr(ptr: *const u32) -> u32 {
|
|
// CHECK-LABEL: fn sized_ptr(_1: *const u32)
|
|
// CHECK: _2 = copy _1 as usize (Transmute);
|
|
// CHECK: _3 = BitAnd(copy _2, const 3_usize);
|
|
// CHECK: _4 = Eq(copy _3, const 0_usize);
|
|
// CHECK: assert(copy _4,
|
|
*ptr
|
|
}
|