1193323Sed//===-- BitWriter.cpp -----------------------------------------------------===// 2193323Sed// 3193323Sed// The LLVM Compiler Infrastructure 4193323Sed// 5193323Sed// This file is distributed under the University of Illinois Open Source 6193323Sed// License. See LICENSE.TXT for details. 7193323Sed// 8193323Sed//===----------------------------------------------------------------------===// 9193323Sed 10193323Sed#include "llvm-c/BitWriter.h" 11193323Sed#include "llvm/Bitcode/ReaderWriter.h" 12251662Sdim#include "llvm/IR/Module.h" 13198090Srdivacky#include "llvm/Support/raw_ostream.h" 14193323Sedusing namespace llvm; 15193323Sed 16193323Sed 17193323Sed/*===-- Operations on modules ---------------------------------------------===*/ 18193323Sed 19193323Sedint LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path) { 20198090Srdivacky std::string ErrorInfo; 21263508Sdim raw_fd_ostream OS(Path, ErrorInfo, sys::fs::F_Binary); 22249423Sdim 23198090Srdivacky if (!ErrorInfo.empty()) 24193323Sed return -1; 25249423Sdim 26198090Srdivacky WriteBitcodeToFile(unwrap(M), OS); 27193323Sed return 0; 28193323Sed} 29193323Sed 30204792Srdivackyint LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose, 31204792Srdivacky int Unbuffered) { 32204792Srdivacky raw_fd_ostream OS(FD, ShouldClose, Unbuffered); 33249423Sdim 34198090Srdivacky WriteBitcodeToFile(unwrap(M), OS); 35193323Sed return 0; 36193323Sed} 37193323Sed 38193323Sedint LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int FileHandle) { 39204792Srdivacky return LLVMWriteBitcodeToFD(M, FileHandle, true, false); 40193323Sed} 41