diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/expectations/tests/parm-union.rs | 40 | ||||
-rw-r--r-- | tests/headers/parm-union.hpp | 4 |
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/expectations/tests/parm-union.rs b/tests/expectations/tests/parm-union.rs new file mode 100644 index 00000000..9f7dd20a --- /dev/null +++ b/tests/expectations/tests/parm-union.rs @@ -0,0 +1,40 @@ +#![allow( + dead_code, + non_snake_case, + non_camel_case_types, + non_upper_case_globals +)] + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Struct { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_Struct() { + assert_eq!( + ::std::mem::size_of::<Struct>(), + 1usize, + concat!("Size of: ", stringify!(Struct)) + ); + assert_eq!( + ::std::mem::align_of::<Struct>(), + 1usize, + concat!("Alignment of ", stringify!(Struct)) + ); +} +extern "C" { + #[link_name = "\u{1}_ZN6Struct8FunctionER5Union"] + pub fn Struct_Function(this: *mut Struct, arg1: *mut Union); +} +impl Struct { + #[inline] + pub unsafe fn Function(&mut self, arg1: *mut Union) { + Struct_Function(self, arg1) + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Union { + _unused: [u8; 0], +} diff --git a/tests/headers/parm-union.hpp b/tests/headers/parm-union.hpp new file mode 100644 index 00000000..e36df691 --- /dev/null +++ b/tests/headers/parm-union.hpp @@ -0,0 +1,4 @@ +struct Struct +{ + void Function(union Union&); +}; |