112a9d9c8Sopenharmony_ci#![allow( 212a9d9c8Sopenharmony_ci dead_code, 312a9d9c8Sopenharmony_ci non_snake_case, 412a9d9c8Sopenharmony_ci non_camel_case_types, 512a9d9c8Sopenharmony_ci non_upper_case_globals 612a9d9c8Sopenharmony_ci)] 712a9d9c8Sopenharmony_ci 812a9d9c8Sopenharmony_ci#[repr(C)] 912a9d9c8Sopenharmony_ci#[derive(Debug, Default, Copy, Clone)] 1012a9d9c8Sopenharmony_cipub struct Calc { 1112a9d9c8Sopenharmony_ci pub w: ::std::os::raw::c_int, 1212a9d9c8Sopenharmony_ci} 1312a9d9c8Sopenharmony_ci#[test] 1412a9d9c8Sopenharmony_cifn bindgen_test_layout_Calc() { 1512a9d9c8Sopenharmony_ci const UNINIT: ::std::mem::MaybeUninit<Calc> = 1612a9d9c8Sopenharmony_ci ::std::mem::MaybeUninit::uninit(); 1712a9d9c8Sopenharmony_ci let ptr = UNINIT.as_ptr(); 1812a9d9c8Sopenharmony_ci assert_eq!( 1912a9d9c8Sopenharmony_ci ::std::mem::size_of::<Calc>(), 2012a9d9c8Sopenharmony_ci 4usize, 2112a9d9c8Sopenharmony_ci concat!("Size of: ", stringify!(Calc)) 2212a9d9c8Sopenharmony_ci ); 2312a9d9c8Sopenharmony_ci assert_eq!( 2412a9d9c8Sopenharmony_ci ::std::mem::align_of::<Calc>(), 2512a9d9c8Sopenharmony_ci 4usize, 2612a9d9c8Sopenharmony_ci concat!("Alignment of ", stringify!(Calc)) 2712a9d9c8Sopenharmony_ci ); 2812a9d9c8Sopenharmony_ci assert_eq!( 2912a9d9c8Sopenharmony_ci unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize }, 3012a9d9c8Sopenharmony_ci 0usize, 3112a9d9c8Sopenharmony_ci concat!("Offset of field: ", stringify!(Calc), "::", stringify!(w)) 3212a9d9c8Sopenharmony_ci ); 3312a9d9c8Sopenharmony_ci} 3412a9d9c8Sopenharmony_ci#[repr(C)] 3512a9d9c8Sopenharmony_ci#[derive(Debug, Default, Copy, Clone)] 3612a9d9c8Sopenharmony_cipub struct Test { 3712a9d9c8Sopenharmony_ci pub _address: u8, 3812a9d9c8Sopenharmony_ci} 3912a9d9c8Sopenharmony_ci#[repr(C)] 4012a9d9c8Sopenharmony_ci#[derive(Debug, Default, Copy, Clone)] 4112a9d9c8Sopenharmony_cipub struct Test_Size { 4212a9d9c8Sopenharmony_ci pub mWidth: Test_Size_Dimension, 4312a9d9c8Sopenharmony_ci pub mHeight: Test_Size_Dimension, 4412a9d9c8Sopenharmony_ci} 4512a9d9c8Sopenharmony_ci#[repr(C)] 4612a9d9c8Sopenharmony_ci#[derive(Debug, Default, Copy, Clone)] 4712a9d9c8Sopenharmony_cipub struct Test_Size_Dimension { 4812a9d9c8Sopenharmony_ci pub _base: Calc, 4912a9d9c8Sopenharmony_ci} 5012a9d9c8Sopenharmony_ci#[test] 5112a9d9c8Sopenharmony_cifn bindgen_test_layout_Test_Size_Dimension() { 5212a9d9c8Sopenharmony_ci assert_eq!( 5312a9d9c8Sopenharmony_ci ::std::mem::size_of::<Test_Size_Dimension>(), 5412a9d9c8Sopenharmony_ci 4usize, 5512a9d9c8Sopenharmony_ci concat!("Size of: ", stringify!(Test_Size_Dimension)) 5612a9d9c8Sopenharmony_ci ); 5712a9d9c8Sopenharmony_ci assert_eq!( 5812a9d9c8Sopenharmony_ci ::std::mem::align_of::<Test_Size_Dimension>(), 5912a9d9c8Sopenharmony_ci 4usize, 6012a9d9c8Sopenharmony_ci concat!("Alignment of ", stringify!(Test_Size_Dimension)) 6112a9d9c8Sopenharmony_ci ); 6212a9d9c8Sopenharmony_ci} 6312a9d9c8Sopenharmony_ci#[test] 6412a9d9c8Sopenharmony_cifn bindgen_test_layout_Test_Size() { 6512a9d9c8Sopenharmony_ci const UNINIT: ::std::mem::MaybeUninit<Test_Size> = 6612a9d9c8Sopenharmony_ci ::std::mem::MaybeUninit::uninit(); 6712a9d9c8Sopenharmony_ci let ptr = UNINIT.as_ptr(); 6812a9d9c8Sopenharmony_ci assert_eq!( 6912a9d9c8Sopenharmony_ci ::std::mem::size_of::<Test_Size>(), 7012a9d9c8Sopenharmony_ci 8usize, 7112a9d9c8Sopenharmony_ci concat!("Size of: ", stringify!(Test_Size)) 7212a9d9c8Sopenharmony_ci ); 7312a9d9c8Sopenharmony_ci assert_eq!( 7412a9d9c8Sopenharmony_ci ::std::mem::align_of::<Test_Size>(), 7512a9d9c8Sopenharmony_ci 4usize, 7612a9d9c8Sopenharmony_ci concat!("Alignment of ", stringify!(Test_Size)) 7712a9d9c8Sopenharmony_ci ); 7812a9d9c8Sopenharmony_ci assert_eq!( 7912a9d9c8Sopenharmony_ci unsafe { ::std::ptr::addr_of!((*ptr).mWidth) as usize - ptr as usize }, 8012a9d9c8Sopenharmony_ci 0usize, 8112a9d9c8Sopenharmony_ci concat!( 8212a9d9c8Sopenharmony_ci "Offset of field: ", 8312a9d9c8Sopenharmony_ci stringify!(Test_Size), 8412a9d9c8Sopenharmony_ci "::", 8512a9d9c8Sopenharmony_ci stringify!(mWidth) 8612a9d9c8Sopenharmony_ci ) 8712a9d9c8Sopenharmony_ci ); 8812a9d9c8Sopenharmony_ci assert_eq!( 8912a9d9c8Sopenharmony_ci unsafe { ::std::ptr::addr_of!((*ptr).mHeight) as usize - ptr as usize }, 9012a9d9c8Sopenharmony_ci 4usize, 9112a9d9c8Sopenharmony_ci concat!( 9212a9d9c8Sopenharmony_ci "Offset of field: ", 9312a9d9c8Sopenharmony_ci stringify!(Test_Size), 9412a9d9c8Sopenharmony_ci "::", 9512a9d9c8Sopenharmony_ci stringify!(mHeight) 9612a9d9c8Sopenharmony_ci ) 9712a9d9c8Sopenharmony_ci ); 9812a9d9c8Sopenharmony_ci} 9912a9d9c8Sopenharmony_ci#[test] 10012a9d9c8Sopenharmony_cifn bindgen_test_layout_Test() { 10112a9d9c8Sopenharmony_ci assert_eq!( 10212a9d9c8Sopenharmony_ci ::std::mem::size_of::<Test>(), 10312a9d9c8Sopenharmony_ci 1usize, 10412a9d9c8Sopenharmony_ci concat!("Size of: ", stringify!(Test)) 10512a9d9c8Sopenharmony_ci ); 10612a9d9c8Sopenharmony_ci assert_eq!( 10712a9d9c8Sopenharmony_ci ::std::mem::align_of::<Test>(), 10812a9d9c8Sopenharmony_ci 1usize, 10912a9d9c8Sopenharmony_ci concat!("Alignment of ", stringify!(Test)) 11012a9d9c8Sopenharmony_ci ); 11112a9d9c8Sopenharmony_ci} 112