module LLVM.FFI.Linker where
import LLVM.FFI.Core
import Foreign.C.String(CString)
import Foreign.C.Types(CUInt(..))
import Foreign.Ptr(Ptr)
data LinkerMode = DestroySource | PreserveSource
deriving (Show, Eq)
fromLinkerMode :: LinkerMode -> CUInt
fromLinkerMode DestroySource = (0)
fromLinkerMode PreserveSource = (0)
toLinkerMode :: CUInt -> LinkerMode
toLinkerMode c | c == (0) = DestroySource
toLinkerMode c | c == (1) = PreserveSource
toLinkerMode c = error $ "LLVM.FFI.Linker.toLinkerMode: unrecognized linker mode" ++ show c
foreign import ccall unsafe "LLVMLinkModules" linkModules
:: ModuleRef -> ModuleRef -> CUInt -> Ptr CString -> IO Bool