diff options
Diffstat (limited to 'llvm/bindings/ocaml/bitreader/bitreader_ocaml.c')
-rw-r--r-- | llvm/bindings/ocaml/bitreader/bitreader_ocaml.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c b/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c index 87477f6..980ed2a 100644 --- a/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c +++ b/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c @@ -14,9 +14,8 @@ #include "llvm-c/BitReader.h" #include "caml/alloc.h" -#include "caml/mlvalues.h" +#include "caml/fail.h" #include "caml/memory.h" -#include <stdio.h> /* Can't use the recommended caml_named_value mechanism for backwards @@ -29,7 +28,17 @@ CAMLprim value llvm_register_bitreader_exns(value Error) { return Val_unit; } -void llvm_raise(value Prototype, char *Message); +static void llvm_raise(value Prototype, char *Message) { + CAMLparam1(Prototype); + CAMLlocal1(CamlMessage); + + CamlMessage = copy_string(Message); + LLVMDisposeMessage(Message); + + raise_with_arg(Prototype, CamlMessage); + abort(); /* NOTREACHED */ + CAMLnoreturn; +} /*===-- Modules -----------------------------------------------------------===*/ |