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