c2hs-0.28.1: tests/bugs/issue-10/Issue10.chs
module Main where
import Control.Monad
#include "issue10.h"
check :: Int -> Int -> IO ()
check sz szexpect =
putStrLn $ if sz == szexpect then "SAME"
else ("DIFF: " ++ show sz ++ " vs. " ++ show szexpect)
main :: IO ()
main = do
let sz1 = {# sizeof S1 #} :: Int
sz1expect <- liftM fromIntegral {# call size_of_s1 #} :: IO Int
let sz2 = {# sizeof S2 #} :: Int
sz2expect <- liftM fromIntegral {# call size_of_s2 #} :: IO Int
let sz3 = {# sizeof S3 #} :: Int
sz3expect <- liftM fromIntegral {# call size_of_s3 #} :: IO Int
let sz4 = {# sizeof S4 #} :: Int
sz4expect <- liftM fromIntegral {# call size_of_s4 #} :: IO Int
let sz5 = {# sizeof S5 #} :: Int
sz5expect <- liftM fromIntegral {# call size_of_s5 #} :: IO Int
check sz1 sz1expect
check sz2 sz2expect
check sz3 sz3expect
check sz4 sz4expect
check sz5 sz5expect