diff --git a/src/os/unix/mod.rs b/src/os/unix/mod.rs index 3f355cc..8c9df16 100644 --- a/src/os/unix/mod.rs +++ b/src/os/unix/mod.rs @@ -179,7 +179,8 @@ impl ::std::ops::Deref for Symbol { type Target = T; fn deref(&self) -> &T { unsafe { - &*(&self.pointer as *const _ as *const T) + // Additional reference level for a dereference on `deref` return value. + ::std::mem::transmute(&self.pointer) } } } diff --git a/src/os/windows/mod.rs b/src/os/windows/mod.rs index 9e7e3d1..9d1d985 100644 --- a/src/os/windows/mod.rs +++ b/src/os/windows/mod.rs @@ -120,7 +120,8 @@ impl ::std::ops::Deref for Symbol { type Target = T; fn deref(&self) -> &T { unsafe { - &*(&self.pointer as *const _ as *const T) + // Additional reference level for a dereference on `deref` return value. + ::std::mem::transmute(&self.pointer) } } }