1 // EMIT_MIR address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
3 fn address_of_reborrow() {
5 let mut z = &mut [0; 10];
11 y as *const i32; // This is a cast, not a coercion
14 let p: *const [i32; 10] = y;
15 let p: *const dyn Send = y;
16 let p: *const [i32] = y;
19 z as *const [i32; 10];
24 let p: *const [i32; 10] = z;
25 let p: *const dyn Send = z;
26 let p: *const [i32] = z;
34 let p: *mut [i32; 10] = z;
35 let p: *mut dyn Send = z;
36 let p: *mut [i32] = z;
39 // The normal borrows here should be preserved
40 // EMIT_MIR address_of.borrow_and_cast.SimplifyCfg-initial.after.mir
41 fn borrow_and_cast(mut x: i32) {
42 let p = &x as *const i32;
43 let q = &mut x as *const i32;
44 let r = &mut x as *mut i32;