Add a LLVMWriteBitcodeToFD that exposes the raw_fd_ostream options.
[oota-llvm.git] / bindings / ocaml / bitwriter / bitwriter_ocaml.c
index 41aca259ca7eb0ebbae701df5e385b6e2a356cc0..53c93cbdfe9bfceaa8c655ace0bda1862e213af3 100644 (file)
@@ -28,3 +28,18 @@ CAMLprim value llvm_write_bitcode_file(value M, value Path) {
   int res = LLVMWriteBitcodeToFile((LLVMModuleRef) M, String_val(Path));
   return Val_bool(res == 0);
 }
+
+/* ?unbuffered:bool -> Llvm.llmodule -> Unix.file_descr -> bool */
+CAMLprim value llvm_write_bitcode_to_fd(value U, value M, value FD) {
+  int Unbuffered;
+  int res;
+
+  if (U == Val_int(0)) {
+    Unbuffered = 0;
+  } else {
+    Unbuffered = Bool_val(Field(U,0));
+  }
+
+  res = LLVMWriteBitcodeToFD((LLVMModuleRef) M, Int_val(FD), 0, Unbuffered);
+  return Val_bool(res == 0);
+}