1 use std::marker::PhantomData; 2 3 union Opaque { 4 x: i32, 5 y: f32, 6 } 7 8 #[repr(C)] 9 union Normal { 10 x: i32, 11 y: f32, 12 } 13 14 #[repr(C)] 15 union NormalWithZST { 16 x: i32, 17 y: f32, 18 z: (), 19 w: PhantomData<i32>, 20 } 21 22 #[no_mangle] root( a: *mut Opaque, b: Normal, c: NormalWithZST )23pub extern "C" fn root( 24 a: *mut Opaque, 25 b: Normal, 26 c: NormalWithZST 27 ) { } 28