summaryrefslogtreecommitdiff
path: root/tests/expectations/tests/libclang-9/incomplete-array-padding.rs
diff options
context:
space:
mode:
authorGavin Li <gavin@matician.com>2022-05-12 13:38:17 -0700
committerEmilio Cobos Álvarez <emilio@crisal.io>2022-05-17 13:58:45 +0200
commit5a01c551993e56d20240ef64d0ec78cd4195855d (patch)
tree3c64102b533667e36c03f9cab6ff643b9814ebbf /tests/expectations/tests/libclang-9/incomplete-array-padding.rs
parent92487d4ed4c7ed0c006f461986b410b17f24cfa8 (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.rs6
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))
);