From: Peter Zotov Date: Thu, 30 Oct 2014 08:29:29 +0000 (+0000) Subject: [OCaml] De-duplicate llvm_raise and llvm_string_of_message. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=b9f3251952c54b56cf9cd8f3dfb2bfbeb035b13d;hp=d07e7ecd8501031b8086b3cda0a8341fdc3f456d [OCaml] De-duplicate llvm_raise and llvm_string_of_message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220898 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/bindings/ocaml/bitreader/bitreader_ocaml.c b/bindings/ocaml/bitreader/bitreader_ocaml.c index eab3e1ae30e..15ebd5f635f 100644 --- a/bindings/ocaml/bitreader/bitreader_ocaml.c +++ b/bindings/ocaml/bitreader/bitreader_ocaml.c @@ -18,18 +18,7 @@ #include "caml/memory.h" #include "caml/callback.h" -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); - LLVMDisposeMessage(Message); - - raise_with_arg(Prototype, CamlMessage); - CAMLnoreturn; -} - -/*===-- BitReader --------------------------------------------------------===*/ +void llvm_raise(value Prototype, char *Message); /* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */ CAMLprim LLVMModuleRef llvm_get_module(LLVMContextRef C, LLVMMemoryBufferRef MemBuf) { diff --git a/bindings/ocaml/bitwriter/bitwriter_ocaml.c b/bindings/ocaml/bitwriter/bitwriter_ocaml.c index f20fd59fd31..04fd61917dc 100644 --- a/bindings/ocaml/bitwriter/bitwriter_ocaml.c +++ b/bindings/ocaml/bitwriter/bitwriter_ocaml.c @@ -21,8 +21,6 @@ #include "caml/mlvalues.h" #include "caml/memory.h" -/*===-- BitWriter ---------------------------------------------------------===*/ - /* Llvm.llmodule -> string -> bool */ CAMLprim value llvm_write_bitcode_file(LLVMModuleRef M, value Path) { int Result = LLVMWriteBitcodeToFile(M, String_val(Path)); diff --git a/bindings/ocaml/executionengine/executionengine_ocaml.c b/bindings/ocaml/executionengine/executionengine_ocaml.c index a12cc0091ae..c647d23133c 100644 --- a/bindings/ocaml/executionengine/executionengine_ocaml.c +++ b/bindings/ocaml/executionengine/executionengine_ocaml.c @@ -25,16 +25,7 @@ #include "caml/memory.h" #include "caml/callback.h" -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); - LLVMDisposeMessage(Message); - - raise_with_arg(Prototype, CamlMessage); - CAMLnoreturn; -} +void llvm_raise(value Prototype, char *Message); /*--... Operations on generic values .......................................--*/ diff --git a/bindings/ocaml/irreader/irreader_ocaml.c b/bindings/ocaml/irreader/irreader_ocaml.c index d9f7a50c52d..ce593db80a8 100644 --- a/bindings/ocaml/irreader/irreader_ocaml.c +++ b/bindings/ocaml/irreader/irreader_ocaml.c @@ -18,18 +18,7 @@ #include "caml/memory.h" #include "caml/callback.h" -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); - LLVMDisposeMessage(Message); - - raise_with_arg(Prototype, CamlMessage); - CAMLnoreturn; -} - -/*===-- IRReader ----------------------------------------------------------===*/ +void llvm_raise(value Prototype, char *Message); /* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */ CAMLprim value llvm_parse_ir(LLVMContextRef C, diff --git a/bindings/ocaml/linker/linker_ocaml.c b/bindings/ocaml/linker/linker_ocaml.c index 553fbd91fe3..ade0fbb56d9 100644 --- a/bindings/ocaml/linker/linker_ocaml.c +++ b/bindings/ocaml/linker/linker_ocaml.c @@ -21,16 +21,7 @@ #include "caml/fail.h" #include "caml/callback.h" -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); - LLVMDisposeMessage(Message); - - raise_with_arg(Prototype, CamlMessage); - CAMLnoreturn; -} +void llvm_raise(value Prototype, char *Message); /* llmodule -> llmodule -> Mode.t -> unit */ CAMLprim value llvm_link_modules(LLVMModuleRef Dst, LLVMModuleRef Src, value Mode) { diff --git a/bindings/ocaml/llvm/llvm_ocaml.c b/bindings/ocaml/llvm/llvm_ocaml.c index 4b146332c94..2348b6d1699 100644 --- a/bindings/ocaml/llvm/llvm_ocaml.c +++ b/bindings/ocaml/llvm/llvm_ocaml.c @@ -25,14 +25,16 @@ #include "caml/fail.h" #include "caml/callback.h" -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); +value llvm_string_of_message(char* Message) { + value String = caml_copy_string(Message); LLVMDisposeMessage(Message); - raise_with_arg(Prototype, CamlMessage); + return String; +} + +void llvm_raise(value Prototype, char *Message) { + CAMLparam1(Prototype); + raise_with_arg(Prototype, llvm_string_of_message(Message)); CAMLnoreturn; } diff --git a/bindings/ocaml/target/target_ocaml.c b/bindings/ocaml/target/target_ocaml.c index efb5d9bd51e..8f77cb46f13 100644 --- a/bindings/ocaml/target/target_ocaml.c +++ b/bindings/ocaml/target/target_ocaml.c @@ -23,25 +23,8 @@ #include "caml/custom.h" #include "caml/callback.h" -/*===---- Exceptions ------------------------------------------------------===*/ - -static void llvm_raise(value Prototype, char *Message) { - CAMLparam1(Prototype); - CAMLlocal1(CamlMessage); - - CamlMessage = copy_string(Message); - LLVMDisposeMessage(Message); - - raise_with_arg(Prototype, CamlMessage); - CAMLnoreturn; -} - -static value llvm_string_of_message(char* Message) { - value String = caml_copy_string(Message); - LLVMDisposeMessage(Message); - - return String; -} +void llvm_raise(value Prototype, char *Message); +value llvm_string_of_message(char* Message); /*===---- Data Layout -----------------------------------------------------===*/