112a9d9c8Sopenharmony_ci// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq --impl-partialeq --rust-target 1.40 212a9d9c8Sopenharmony_ci/** 312a9d9c8Sopenharmony_ci * We emit a `[u8; 63usize]` padding field for this struct, which cannot derive 412a9d9c8Sopenharmony_ci * Debug/Hash because 63 is over the hard coded limit. 512a9d9c8Sopenharmony_ci */ 612a9d9c8Sopenharmony_cistruct NoDebug { 712a9d9c8Sopenharmony_ci char c; 812a9d9c8Sopenharmony_ci // padding of 63 bytes 912a9d9c8Sopenharmony_ci} __attribute__((__aligned__(64))); 1012a9d9c8Sopenharmony_ci 1112a9d9c8Sopenharmony_ci/** 1212a9d9c8Sopenharmony_ci * This should derive Debug/Hash/PartialEq/Eq because the padding size is less than the max derive 1312a9d9c8Sopenharmony_ci * Debug/Hash/PartialEq/Eq impl for arrays. However, we conservatively don't derive Debug/Hash because 1412a9d9c8Sopenharmony_ci * we determine Debug derive-ability before we compute padding, which happens at 1512a9d9c8Sopenharmony_ci * codegen. 1612a9d9c8Sopenharmony_ci */ 1712a9d9c8Sopenharmony_cistruct ShouldDeriveDebugButDoesNot { 1812a9d9c8Sopenharmony_ci char c[32]; 1912a9d9c8Sopenharmony_ci char d; 2012a9d9c8Sopenharmony_ci // padding of 31 bytes 2112a9d9c8Sopenharmony_ci} __attribute__((__aligned__(64))); 22