From 3715245a3688de8f82ffbb127b09a0dd517458c3 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Wed, 26 Dec 2018 16:23:04 +0100 Subject: [PATCH] add test for offseting fn ptr --- tests/run-pass/ptr_offset.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/run-pass/ptr_offset.rs b/tests/run-pass/ptr_offset.rs index 6add5212db9..9e2e26fad36 100644 --- a/tests/run-pass/ptr_offset.rs +++ b/tests/run-pass/ptr_offset.rs @@ -1,6 +1,16 @@ +fn f() -> i32 { 42 } + fn main() { let v = [1i16, 2]; let x = &v as *const i16; let x = unsafe { x.offset(1) }; assert_eq!(unsafe { *x }, 2); + + // fn ptr offset + unsafe { + let p = f as fn() -> i32 as usize; + let x = (p as *mut u32).offset(0) as usize; + let f: fn() -> i32 = std::mem::transmute(x); + assert_eq!(f(), 42); + } }