[llvm] r221142 - [OCaml] Initialize local roots prior to raising.

Peter Zotov whitequark at whitequark.org
Mon Nov 3 01:51:44 PST 2014


Author: whitequark
Date: Mon Nov  3 03:51:44 2014
New Revision: 221142

URL: http://llvm.org/viewvc/llvm-project?rev=221142&view=rev
Log:
[OCaml] Initialize local roots prior to raising.

On 4.02, the OCaml unwinder otherwise gets confused and segfaults.

Modified:
    llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c

Modified: llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c?rev=221142&r1=221141&r2=221142&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c (original)
+++ llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c Mon Nov  3 03:51:44 2014
@@ -1590,11 +1590,12 @@ CAMLprim value llvm_position_builder(val
 }
 
 /* llbuilder -> llbasicblock */
-CAMLprim LLVMBasicBlockRef llvm_insertion_block(value B) {
+CAMLprim value llvm_insertion_block(value B) {
+  CAMLparam0();
   LLVMBasicBlockRef InsertBlock = LLVMGetInsertBlock(Builder_val(B));
   if (!InsertBlock)
-    raise_not_found();
-  return InsertBlock;
+    caml_raise_not_found();
+  CAMLreturn((value) InsertBlock);
 }
 
 /* llvalue -> string -> llbuilder -> unit */





More information about the llvm-commits mailing list