diff options
Diffstat (limited to 'bindings/go/llvm/linker.go')
-rw-r--r-- | bindings/go/llvm/linker.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bindings/go/llvm/linker.go b/bindings/go/llvm/linker.go index 64d794efb94e..31e9ad24bf52 100644 --- a/bindings/go/llvm/linker.go +++ b/bindings/go/llvm/linker.go @@ -20,9 +20,16 @@ package llvm import "C" import "errors" -func LinkModules(Dest, Src Module) error { +type LinkerMode C.LLVMLinkerMode + +const ( + LinkerDestroySource = C.LLVMLinkerDestroySource + LinkerPreserveSource = C.LLVMLinkerPreserveSource +) + +func LinkModules(Dest, Src Module, Mode LinkerMode) error { var cmsg *C.char - failed := C.LLVMLinkModules(Dest.C, Src.C, 0, &cmsg) + failed := C.LLVMLinkModules(Dest.C, Src.C, C.LLVMLinkerMode(Mode), &cmsg) if failed != 0 { err := errors.New(C.GoString(cmsg)) C.LLVMDisposeMessage(cmsg) |