commit 87cce463a07fd1675e4edcef5b34498570c11503
parent d40f9405d179d7902e260227b4c35af51cf6514e
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 10 Oct 2026 15:23:14 +0400
lib: bind sha256_arm_available as returning CInt
The C function returns an 'int'; binding it as 'Int' read a 64-bit
register whose upper half AAPCS64 leaves unspecified.
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/Crypto/Hash/SHA256/Arm.hs b/lib/Crypto/Hash/SHA256/Arm.hs
@@ -24,6 +24,7 @@ import qualified Data.ByteString as BS
import qualified Data.ByteString.Internal as BI
import qualified Data.ByteString.Unsafe as BU
import Data.Word (Word8, Word32, Word64)
+import Foreign.C.Types (CInt(..))
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (Ptr)
import qualified GHC.Exts as Exts
@@ -38,7 +39,7 @@ foreign import ccall unsafe "sha256_block_arm"
c_sha256_block :: Ptr Word32 -> Ptr Word32 -> IO ()
foreign import ccall unsafe "sha256_arm_available"
- c_sha256_arm_available :: IO Int
+ c_sha256_arm_available :: IO CInt
-- utilities ------------------------------------------------------------------