1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#[link(name = "foo", kind = "static")] extern "C" { fn test_start(f: extern "C" fn()); fn test_end(); } fn main() { unsafe { test_start(test_middle); } } struct A; impl Drop for A { fn drop(&mut self) {} } extern "C" fn test_middle() { let _a = A; foo(); } fn foo() { let _a = A; unsafe { test_end(); } }