19d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov(*===-- llvm_linker.ml - LLVM OCaml Interface ------------------*- OCaml -*-===*
29d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
39d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *                     The LLVM Compiler Infrastructure
49d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
59d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov * This file is distributed under the University of Illinois Open Source
69d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov * License. See LICENSE.TXT for details.
79d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
89d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *===----------------------------------------------------------------------===*)
99d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
109d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovexception Error of string
119d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
129d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovexternal register_exns : exn -> unit = "llvm_register_linker_exns"
139d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovlet _ = register_exns (Error "")
149d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
159d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovmodule Mode = struct
169d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  type t =
179d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  | DestroySource
189d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  | PreserveSource
199d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovend
209d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
219d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovexternal link_modules : Llvm.llmodule -> Llvm.llmodule -> Mode.t -> unit
229d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov                      = "llvm_link_modules"