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