diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/expectations/tests/constified-enum-module-overflow.rs | 54 | ||||
-rw-r--r-- | tests/headers/constified-enum-module-overflow.hpp | 8 |
2 files changed, 62 insertions, 0 deletions
diff --git a/tests/expectations/tests/constified-enum-module-overflow.rs b/tests/expectations/tests/constified-enum-module-overflow.rs new file mode 100644 index 00000000..4a799ef8 --- /dev/null +++ b/tests/expectations/tests/constified-enum-module-overflow.rs @@ -0,0 +1,54 @@ +#![allow( + dead_code, + non_snake_case, + non_camel_case_types, + non_upper_case_globals +)] + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct B { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct C { + pub _address: u8, +} +pub type C_U = B; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct A { + pub u: u8, +} +#[test] +fn bindgen_test_layout_A() { + assert_eq!( + ::std::mem::size_of::<A>(), + 1usize, + concat!("Size of: ", stringify!(A)) + ); + assert_eq!( + ::std::mem::align_of::<A>(), + 1usize, + concat!("Alignment of ", stringify!(A)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<A>())).u as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(A), "::", stringify!(u)) + ); +} +#[test] +fn __bindgen_test_layout_C_open0_A_close0_instantiation() { + assert_eq!( + ::std::mem::size_of::<C>(), + 1usize, + concat!("Size of template specialization: ", stringify!(C)) + ); + assert_eq!( + ::std::mem::align_of::<C>(), + 1usize, + concat!("Alignment of template specialization: ", stringify!(C)) + ); +} diff --git a/tests/headers/constified-enum-module-overflow.hpp b/tests/headers/constified-enum-module-overflow.hpp new file mode 100644 index 00000000..d48f2be1 --- /dev/null +++ b/tests/headers/constified-enum-module-overflow.hpp @@ -0,0 +1,8 @@ +template <typename> class B{}; +template <typename c> class C { +public: + using U = B<c>; +}; +class A : C<A> { + U u; +}; |