BitWriter.cpp revision 198090
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" 12198090Srdivacky#include "llvm/Support/raw_ostream.h" 13193323Sedusing namespace llvm; 14193323Sed 15193323Sed 16193323Sed/*===-- Operations on modules ---------------------------------------------===*/ 17193323Sed 18193323Sedint LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path) { 19198090Srdivacky std::string ErrorInfo; 20198090Srdivacky raw_fd_ostream OS(Path, ErrorInfo, 21198090Srdivacky raw_fd_ostream::F_Binary); 22193323Sed 23198090Srdivacky if (!ErrorInfo.empty()) 24193323Sed return -1; 25193323Sed 26198090Srdivacky WriteBitcodeToFile(unwrap(M), OS); 27193323Sed return 0; 28193323Sed} 29193323Sed 30193323Sed#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR >= 4) 31193323Sed#include <ext/stdio_filebuf.h> 32193323Sed 33193323Sedint LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int FileHandle) { 34198090Srdivacky raw_fd_ostream OS(FileHandle, false); 35193323Sed 36198090Srdivacky WriteBitcodeToFile(unwrap(M), OS); 37193323Sed return 0; 38193323Sed} 39193323Sed 40193323Sed#else 41193323Sed 42193323Sedint LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int FileHandle) { 43193323Sed return -1; // Not supported. 44193323Sed} 45193323Sed 46193323Sed#endif 47