]> git.lizzy.rs Git - rust.git/blob - tests/run-pass/ptr_offset.rs
9e2e26fad3654db1c7a750c6f43ada809deb975f
[rust.git] / tests / run-pass / ptr_offset.rs
1 fn f() -> i32 { 42 }
2
3 fn main() {
4     let v = [1i16, 2];
5     let x = &v as *const i16;
6     let x = unsafe { x.offset(1) };
7     assert_eq!(unsafe { *x }, 2);
8
9     // fn ptr offset
10     unsafe {
11         let p = f as fn() -> i32 as usize;
12         let x = (p as *mut u32).offset(0) as usize;
13         let f: fn() -> i32 = std::mem::transmute(x);
14         assert_eq!(f(), 42);
15     }
16 }