aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-23 07:49:08 +0000
committerChris Lattner <sabre@nondot.org>2009-08-23 07:49:08 +0000
commitb515d75856f58a8b3b71d782eb00916d686329ad (patch)
treef44504088f40b4ba59e2583c25ea523e8c15ae82 /tools
parenta81d29b3916c2eb87a17f800f3759ce21a4a96fd (diff)
downloadexternal_llvm-b515d75856f58a8b3b71d782eb00916d686329ad.zip
external_llvm-b515d75856f58a8b3b71d782eb00916d686329ad.tar.gz
external_llvm-b515d75856f58a8b3b71d782eb00916d686329ad.tar.bz2
eliminate the std::ostream forms of the bitcode writing APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/bugpoint/OptimizerDriver.cpp32
-rw-r--r--tools/lto/LTOCodeGenerator.cpp50
2 files changed, 42 insertions, 40 deletions
diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp
index 257647f..ef41c43 100644
--- a/tools/bugpoint/OptimizerDriver.cpp
+++ b/tools/bugpoint/OptimizerDriver.cpp
@@ -51,10 +51,10 @@ namespace {
///
bool BugDriver::writeProgramToFile(const std::string &Filename,
Module *M) const {
- std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
- std::ios::binary;
- std::ofstream Out(Filename.c_str(), io_mode);
- if (!Out.good()) return true;
+ std::string ErrInfo;
+ raw_fd_ostream Out(Filename.c_str(), ErrInfo,
+ raw_fd_ostream::F_Force|raw_fd_ostream::F_Binary);
+ if (!ErrInfo.empty()) return true;
WriteBitcodeToFile(M ? M : Program, Out);
return false;
@@ -83,11 +83,10 @@ void BugDriver::EmitProgressBitcode(const std::string &ID, bool NoFlyer) {
}
int BugDriver::runPassesAsChild(const std::vector<const PassInfo*> &Passes) {
-
- std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
- std::ios::binary;
- std::ofstream OutFile(ChildOutput.c_str(), io_mode);
- if (!OutFile.good()) {
+ std::string ErrInfo;
+ raw_fd_ostream OutFile(ChildOutput.c_str(), ErrInfo,
+ raw_fd_ostream::F_Force|raw_fd_ostream::F_Binary);
+ if (!ErrInfo.empty()) {
errs() << "Error opening bitcode file: " << ChildOutput << "\n";
return 1;
}
@@ -106,7 +105,7 @@ int BugDriver::runPassesAsChild(const std::vector<const PassInfo*> &Passes) {
PM.add(createVerifierPass());
// Write bitcode out to disk as the last step...
- PM.add(CreateBitcodeWriterPass(OutFile));
+ PM.add(createBitcodeWriterPass(OutFile));
// Run all queued passes.
PM.run(*Program);
@@ -146,12 +145,15 @@ bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
<< ErrMsg << "\n";
return(1);
}
- std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
- std::ios::binary;
- std::ofstream InFile(inputFilename.c_str(), io_mode);
- if (!InFile.good()) {
+
+ std::string ErrInfo;
+ raw_fd_ostream InFile(inputFilename.c_str(), ErrInfo,
+ raw_fd_ostream::F_Force|raw_fd_ostream::F_Binary);
+
+
+ if (!ErrInfo.empty()) {
errs() << "Error opening bitcode file: " << inputFilename << "\n";
- return(1);
+ return 1;
}
WriteBitcodeToFile(Program, InFile);
InFile.close();
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index 36be523..f47eb49 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -47,10 +47,7 @@
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Config/config.h"
-
-
#include <cstdlib>
-#include <fstream>
#include <unistd.h>
#include <fcntl.h>
@@ -139,31 +136,34 @@ void LTOCodeGenerator::addMustPreserveSymbol(const char* sym)
}
-bool LTOCodeGenerator::writeMergedModules(const char* path, std::string& errMsg)
-{
- if ( this->determineTarget(errMsg) )
- return true;
+bool LTOCodeGenerator::writeMergedModules(const char *path,
+ std::string &errMsg) {
+ if (determineTarget(errMsg))
+ return true;
- // mark which symbols can not be internalized
- this->applyScopeRestrictions();
+ // mark which symbols can not be internalized
+ applyScopeRestrictions();
- // create output file
- std::ofstream out(path, std::ios_base::out|std::ios::trunc|std::ios::binary);
- if ( out.fail() ) {
- errMsg = "could not open bitcode file for writing: ";
- errMsg += path;
- return true;
- }
-
- // write bitcode to it
- WriteBitcodeToFile(_linker.getModule(), out);
- if ( out.fail() ) {
- errMsg = "could not write bitcode file: ";
- errMsg += path;
- return true;
- }
+ // create output file
+ std::string ErrInfo;
+ raw_fd_ostream Out(path, ErrInfo,
+ raw_fd_ostream::F_Force|raw_fd_ostream::F_Binary);
+ if (!ErrInfo.empty()) {
+ errMsg = "could not open bitcode file for writing: ";
+ errMsg += path;
+ return true;
+ }
- return false;
+ // write bitcode to it
+ WriteBitcodeToFile(_linker.getModule(), Out);
+
+ if (Out.has_error()) {
+ errMsg = "could not write bitcode file: ";
+ errMsg += path;
+ return true;
+ }
+
+ return false;
}