From f3b9748e4ce5d1a5d052cbdc75885c413363651f Mon Sep 17 00:00:00 2001 From: Alex Crichton <alex@alexcrichton.com> Date: Wed, 16 Sep 2015 14:13:20 -0700 Subject: [PATCH] Start testing types of struct fields --- libc-test/build.rs | 5 +++++ src/unix/mod.rs | 2 +- src/unix/notbsd/mod.rs | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 0e5cd9f9..233983d9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -189,5 +189,10 @@ fn main() { // Windows dllimport oddness? cfg.skip_fn_ptrcheck(move |_| windows); + cfg.skip_field_type(|struct_, field| { + // This is a weird union, don't check the type. + struct_ == "ifaddrs" && field == "ifa_ifu" + }); + cfg.generate("../src/lib.rs", "all.rs"); } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 14c427fd..cacecbc3 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -48,7 +48,7 @@ s! { } pub struct in6_addr { - pub s6_addr: [u16; 8], + pub s6_addr16: [u16; 8], __align: [u32; 0], } diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs index 87fec5e1..8591420c 100644 --- a/src/unix/notbsd/mod.rs +++ b/src/unix/notbsd/mod.rs @@ -24,7 +24,7 @@ pub enum timezone {} s! { pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [u8; 14], + pub sa_data: [::c_char; 14], } pub struct sockaddr_in { @@ -49,7 +49,7 @@ s! { pub struct sockaddr_storage { pub ss_family: sa_family_t, - __ss_align: isize, + __ss_align: ::size_t, #[cfg(target_pointer_width = "32")] __ss_pad2: [u8; 128 - 2 * 4], #[cfg(target_pointer_width = "64")] -- GitLab