| //@ 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 | |
| } |