{-# LINE 1 "LLVM/FFI/Analysis.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface, EmptyDataDecls #-}
{-# LINE 2 "LLVM/FFI/Analysis.hsc" #-}

module LLVM.FFI.Analysis where
import Foreign.C.String(CString)
import Foreign.C.Types(CInt)
import Foreign.Ptr(Ptr)

import LLVM.FFI.Core

type VerifierFailureAction = CInt

foreign import ccall unsafe "LLVMVerifyFunction" verifyFunction
    :: ValueRef -> VerifierFailureAction -> IO CInt
foreign import ccall unsafe "LLVMVerifyModule" verifyModule
    :: ModuleRef -> VerifierFailureAction -> (Ptr CString) -> IO CInt
foreign import ccall unsafe "LLVMViewFunctionCFG" viewFunctionCFG
    :: ValueRef -> IO ()
foreign import ccall unsafe "LLVMViewFunctionCFGOnly" viewFunctionCFGOnly
    :: ValueRef -> IO ()