content: {-# LANGUAGE
    ForeignFunctionInterface,
    MultiParamTypeClasses
    #-}
  
  module LLVM.Internal.FFI.Function where
  
  import LLVM.Prelude
  
  import Foreign.Ptr
  import Foreign.C
  
  import LLVM.Internal.FFI.Attribute
  import LLVM.Internal.FFI.Context
  import LLVM.Internal.FFI.LLVMCTypes
  import LLVM.Internal.FFI.PtrHierarchy
  
  foreign import ccall unsafe "LLVMGetFunctionCallConv" getFunctionCallingConvention ::
    Ptr Function -> IO CallingConvention
  
  foreign import ccall unsafe "LLVMSetFunctionCallConv" setFunctionCallingConvention ::
    Ptr Function -> CallingConvention -> IO ()
  
  foreign import ccall unsafe "LLVM_Hs_SetFunctionAttributeList" setAttributeList ::
    Ptr Function -> AttributeList -> IO ()
  
  foreign import ccall unsafe "LLVM_Hs_FunctionAttributesAtIndex" attributesAtIndex ::
    Ptr Function -> AttributeIndex -> IO (AttributeSet b)
  
  foreign import ccall unsafe "LLVMGetFirstBasicBlock" getFirstBasicBlock ::
    Ptr Function -> IO (Ptr BasicBlock)
  
  foreign import ccall unsafe "LLVMGetLastBasicBlock" getLastBasicBlock ::
    Ptr Function -> IO (Ptr BasicBlock)
  
  foreign import ccall unsafe "LLVMGetNextBasicBlock" getNextBasicBlock ::
    Ptr BasicBlock -> IO (Ptr BasicBlock)
  
  foreign import ccall unsafe "LLVMAppendBasicBlockInContext" appendBasicBlockInContext ::
    Ptr Context -> Ptr Function -> CString -> IO (Ptr BasicBlock)
  
  
  foreign import ccall unsafe "LLVMCountParams" countParams ::
    Ptr Function -> IO CUInt
  
  foreign import ccall unsafe "LLVMGetParams" getParams ::
    Ptr Function -> Ptr (Ptr Parameter) -> IO ()
  
  foreign import ccall unsafe "LLVMGetGC" getGC ::
    Ptr Function -> IO CString
  
  foreign import ccall unsafe "LLVMSetGC" setGC ::
    Ptr Function -> CString -> IO ()
  
  
  foreign import ccall unsafe "LLVM_Hs_HasFunctionPrefixData" hasPrefixData ::
    Ptr Function -> IO LLVMBool
  
  foreign import ccall unsafe "LLVM_Hs_GetFunctionPrefixData" getPrefixData ::
    Ptr Function -> IO (Ptr Constant)
  
  foreign import ccall unsafe "LLVM_Hs_SetFunctionPrefixData" setPrefixData ::
    Ptr Function -> Ptr Constant -> IO ()
  
  foreign import ccall unsafe "LLVMHasPersonalityFn" hasPersonalityFn ::
    Ptr Function -> IO LLVMBool
  
  foreign import ccall unsafe "LLVM_Hs_SetPersonalityFn" setPersonalityFn ::
    Ptr Function -> Ptr Constant -> IO ()
  
  foreign import ccall unsafe "LLVMGetPersonalityFn" getPersonalityFn ::
    Ptr Function -> IO (Ptr Constant)
  