112a9d9c8Sopenharmony_ci// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq
212a9d9c8Sopenharmony_ci
312a9d9c8Sopenharmony_ci#define COMPLEX_TEST(ty_, name_)  \
412a9d9c8Sopenharmony_ci  struct Test##name_ {            \
512a9d9c8Sopenharmony_ci    ty_ _Complex mMember;         \
612a9d9c8Sopenharmony_ci                                  \
712a9d9c8Sopenharmony_ci  };                              \
812a9d9c8Sopenharmony_ci  struct Test##name_##Ptr {       \
912a9d9c8Sopenharmony_ci    ty_ _Complex* mMember;        \
1012a9d9c8Sopenharmony_ci  };
1112a9d9c8Sopenharmony_ci
1212a9d9c8Sopenharmony_ciCOMPLEX_TEST(double, Double)
1312a9d9c8Sopenharmony_ciCOMPLEX_TEST(float, Float)
1412a9d9c8Sopenharmony_ci
1512a9d9c8Sopenharmony_ci// FIXME: 128-byte-aligned in some machines
1612a9d9c8Sopenharmony_ci// which we can't support right now in Rust.
1712a9d9c8Sopenharmony_ci// COMPLEX_TEST(long double, LongDouble)
18