blob: 96e944ed25490d083db582d777f9ce128358d6e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-- Bug doesn't show up on -O0
{-# OPTIONS_GHC -O #-}
module Cgrun067A (miscompiledFn) where
import Foreign.C
import Foreign
miscompiledFn :: CString -> IO String
miscompiledFn cp = do
l <- lengthArray0 0 cp
if l <= 0 then return "" else loop "" (l-1)
where
loop s i = do
xval <- peekElemOff cp i
let val = castCCharToChar xval
val `seq` if i <= 0 then return (val:s) else loop (val:s) (i-1)
|