diff options
author | Jeroen Ketema <j.ketema@imperial.ac.uk> | 2016-04-01 07:56:17 +0000 |
---|---|---|
committer | Jeroen Ketema <j.ketema@imperial.ac.uk> | 2016-04-01 07:56:17 +0000 |
commit | f4430ca01de933e7608a244915c33c76723474a2 (patch) | |
tree | 3f52ca3dbf3704ea34ed0a04a3a3e3a645dcc9a2 /bindings/ocaml/bitreader/bitreader_ocaml.c | |
parent | 145384cb84d3725f73aa45362c7c97795c0dd6f5 (diff) |
[OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise
The llvm_string_of_message function, called by llvm_raise, calls
LLVMDisposeMessage, which expects the message to be dynamically
allocated; it fails freeing the message otherwise. So always
dynamically allocate with LLVMCreateMessage.
Differential Revision: http://reviews.llvm.org/D18675
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265116 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings/ocaml/bitreader/bitreader_ocaml.c')
-rw-r--r-- | bindings/ocaml/bitreader/bitreader_ocaml.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/bindings/ocaml/bitreader/bitreader_ocaml.c b/bindings/ocaml/bitreader/bitreader_ocaml.c index f91b092d9176..6d957760cff7 100644 --- a/bindings/ocaml/bitreader/bitreader_ocaml.c +++ b/bindings/ocaml/bitreader/bitreader_ocaml.c @@ -13,6 +13,7 @@ \*===----------------------------------------------------------------------===*/ #include "llvm-c/BitReader.h" +#include "llvm-c/Core.h" #include "caml/alloc.h" #include "caml/fail.h" #include "caml/memory.h" @@ -25,7 +26,7 @@ CAMLprim LLVMModuleRef llvm_get_module(LLVMContextRef C, LLVMMemoryBufferRef Mem LLVMModuleRef M; if (LLVMGetBitcodeModuleInContext2(C, MemBuf, &M)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), LLVMCreateMessage("")); return M; } @@ -35,7 +36,7 @@ CAMLprim LLVMModuleRef llvm_parse_bitcode(LLVMContextRef C, LLVMMemoryBufferRef LLVMModuleRef M; if (LLVMParseBitcodeInContext2(C, MemBuf, &M)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), LLVMCreateMessage("")); return M; } |