Fails to generate correct code when UINT64_C
is used · Issue #3200 · rust-lang/rust-bindgen (original) (raw)
I understand that getting the correct integer type from #define
is very difficult, however using UINT64_C should clarify to bindgen that it's a 64-bit integer. Currently the macro parser fails on UINT64_C and the Clang macro fallback is needed, but that still generates a 32-bit integer.
Header:
#include <stdint.h> #define SOMETHING UINT64_C(1)
Without --clang-macro-fallback
:
bindgen --allowlist-item SOMETHING header.h
Output:
/* automatically generated by rust-bindgen 0.71.1 */
With --clang-macro-fallback
:
bindgen --clang-macro-fallback --allowlist-item SOMETHING header.h
Output:
/* automatically generated by rust-bindgen 0.71.1 */
pub const SOMETHING: u32 = 1;