diff --git a/lib/codegen/src/binemit/memorysink.rs b/lib/codegen/src/binemit/memorysink.rs index 34380d2464..d25513d27a 100644 --- a/lib/codegen/src/binemit/memorysink.rs +++ b/lib/codegen/src/binemit/memorysink.rs @@ -84,6 +84,7 @@ impl<'a> CodeSink for MemoryCodeSink<'a> { fn put2(&mut self, x: u16) { unsafe { + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] write_unaligned(self.data.offset(self.offset) as *mut u16, x); } self.offset += 2; @@ -91,6 +92,7 @@ impl<'a> CodeSink for MemoryCodeSink<'a> { fn put4(&mut self, x: u32) { unsafe { + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] write_unaligned(self.data.offset(self.offset) as *mut u32, x); } self.offset += 4; @@ -98,6 +100,7 @@ impl<'a> CodeSink for MemoryCodeSink<'a> { fn put8(&mut self, x: u64) { unsafe { + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] write_unaligned(self.data.offset(self.offset) as *mut u64, x); } self.offset += 8; diff --git a/lib/simplejit/src/backend.rs b/lib/simplejit/src/backend.rs index 497ac1bb15..5576c02e32 100644 --- a/lib/simplejit/src/backend.rs +++ b/lib/simplejit/src/backend.rs @@ -238,14 +238,17 @@ impl<'simple_jit_backend> Backend for SimpleJITBackend { match reloc { Reloc::Abs4 => { // TODO: Handle overflow. + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] unsafe { write_unaligned(at as *mut u32, what as u32) }; } Reloc::Abs8 => { + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] unsafe { write_unaligned(at as *mut u64, what as u64) }; } Reloc::X86PCRel4 => { // TODO: Handle overflow. let pcrel = ((what as isize) - (at as isize)) as i32; + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] unsafe { write_unaligned(at as *mut i32, pcrel) }; } Reloc::X86GOTPCRel4 | @@ -295,9 +298,11 @@ impl<'simple_jit_backend> Backend for SimpleJITBackend { match reloc { Reloc::Abs4 => { // TODO: Handle overflow. + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] unsafe { write_unaligned(at as *mut u32, what as u32) }; } Reloc::Abs8 => { + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] unsafe { write_unaligned(at as *mut u64, what as u64) }; } Reloc::X86PCRel4 |