diff options
Diffstat (limited to 'bindgen-tests/tests/headers/issue-648-derive-debug-with-padding.h')
-rw-r--r-- | bindgen-tests/tests/headers/issue-648-derive-debug-with-padding.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/bindgen-tests/tests/headers/issue-648-derive-debug-with-padding.h b/bindgen-tests/tests/headers/issue-648-derive-debug-with-padding.h new file mode 100644 index 00000000..0860ce95 --- /dev/null +++ b/bindgen-tests/tests/headers/issue-648-derive-debug-with-padding.h @@ -0,0 +1,21 @@ +// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq --impl-partialeq --rust-target 1.40 +/** + * We emit a `[u8; 63usize]` padding field for this struct, which cannot derive + * Debug/Hash because 63 is over the hard coded limit. + */ +struct NoDebug { + char c; + // padding of 63 bytes +} __attribute__((__aligned__(64))); + +/** + * This should derive Debug/Hash/PartialEq/Eq because the padding size is less than the max derive + * Debug/Hash/PartialEq/Eq impl for arrays. However, we conservatively don't derive Debug/Hash because + * we determine Debug derive-ability before we compute padding, which happens at + * codegen. + */ +struct ShouldDeriveDebugButDoesNot { + char c[32]; + char d; + // padding of 31 bytes +} __attribute__((__aligned__(64))); |