BitWriter.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //===-- BitWriter.cpp -----------------------------------------------------===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. #include "llvm-c/BitWriter.h"
  10. #include "llvm/Bitcode/ReaderWriter.h"
  11. #include "llvm/Support/raw_ostream.h"
  12. using namespace llvm;
  13. /*===-- Operations on modules ---------------------------------------------===*/
  14. int LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path) {
  15. std::string ErrorInfo;
  16. raw_fd_ostream OS(Path, ErrorInfo,
  17. raw_fd_ostream::F_Binary);
  18. if (!ErrorInfo.empty())
  19. return -1;
  20. WriteBitcodeToFile(unwrap(M), OS);
  21. return 0;
  22. }
  23. int LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose,
  24. int Unbuffered) {
  25. raw_fd_ostream OS(FD, ShouldClose, Unbuffered);
  26. WriteBitcodeToFile(unwrap(M), OS);
  27. return 0;
  28. }
  29. int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int FileHandle) {
  30. return LLVMWriteBitcodeToFD(M, FileHandle, true, false);
  31. }