summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-06-20 14:14:52 -0700
committerGitHub <noreply@github.com>2017-06-20 14:14:52 -0700
commit49526069a0cb9486cb4838134259589addafff40 (patch)
tree0b4783bfdcdb734a1c110837d442d6d3ec4f5db3
parenta99bbd865e813143a81d29fac8cb46acd5bf6141 (diff)
parent30dc9daa7addb26ff127b3c6a368bdb7ebdc680a (diff)
Auto merge of #772 - emilio:ff, r=fitzgenv0.26.1
codegen: Inline {read,write}_unaligned in order to support rust 1.15.
-rw-r--r--Cargo.lock2
-rw-r--r--Cargo.toml2
-rw-r--r--src/codegen/mod.rs33
-rw-r--r--tests/expectations/tests/bitfield-32bit-overflow.rs1089
-rw-r--r--tests/expectations/tests/bitfield-method-same-name.rs33
-rw-r--r--tests/expectations/tests/bitfield_align.rs891
-rw-r--r--tests/expectations/tests/bitfield_align_2.rs66
-rw-r--r--tests/expectations/tests/bitfield_method_mangling.rs66
-rw-r--r--tests/expectations/tests/jsval_layout_opaque.rs66
-rw-r--r--tests/expectations/tests/layout_align.rs99
-rw-r--r--tests/expectations/tests/layout_eth_conf.rs396
-rw-r--r--tests/expectations/tests/layout_mbuf.rs429
-rw-r--r--tests/expectations/tests/only_bitfields.rs66
-rw-r--r--tests/expectations/tests/struct_with_bitfields.rs198
-rw-r--r--tests/expectations/tests/union_with_anon_struct_bitfield.rs66
-rw-r--r--tests/expectations/tests/weird_bitfields.rs231
16 files changed, 2378 insertions, 1355 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 629f093b..b88f8be1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,6 +1,6 @@
[root]
name = "bindgen"
-version = "0.26.0"
+version = "0.26.1"
dependencies = [
"aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cexpr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/Cargo.toml b/Cargo.toml
index 7a8567ef..0f17dc8e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@ name = "bindgen"
readme = "README.md"
repository = "https://github.com/servo/rust-bindgen"
documentation = "https://docs.rs/bindgen"
-version = "0.26.0"
+version = "0.26.1"
build = "build.rs"
exclude = [
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 4f0ea371..2d60d0e8 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -1286,12 +1286,19 @@ impl<'a> FieldCodegen<'a> for Bitfield {
impl XxxIgnored {
#[inline]
pub fn $getter_name(&self) -> $bitfield_ty {
- let mask = $mask as $unit_field_int_ty;
- let unit_field_val: $unit_field_int_ty = unsafe {
- ::$prefix::ptr::read_unaligned(
- &self.$unit_field_ident as *const _ as *const $unit_field_int_ty
+ let mut unit_field_val: $unit_field_int_ty = unsafe {
+ ::$prefix::mem::uninitialized()
+ };
+
+ unsafe {
+ ::$prefix::ptr::copy_nonoverlapping(
+ &self.$unit_field_ident as *const _ as *const u8,
+ &mut unit_field_val as *mut $unit_field_int_ty as *mut u8,
+ ::$prefix::mem::size_of::<$unit_field_int_ty>(),
)
};
+
+ let mask = $mask as $unit_field_int_ty;
let val = (unit_field_val & mask) >> $offset;
unsafe {
::$prefix::mem::transmute(val as $bitfield_int_ty)
@@ -1304,17 +1311,25 @@ impl<'a> FieldCodegen<'a> for Bitfield {
let val = val as $bitfield_int_ty as $unit_field_int_ty;
let mut unit_field_val: $unit_field_int_ty = unsafe {
- ::$prefix::ptr::read_unaligned(
- &self.$unit_field_ident as *const _ as *const $unit_field_int_ty)
+ ::$prefix::mem::uninitialized()
+ };
+
+ unsafe {
+ ::$prefix::ptr::copy_nonoverlapping(
+ &self.$unit_field_ident as *const _ as *const u8,
+ &mut unit_field_val as *mut $unit_field_int_ty as *mut u8,
+ ::$prefix::mem::size_of::<$unit_field_int_ty>(),
+ )
};
unit_field_val &= !mask;
unit_field_val |= (val << $offset) & mask;
unsafe {
- ::$prefix::ptr::write_unaligned(
- &mut self.$unit_field_ident as *mut _ as *mut $unit_field_int_ty,
- unit_field_val
+ ::$prefix::ptr::copy_nonoverlapping(
+ &unit_field_val as *const _ as *const u8,
+ &mut self.$unit_field_ident as *mut _ as *mut u8,
+ ::$prefix::mem::size_of::<$unit_field_int_ty>(),
);
}
}
diff --git a/tests/expectations/tests/bitfield-32bit-overflow.rs b/tests/expectations/tests/bitfield-32bit-overflow.rs
index ff11d5bc..d179ddf9 100644
--- a/tests/expectations/tests/bitfield-32bit-overflow.rs
+++ b/tests/expectations/tests/bitfield-32bit-overflow.rs
@@ -23,12 +23,15 @@ impl Clone for MuchBitfield {
impl MuchBitfield {
#[inline]
pub fn m0(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 1u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -36,26 +39,35 @@ impl MuchBitfield {
pub fn set_m0(&mut self, val: ::std::os::raw::c_char) {
let mask = 1u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m1(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 2u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -63,26 +75,35 @@ impl MuchBitfield {
pub fn set_m1(&mut self, val: ::std::os::raw::c_char) {
let mask = 2u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m2(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 4u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -90,26 +111,35 @@ impl MuchBitfield {
pub fn set_m2(&mut self, val: ::std::os::raw::c_char) {
let mask = 4u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m3(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 8u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -117,26 +147,35 @@ impl MuchBitfield {
pub fn set_m3(&mut self, val: ::std::os::raw::c_char) {
let mask = 8u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m4(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 16u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 4usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -144,26 +183,35 @@ impl MuchBitfield {
pub fn set_m4(&mut self, val: ::std::os::raw::c_char) {
let mask = 16u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 4usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m5(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 32u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 5usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -171,26 +219,35 @@ impl MuchBitfield {
pub fn set_m5(&mut self, val: ::std::os::raw::c_char) {
let mask = 32u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 5usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m6(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 64u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 6usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -198,26 +255,35 @@ impl MuchBitfield {
pub fn set_m6(&mut self, val: ::std::os::raw::c_char) {
let mask = 64u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 6usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m7(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 128u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -225,26 +291,35 @@ impl MuchBitfield {
pub fn set_m7(&mut self, val: ::std::os::raw::c_char) {
let mask = 128u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m8(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 256u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 8usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -252,26 +327,35 @@ impl MuchBitfield {
pub fn set_m8(&mut self, val: ::std::os::raw::c_char) {
let mask = 256u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 8usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m9(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 512u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 9usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -279,26 +363,35 @@ impl MuchBitfield {
pub fn set_m9(&mut self, val: ::std::os::raw::c_char) {
let mask = 512u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 9usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m10(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 1024u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 10usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -306,26 +399,35 @@ impl MuchBitfield {
pub fn set_m10(&mut self, val: ::std::os::raw::c_char) {
let mask = 1024u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 10usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m11(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 2048u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 11usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -333,26 +435,35 @@ impl MuchBitfield {
pub fn set_m11(&mut self, val: ::std::os::raw::c_char) {
let mask = 2048u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 11usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m12(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 4096u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 12usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -360,26 +471,35 @@ impl MuchBitfield {
pub fn set_m12(&mut self, val: ::std::os::raw::c_char) {
let mask = 4096u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 12usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m13(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 8192u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 13usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -387,26 +507,35 @@ impl MuchBitfield {
pub fn set_m13(&mut self, val: ::std::os::raw::c_char) {
let mask = 8192u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 13usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m14(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 16384u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 14usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -414,26 +543,35 @@ impl MuchBitfield {
pub fn set_m14(&mut self, val: ::std::os::raw::c_char) {
let mask = 16384u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 14usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m15(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 32768u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 15usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -441,26 +579,35 @@ impl MuchBitfield {
pub fn set_m15(&mut self, val: ::std::os::raw::c_char) {
let mask = 32768u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 15usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m16(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 65536u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -468,26 +615,35 @@ impl MuchBitfield {
pub fn set_m16(&mut self, val: ::std::os::raw::c_char) {
let mask = 65536u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m17(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 131072u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 17usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -495,26 +651,35 @@ impl MuchBitfield {
pub fn set_m17(&mut self, val: ::std::os::raw::c_char) {
let mask = 131072u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 17usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m18(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 262144u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 18usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -522,26 +687,35 @@ impl MuchBitfield {
pub fn set_m18(&mut self, val: ::std::os::raw::c_char) {
let mask = 262144u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 18usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m19(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 524288u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 19usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -549,26 +723,35 @@ impl MuchBitfield {
pub fn set_m19(&mut self, val: ::std::os::raw::c_char) {
let mask = 524288u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 19usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m20(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 1048576u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 20usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -576,26 +759,35 @@ impl MuchBitfield {
pub fn set_m20(&mut self, val: ::std::os::raw::c_char) {
let mask = 1048576u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 20usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m21(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 2097152u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 21usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -603,26 +795,35 @@ impl MuchBitfield {
pub fn set_m21(&mut self, val: ::std::os::raw::c_char) {
let mask = 2097152u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 21usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m22(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 4194304u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 22usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -630,26 +831,35 @@ impl MuchBitfield {
pub fn set_m22(&mut self, val: ::std::os::raw::c_char) {
let mask = 4194304u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 22usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m23(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 8388608u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 23usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -657,26 +867,35 @@ impl MuchBitfield {
pub fn set_m23(&mut self, val: ::std::os::raw::c_char) {
let mask = 8388608u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 23usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m24(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 16777216u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 24usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -684,26 +903,35 @@ impl MuchBitfield {
pub fn set_m24(&mut self, val: ::std::os::raw::c_char) {
let mask = 16777216u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 24usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m25(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 33554432u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 25usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -711,26 +939,35 @@ impl MuchBitfield {
pub fn set_m25(&mut self, val: ::std::os::raw::c_char) {
let mask = 33554432u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 25usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m26(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 67108864u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 26usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -738,26 +975,35 @@ impl MuchBitfield {
pub fn set_m26(&mut self, val: ::std::os::raw::c_char) {
let mask = 67108864u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 26usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m27(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 134217728u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 27usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -765,26 +1011,35 @@ impl MuchBitfield {
pub fn set_m27(&mut self, val: ::std::os::raw::c_char) {
let mask = 134217728u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 27usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m28(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 268435456u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 28usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -792,26 +1047,35 @@ impl MuchBitfield {
pub fn set_m28(&mut self, val: ::std::os::raw::c_char) {
let mask = 268435456u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 28usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m29(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 536870912u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 29usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -819,26 +1083,35 @@ impl MuchBitfield {
pub fn set_m29(&mut self, val: ::std::os::raw::c_char) {
let mask = 536870912u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 29usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m30(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 1073741824u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 30usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -846,26 +1119,35 @@ impl MuchBitfield {
pub fn set_m30(&mut self, val: ::std::os::raw::c_char) {
let mask = 1073741824u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 30usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m31(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 2147483648u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 31usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -873,26 +1155,35 @@ impl MuchBitfield {
pub fn set_m31(&mut self, val: ::std::os::raw::c_char) {
let mask = 2147483648u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 31usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn m32(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 4294967296u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 32usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -900,16 +1191,22 @@ impl MuchBitfield {
pub fn set_m32(&mut self, val: ::std::os::raw::c_char) {
let mask = 4294967296u64 as u64;
let val = val as u8 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 32usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
diff --git a/tests/expectations/tests/bitfield-method-same-name.rs b/tests/expectations/tests/bitfield-method-same-name.rs
index 74dd11e2..dd6b286f 100644
--- a/tests/expectations/tests/bitfield-method-same-name.rs
+++ b/tests/expectations/tests/bitfield-method-same-name.rs
@@ -35,12 +35,15 @@ impl Clone for Foo {
impl Foo {
#[inline]
pub fn type__bindgen_bitfield(&self) -> ::std::os::raw::c_char {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 7u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -49,16 +52,22 @@ impl Foo {
val: ::std::os::raw::c_char) {
let mask = 7u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
diff --git a/tests/expectations/tests/bitfield_align.rs b/tests/expectations/tests/bitfield_align.rs
index 233ae5ab..e2db1329 100644
--- a/tests/expectations/tests/bitfield_align.rs
+++ b/tests/expectations/tests/bitfield_align.rs
@@ -33,12 +33,15 @@ impl Clone for A {
impl A {
#[inline]
pub fn b1(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 1u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -46,26 +49,35 @@ impl A {
pub fn set_b1(&mut self, val: ::std::os::raw::c_uint) {
let mask = 1u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b2(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 2u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -73,26 +85,35 @@ impl A {
pub fn set_b2(&mut self, val: ::std::os::raw::c_uint) {
let mask = 2u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b3(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 4u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -100,26 +121,35 @@ impl A {
pub fn set_b3(&mut self, val: ::std::os::raw::c_uint) {
let mask = 4u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b4(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 8u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -127,26 +157,35 @@ impl A {
pub fn set_b4(&mut self, val: ::std::os::raw::c_uint) {
let mask = 8u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b5(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 16u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 4usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -154,26 +193,35 @@ impl A {
pub fn set_b5(&mut self, val: ::std::os::raw::c_uint) {
let mask = 16u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 4usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b6(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 32u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 5usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -181,26 +229,35 @@ impl A {
pub fn set_b6(&mut self, val: ::std::os::raw::c_uint) {
let mask = 32u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 5usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b7(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 64u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 6usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -208,26 +265,35 @@ impl A {
pub fn set_b7(&mut self, val: ::std::os::raw::c_uint) {
let mask = 64u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 6usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b8(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 128u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -235,26 +301,35 @@ impl A {
pub fn set_b8(&mut self, val: ::std::os::raw::c_uint) {
let mask = 128u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b9(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 256u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 8usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -262,26 +337,35 @@ impl A {
pub fn set_b9(&mut self, val: ::std::os::raw::c_uint) {
let mask = 256u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 8usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn b10(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 512u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 9usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -289,16 +373,22 @@ impl A {
pub fn set_b10(&mut self, val: ::std::os::raw::c_uint) {
let mask = 512u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 9usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
@@ -366,12 +456,15 @@ impl Clone for B {
impl B {
#[inline]
pub fn foo(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 2147483647u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -379,26 +472,35 @@ impl B {
pub fn set_foo(&mut self, val: ::std::os::raw::c_uint) {
let mask = 2147483647u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn bar(&self) -> ::std::os::raw::c_uchar {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 2147483648u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 31usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -406,16 +508,22 @@ impl B {
pub fn set_bar(&mut self, val: ::std::os::raw::c_uchar) {
let mask = 2147483648u64 as u32;
let val = val as u8 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 31usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
@@ -456,12 +564,15 @@ impl Clone for C {
impl C {
#[inline]
pub fn b1(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 1u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -469,26 +580,35 @@ impl C {
pub fn set_b1(&mut self, val: ::std::os::raw::c_uint) {
let mask = 1u64 as u8;
let val = val as u32 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn b2(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 2u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -496,16 +616,22 @@ impl C {
pub fn set_b2(&mut self, val: ::std::os::raw::c_uint) {
let mask = 2u64 as u8;
let val = val as u32 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
@@ -535,12 +661,15 @@ impl Clone for Date1 {
impl Date1 {
#[inline]
pub fn nWeekDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 7u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -548,26 +677,35 @@ impl Date1 {
pub fn set_nWeekDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 7u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonthDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 504u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -575,26 +713,35 @@ impl Date1 {
pub fn set_nMonthDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 504u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonth(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 15872u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 9usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -602,26 +749,35 @@ impl Date1 {
pub fn set_nMonth(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 15872u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 9usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nYear(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 16711680u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -629,16 +785,22 @@ impl Date1 {
pub fn set_nYear(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 16711680u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
@@ -678,12 +840,15 @@ impl Clone for Date2 {
impl Date2 {
#[inline]
pub fn nWeekDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 7u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -691,26 +856,35 @@ impl Date2 {
pub fn set_nWeekDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 7u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonthDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 504u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -718,26 +892,35 @@ impl Date2 {
pub fn set_nMonthDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 504u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonth(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 15872u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 9usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -745,26 +928,35 @@ impl Date2 {
pub fn set_nMonth(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 15872u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 9usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nYear(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 16711680u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -772,26 +964,35 @@ impl Date2 {
pub fn set_nYear(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 16711680u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn byte(&self) -> ::std::os::raw::c_uchar {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 4278190080u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 24usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -799,16 +1000,22 @@ impl Date2 {
pub fn set_byte(&mut self, val: ::std::os::raw::c_uchar) {
let mask = 4278190080u64 as u32;
let val = val as u8 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 24usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
@@ -857,12 +1064,15 @@ impl Clone for Date3 {
impl Date3 {
#[inline]
pub fn nWeekDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 7u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -870,26 +1080,35 @@ impl Date3 {
pub fn set_nWeekDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 7u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonthDay(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 504u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -897,26 +1116,35 @@ impl Date3 {
pub fn set_nMonthDay(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 504u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nMonth(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 15872u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 9usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -924,26 +1152,35 @@ impl Date3 {
pub fn set_nMonth(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 15872u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 9usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn nYear(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 16711680u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -951,16 +1188,22 @@ impl Date3 {
pub fn set_nYear(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 16711680u64 as u32;
let val = val as u16 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
diff --git a/tests/expectations/tests/bitfield_align_2.rs b/tests/expectations/tests/bitfield_align_2.rs
index f0d444a4..f92f09db 100644
--- a/tests/expectations/tests/bitfield_align_2.rs
+++ b/tests/expectations/tests/bitfield_align_2.rs
@@ -29,12 +29,15 @@ impl Default for TaggedPtr {
impl TaggedPtr {
#[inline]
pub fn tag(&self) -> MyEnum {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 3u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -42,26 +45,35 @@ impl TaggedPtr {
pub fn set_tag(&mut self, val: MyEnum) {
let mask = 3u64 as u64;
let val = val as u32 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn ptr(&self) -> ::std::os::raw::c_long {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 18446744073709551612u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -69,16 +81,22 @@ impl TaggedPtr {
pub fn set_ptr(&mut self, val: ::std::os::raw::c_long) {
let mask = 18446744073709551612u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
diff --git a/tests/expectations/tests/bitfield_method_mangling.rs b/tests/expectations/tests/bitfield_method_mangling.rs
index 86c0dd95..855ae72b 100644
--- a/tests/expectations/tests/bitfield_method_mangling.rs
+++ b/tests/expectations/tests/bitfield_method_mangling.rs
@@ -26,12 +26,15 @@ impl Clone for mach_msg_type_descriptor_t {
impl mach_msg_type_descriptor_t {
#[inline]
pub fn pad3(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 16777215u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -39,26 +42,35 @@ impl mach_msg_type_descriptor_t {
pub fn set_pad3(&mut self, val: ::std::os::raw::c_uint) {
let mask = 16777215u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn type_(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 4278190080u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 24usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -66,16 +78,22 @@ impl mach_msg_type_descriptor_t {
pub fn set_type(&mut self, val: ::std::os::raw::c_uint) {
let mask = 4278190080u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 24usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
diff --git a/tests/expectations/tests/jsval_layout_opaque.rs b/tests/expectations/tests/jsval_layout_opaque.rs
index 02e282a6..980adbcf 100644
--- a/tests/expectations/tests/jsval_layout_opaque.rs
+++ b/tests/expectations/tests/jsval_layout_opaque.rs
@@ -132,12 +132,15 @@ impl Default for jsval_layout__bindgen_ty_1 {
impl jsval_layout__bindgen_ty_1 {
#[inline]
pub fn payload47(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 140737488355327u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -145,26 +148,35 @@ impl jsval_layout__bindgen_ty_1 {
pub fn set_payload47(&mut self, val: u64) {
let mask = 140737488355327u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn tag(&self) -> JSValueTag {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 18446603336221196288u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 47usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -172,16 +184,22 @@ impl jsval_layout__bindgen_ty_1 {
pub fn set_tag(&mut self, val: JSValueTag) {
let mask = 18446603336221196288u64 as u64;
let val = val as u32 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 47usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
diff --git a/tests/expectations/tests/layout_align.rs b/tests/expectations/tests/layout_align.rs
index 2a6c08b0..a8f981e8 100644
--- a/tests/expectations/tests/layout_align.rs
+++ b/tests/expectations/tests/layout_align.rs
@@ -92,12 +92,15 @@ impl Clone for rte_eth_link {
impl rte_eth_link {
#[inline]
pub fn link_duplex(&self) -> u16 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 1u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -105,26 +108,35 @@ impl rte_eth_link {
pub fn set_link_duplex(&mut self, val: u16) {
let mask = 1u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn link_autoneg(&self) -> u16 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 2u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -132,26 +144,35 @@ impl rte_eth_link {
pub fn set_link_autoneg(&mut self, val: u16) {
let mask = 2u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn link_status(&self) -> u16 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 4u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -159,16 +180,22 @@ impl rte_eth_link {
pub fn set_link_status(&mut self, val: u16) {
let mask = 4u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
diff --git a/tests/expectations/tests/layout_eth_conf.rs b/tests/expectations/tests/layout_eth_conf.rs
index 0c8619ac..d35f8d81 100644
--- a/tests/expectations/tests/layout_eth_conf.rs
+++ b/tests/expectations/tests/layout_eth_conf.rs
@@ -121,12 +121,15 @@ impl Default for rte_eth_rxmode {
impl rte_eth_rxmode {
#[inline]
pub fn header_split(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 1u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -134,26 +137,35 @@ impl rte_eth_rxmode {
pub fn set_header_split(&mut self, val: u16) {
let mask = 1u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn hw_ip_checksum(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 2u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -161,26 +173,35 @@ impl rte_eth_rxmode {
pub fn set_hw_ip_checksum(&mut self, val: u16) {
let mask = 2u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn hw_vlan_filter(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 4u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -188,26 +209,35 @@ impl rte_eth_rxmode {
pub fn set_hw_vlan_filter(&mut self, val: u16) {
let mask = 4u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn hw_vlan_strip(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 8u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -215,26 +245,35 @@ impl rte_eth_rxmode {
pub fn set_hw_vlan_strip(&mut self, val: u16) {
let mask = 8u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn hw_vlan_extend(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 16u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 4usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -242,26 +281,35 @@ impl rte_eth_rxmode {
pub fn set_hw_vlan_extend(&mut self, val: u16) {
let mask = 16u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 4usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn jumbo_frame(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 32u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 5usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -269,26 +317,35 @@ impl rte_eth_rxmode {
pub fn set_jumbo_frame(&mut self, val: u16) {
let mask = 32u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 5usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn hw_strip_crc(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 64u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 6usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -296,26 +353,35 @@ impl rte_eth_rxmode {
pub fn set_hw_strip_crc(&mut self, val: u16) {
let mask = 64u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 6usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn enable_scatter(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 128u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -323,26 +389,35 @@ impl rte_eth_rxmode {
pub fn set_enable_scatter(&mut self, val: u16) {
let mask = 128u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn enable_lro(&self) -> u16 {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 256u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 8usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -350,16 +425,22 @@ impl rte_eth_rxmode {
pub fn set_enable_lro(&mut self, val: u16) {
let mask = 256u64 as u16;
let val = val as u16 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 8usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
@@ -455,12 +536,15 @@ impl Default for rte_eth_txmode {
impl rte_eth_txmode {
#[inline]
pub fn hw_vlan_reject_tagged(&self) -> u8 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 1u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -468,26 +552,35 @@ impl rte_eth_txmode {
pub fn set_hw_vlan_reject_tagged(&mut self, val: u8) {
let mask = 1u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn hw_vlan_reject_untagged(&self) -> u8 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 2u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -495,26 +588,35 @@ impl rte_eth_txmode {
pub fn set_hw_vlan_reject_untagged(&mut self, val: u8) {
let mask = 2u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn hw_vlan_insert_pvid(&self) -> u8 {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 4u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -522,16 +624,22 @@ impl rte_eth_txmode {
pub fn set_hw_vlan_insert_pvid(&mut self, val: u8) {
let mask = 4u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
diff --git a/tests/expectations/tests/layout_mbuf.rs b/tests/expectations/tests/layout_mbuf.rs
index faf9002f..d0598e62 100644
--- a/tests/expectations/tests/layout_mbuf.rs
+++ b/tests/expectations/tests/layout_mbuf.rs
@@ -178,12 +178,15 @@ impl Clone for rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
#[inline]
pub fn l2_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 15u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -191,26 +194,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_l2_type(&mut self, val: u32) {
let mask = 15u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn l3_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 240u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 4usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -218,26 +230,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_l3_type(&mut self, val: u32) {
let mask = 240u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 4usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn l4_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 3840u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 8usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -245,26 +266,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_l4_type(&mut self, val: u32) {
let mask = 3840u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 8usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn tun_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 61440u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 12usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -272,26 +302,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_tun_type(&mut self, val: u32) {
let mask = 61440u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 12usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn inner_l2_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 983040u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -299,26 +338,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_inner_l2_type(&mut self, val: u32) {
let mask = 983040u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn inner_l3_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 15728640u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 20usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -326,26 +374,35 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_inner_l3_type(&mut self, val: u32) {
let mask = 15728640u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 20usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn inner_l4_type(&self) -> u32 {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 251658240u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 24usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -353,16 +410,22 @@ impl rte_mbuf__bindgen_ty_2__bindgen_ty_1 {
pub fn set_inner_l4_type(&mut self, val: u32) {
let mask = 251658240u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 24usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
@@ -651,12 +714,15 @@ impl Clone for rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
#[inline]
pub fn l2_len(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 127u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -664,26 +730,35 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_l2_len(&mut self, val: u64) {
let mask = 127u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn l3_len(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 65408u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -691,26 +766,35 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_l3_len(&mut self, val: u64) {
let mask = 65408u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn l4_len(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 16711680u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -718,26 +802,35 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_l4_len(&mut self, val: u64) {
let mask = 16711680u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn tso_segsz(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 1099494850560u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 24usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -745,26 +838,35 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_tso_segsz(&mut self, val: u64) {
let mask = 1099494850560u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 24usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn outer_l3_len(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 561850441793536u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 40usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -772,26 +874,35 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_outer_l3_len(&mut self, val: u64) {
let mask = 561850441793536u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 40usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn outer_l2_len(&self) -> u64 {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 71494644084506624u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 49usize;
unsafe { ::std::mem::transmute(val as u64) }
}
@@ -799,16 +910,22 @@ impl rte_mbuf__bindgen_ty_5__bindgen_ty_1 {
pub fn set_outer_l2_len(&mut self, val: u64) {
let mask = 71494644084506624u64 as u64;
let val = val as u64 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 49usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
diff --git a/tests/expectations/tests/only_bitfields.rs b/tests/expectations/tests/only_bitfields.rs
index 6e4d6270..64a1fd79 100644
--- a/tests/expectations/tests/only_bitfields.rs
+++ b/tests/expectations/tests/only_bitfields.rs
@@ -23,12 +23,15 @@ impl Clone for C {
impl C {
#[inline]
pub fn a(&self) -> bool {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 1u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -36,26 +39,35 @@ impl C {
pub fn set_a(&mut self, val: bool) {
let mask = 1u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn b(&self) -> bool {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 254u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -63,16 +75,22 @@ impl C {
pub fn set_b(&mut self, val: bool) {
let mask = 254u64 as u8;
let val = val as u8 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
diff --git a/tests/expectations/tests/struct_with_bitfields.rs b/tests/expectations/tests/struct_with_bitfields.rs
index 2c6a5f2b..b93b441f 100644
--- a/tests/expectations/tests/struct_with_bitfields.rs
+++ b/tests/expectations/tests/struct_with_bitfields.rs
@@ -29,12 +29,15 @@ impl Clone for bitfield {
impl bitfield {
#[inline]
pub fn a(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 1u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -42,26 +45,35 @@ impl bitfield {
pub fn set_a(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 1u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn b(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 2u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 1usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -69,26 +81,35 @@ impl bitfield {
pub fn set_b(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 2u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 1usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn c(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 4u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 2usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -96,26 +117,35 @@ impl bitfield {
pub fn set_c(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 4u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 2usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
pub fn d(&self) -> ::std::os::raw::c_ushort {
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
let mask = 192u64 as u8;
- let unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
let val = (unit_field_val & mask) >> 6usize;
unsafe { ::std::mem::transmute(val as u16) }
}
@@ -123,16 +153,22 @@ impl bitfield {
pub fn set_d(&mut self, val: ::std::os::raw::c_ushort) {
let mask = 192u64 as u8;
let val = val as u16 as u8;
- let mut unit_field_val: u8 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u8)
- };
+ let mut unit_field_val: u8 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u8 as
+ *mut u8,
+ ::std::mem::size_of::<u8>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 6usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u8, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u8>());
}
}
#[inline]
@@ -149,12 +185,15 @@ impl bitfield {
}
#[inline]
pub fn f(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 3u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -162,26 +201,35 @@ impl bitfield {
pub fn set_f(&mut self, val: ::std::os::raw::c_uint) {
let mask = 3u64 as u64;
let val = val as u32 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
pub fn g(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
let mask = 18446744069414584320u64 as u64;
- let unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u64)
- };
let val = (unit_field_val & mask) >> 32usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -189,16 +237,22 @@ impl bitfield {
pub fn set_g(&mut self, val: ::std::os::raw::c_uint) {
let mask = 18446744069414584320u64 as u64;
let val = val as u32 as u64;
- let mut unit_field_val: u64 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u64)
- };
+ let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u64 as
+ *mut u8,
+ ::std::mem::size_of::<u64>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 32usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u64, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u64>());
}
}
#[inline]
diff --git a/tests/expectations/tests/union_with_anon_struct_bitfield.rs b/tests/expectations/tests/union_with_anon_struct_bitfield.rs
index a60d1115..e6acd105 100644
--- a/tests/expectations/tests/union_with_anon_struct_bitfield.rs
+++ b/tests/expectations/tests/union_with_anon_struct_bitfield.rs
@@ -54,12 +54,15 @@ impl Clone for foo__bindgen_ty_1 {
impl foo__bindgen_ty_1 {
#[inline]
pub fn b(&self) -> ::std::os::raw::c_int {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 127u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -67,26 +70,35 @@ impl foo__bindgen_ty_1 {
pub fn set_b(&mut self, val: ::std::os::raw::c_int) {
let mask = 127u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn c(&self) -> ::std::os::raw::c_int {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 4294967168u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -94,16 +106,22 @@ impl foo__bindgen_ty_1 {
pub fn set_c(&mut self, val: ::std::os::raw::c_int) {
let mask = 4294967168u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
diff --git a/tests/expectations/tests/weird_bitfields.rs b/tests/expectations/tests/weird_bitfields.rs
index 5b85c4e3..0b97c368 100644
--- a/tests/expectations/tests/weird_bitfields.rs
+++ b/tests/expectations/tests/weird_bitfields.rs
@@ -106,12 +106,15 @@ impl Default for Weird {
impl Weird {
#[inline]
pub fn bitTest(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 65535u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -119,26 +122,35 @@ impl Weird {
pub fn set_bitTest(&mut self, val: ::std::os::raw::c_uint) {
let mask = 65535u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
pub fn bitTest2(&self) -> ::std::os::raw::c_uint {
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
let mask = 2147418112u64 as u32;
- let unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
let val = (unit_field_val & mask) >> 16usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -146,16 +158,22 @@ impl Weird {
pub fn set_bitTest2(&mut self, val: ::std::os::raw::c_uint) {
let mask = 2147418112u64 as u32;
let val = val as u32 as u32;
- let mut unit_field_val: u32 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_1 as *const _ as
- *const u32)
- };
+ let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u32 as
+ *mut u8,
+ ::std::mem::size_of::<u32>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 16usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_1 as *mut _ as
- *mut u32, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_1 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u32>());
}
}
#[inline]
@@ -166,12 +184,15 @@ impl Weird {
}
#[inline]
pub fn mFillOpacitySource(&self) -> nsStyleSVGOpacitySource {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 7u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 0usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -179,26 +200,35 @@ impl Weird {
pub fn set_mFillOpacitySource(&mut self, val: nsStyleSVGOpacitySource) {
let mask = 7u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 0usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn mStrokeOpacitySource(&self) -> nsStyleSVGOpacitySource {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 56u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 3usize;
unsafe { ::std::mem::transmute(val as u32) }
}
@@ -206,26 +236,35 @@ impl Weird {
pub fn set_mStrokeOpacitySource(&mut self, val: nsStyleSVGOpacitySource) {
let mask = 56u64 as u16;
let val = val as u32 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 3usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn mStrokeDasharrayFromObject(&self) -> bool {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 64u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 6usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -233,26 +272,35 @@ impl Weird {
pub fn set_mStrokeDasharrayFromObject(&mut self, val: bool) {
let mask = 64u64 as u16;
let val = val as u8 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 6usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn mStrokeDashoffsetFromObject(&self) -> bool {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 128u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 7usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -260,26 +308,35 @@ impl Weird {
pub fn set_mStrokeDashoffsetFromObject(&mut self, val: bool) {
let mask = 128u64 as u16;
let val = val as u8 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 7usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]
pub fn mStrokeWidthFromObject(&self) -> bool {
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
let mask = 256u64 as u16;
- let unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
let val = (unit_field_val & mask) >> 8usize;
unsafe { ::std::mem::transmute(val as u8) }
}
@@ -287,16 +344,22 @@ impl Weird {
pub fn set_mStrokeWidthFromObject(&mut self, val: bool) {
let mask = 256u64 as u16;
let val = val as u8 as u16;
- let mut unit_field_val: u16 =
- unsafe {
- ::std::ptr::read_unaligned(&self._bitfield_2 as *const _ as
- *const u16)
- };
+ let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
+ unsafe {
+ ::std::ptr::copy_nonoverlapping(&self._bitfield_2 as *const _ as
+ *const u8,
+ &mut unit_field_val as *mut u16 as
+ *mut u8,
+ ::std::mem::size_of::<u16>())
+ };
unit_field_val &= !mask;
unit_field_val |= (val << 8usize) & mask;
unsafe {
- ::std::ptr::write_unaligned(&mut self._bitfield_2 as *mut _ as
- *mut u16, unit_field_val);
+ ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
+ *const u8,
+ &mut self._bitfield_2 as *mut _ as
+ *mut u8,
+ ::std::mem::size_of::<u16>());
}
}
#[inline]