summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/Stable.hs
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/GHC/Stable.hs')
-rw-r--r--libraries/base/GHC/Stable.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/libraries/base/GHC/Stable.hs b/libraries/base/GHC/Stable.hs
index 1ea0d6d166..3cd26302f4 100644
--- a/libraries/base/GHC/Stable.hs
+++ b/libraries/base/GHC/Stable.hs
@@ -31,6 +31,8 @@ module GHC.Stable (
import GHC.Ptr
import GHC.Base
+import Unsafe.Coerce ( unsafeCoerceAddr )
+
-----------------------------------------------------------------------------
-- Stable Pointers
@@ -85,7 +87,7 @@ foreign import ccall unsafe "hs_free_stable_ptr" freeStablePtr :: StablePtr a ->
-- undefined behaviour.
--
castStablePtrToPtr :: StablePtr a -> Ptr ()
-castStablePtrToPtr (StablePtr s) = Ptr (unsafeCoerce# s)
+castStablePtrToPtr (StablePtr s) = Ptr (unsafeCoerceAddr s)
-- |
@@ -99,7 +101,7 @@ castStablePtrToPtr (StablePtr s) = Ptr (unsafeCoerce# s)
-- 'castStablePtrToPtr'.
--
castPtrToStablePtr :: Ptr () -> StablePtr a
-castPtrToStablePtr (Ptr a) = StablePtr (unsafeCoerce# a)
+castPtrToStablePtr (Ptr a) = StablePtr (unsafeCoerceAddr a)
-- | @since 2.01
instance Eq (StablePtr a) where