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, Copy, Clone)] 1012a9d9c8Sopenharmony_cipub struct foo { 1112a9d9c8Sopenharmony_ci pub bar: *const *const *mut *const ::std::os::raw::c_int, 1212a9d9c8Sopenharmony_ci} 1312a9d9c8Sopenharmony_ci#[test] 1412a9d9c8Sopenharmony_cifn bindgen_test_layout_foo() { 1512a9d9c8Sopenharmony_ci const UNINIT: ::std::mem::MaybeUninit<foo> = 1612a9d9c8Sopenharmony_ci ::std::mem::MaybeUninit::uninit(); 1712a9d9c8Sopenharmony_ci let ptr = UNINIT.as_ptr(); 1812a9d9c8Sopenharmony_ci assert_eq!( 1912a9d9c8Sopenharmony_ci ::std::mem::size_of::<foo>(), 2012a9d9c8Sopenharmony_ci 8usize, 2112a9d9c8Sopenharmony_ci concat!("Size of: ", stringify!(foo)) 2212a9d9c8Sopenharmony_ci ); 2312a9d9c8Sopenharmony_ci assert_eq!( 2412a9d9c8Sopenharmony_ci ::std::mem::align_of::<foo>(), 2512a9d9c8Sopenharmony_ci 8usize, 2612a9d9c8Sopenharmony_ci concat!("Alignment of ", stringify!(foo)) 2712a9d9c8Sopenharmony_ci ); 2812a9d9c8Sopenharmony_ci assert_eq!( 2912a9d9c8Sopenharmony_ci unsafe { ::std::ptr::addr_of!((*ptr).bar) as usize - ptr as usize }, 3012a9d9c8Sopenharmony_ci 0usize, 3112a9d9c8Sopenharmony_ci concat!("Offset of field: ", stringify!(foo), "::", stringify!(bar)) 3212a9d9c8Sopenharmony_ci ); 3312a9d9c8Sopenharmony_ci} 3412a9d9c8Sopenharmony_ciimpl Default for foo { 3512a9d9c8Sopenharmony_ci fn default() -> Self { 3612a9d9c8Sopenharmony_ci let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3712a9d9c8Sopenharmony_ci unsafe { 3812a9d9c8Sopenharmony_ci ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3912a9d9c8Sopenharmony_ci s.assume_init() 4012a9d9c8Sopenharmony_ci } 4112a9d9c8Sopenharmony_ci } 4212a9d9c8Sopenharmony_ci} 43