rust/tests/mir-opt/dead-store-elimination/provenance_soundness.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

24 lines
728 B
Rust
Raw Normal View History

2022-05-09 19:12:03 -05:00
// Test that we don't remove pointer to int casts or retags
//@ test-mir-pass: DeadStoreElimination-initial
//@ compile-flags: -Zmir-emit-retag
2022-05-09 19:12:03 -05:00
// EMIT_MIR provenance_soundness.pointer_to_int.DeadStoreElimination-initial.diff
2022-05-09 19:12:03 -05:00
fn pointer_to_int(p: *mut i32) {
// CHECK-LABEL: fn pointer_to_int(
// CHECK: {{_.*}} = {{.*}} as usize (PointerExposeProvenance);
// CHECK: {{_.*}} = {{.*}} as isize (PointerExposeProvenance);
2022-05-09 19:12:03 -05:00
let _x = p as usize;
let _y = p as isize;
}
// EMIT_MIR provenance_soundness.retags.DeadStoreElimination-initial.diff
fn retags(_r: &mut i32) {
// CHECK-LABEL: fn retags(
// CHECK: Retag([fn entry] _1);
}
2022-05-09 19:12:03 -05:00
fn main() {
pointer_to_int(&mut 5 as *mut _);
retags(&mut 5);
}