diff options
author | Gavin Li <gavin@matician.com> | 2022-05-12 13:38:17 -0700 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2022-05-17 13:58:45 +0200 |
commit | 5a01c551993e56d20240ef64d0ec78cd4195855d (patch) | |
tree | 3c64102b533667e36c03f9cab6ff643b9814ebbf /tests/expectations/tests/libclang-9/incomplete-array-padding.rs | |
parent | 92487d4ed4c7ed0c006f461986b410b17f24cfa8 (diff) |
Fix "dereferencing a null pointer" in C layout tests
Instead of dereferencing a null pointer, create a MaybeUninit from which
we can extract well-defined addresses.
Diffstat (limited to 'tests/expectations/tests/libclang-9/incomplete-array-padding.rs')
-rw-r--r-- | tests/expectations/tests/libclang-9/incomplete-array-padding.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/expectations/tests/libclang-9/incomplete-array-padding.rs b/tests/expectations/tests/libclang-9/incomplete-array-padding.rs index 382195db..ba1f9ce0 100644 --- a/tests/expectations/tests/libclang-9/incomplete-array-padding.rs +++ b/tests/expectations/tests/libclang-9/incomplete-array-padding.rs @@ -141,7 +141,11 @@ fn bindgen_test_layout_foo() { concat!("Alignment of ", stringify!(foo)) ); assert_eq!( - unsafe { &(*(::std::ptr::null::<foo>())).b as *const _ as usize }, + unsafe { + let uninit = ::std::mem::MaybeUninit::<foo>::uninit(); + let ptr = uninit.as_ptr(); + ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize + }, 8usize, concat!("Offset of field: ", stringify!(foo), "::", stringify!(b)) ); |