mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
Don't use PathV1.h in tools/bugpoint/Miscompilation.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9c22f87b13
commit
88088f4067
@ -275,6 +275,8 @@ public:
|
||||
/// bitcode file. If an error occurs, true is returned.
|
||||
///
|
||||
bool writeProgramToFile(const std::string &Filename, const Module *M) const;
|
||||
bool writeProgramToFile(const std::string &Filename, int FD,
|
||||
const Module *M) const;
|
||||
|
||||
private:
|
||||
/// runPasses - Just like the method above, but this just returns true or
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "llvm/Pass.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/FileUtilities.h"
|
||||
#include "llvm/Support/PathV1.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
using namespace llvm;
|
||||
|
||||
@ -927,14 +926,16 @@ static bool TestCodeGenerator(BugDriver &BD, Module *Test, Module *Safe,
|
||||
std::string &Error) {
|
||||
CleanupAndPrepareModules(BD, Test, Safe);
|
||||
|
||||
sys::Path TestModuleBC("bugpoint.test.bc");
|
||||
std::string ErrMsg;
|
||||
if (TestModuleBC.makeUnique(true, &ErrMsg)) {
|
||||
SmallString<128> TestModuleBC;
|
||||
int TestModuleFD;
|
||||
error_code EC = sys::fs::unique_file("bugpoint.test-%%%%%%%.bc", TestModuleFD,
|
||||
TestModuleBC);
|
||||
if (EC) {
|
||||
errs() << BD.getToolName() << "Error making unique filename: "
|
||||
<< ErrMsg << "\n";
|
||||
<< EC.message() << "\n";
|
||||
exit(1);
|
||||
}
|
||||
if (BD.writeProgramToFile(TestModuleBC.str(), Test)) {
|
||||
if (BD.writeProgramToFile(TestModuleBC.str(), TestModuleFD, Test)) {
|
||||
errs() << "Error writing bitcode to `" << TestModuleBC.str()
|
||||
<< "'\nExiting.";
|
||||
exit(1);
|
||||
@ -944,14 +945,17 @@ static bool TestCodeGenerator(BugDriver &BD, Module *Test, Module *Safe,
|
||||
FileRemover TestModuleBCRemover(TestModuleBC.str(), !SaveTemps);
|
||||
|
||||
// Make the shared library
|
||||
sys::Path SafeModuleBC("bugpoint.safe.bc");
|
||||
if (SafeModuleBC.makeUnique(true, &ErrMsg)) {
|
||||
SmallString<128> SafeModuleBC;
|
||||
int SafeModuleFD;
|
||||
EC = sys::fs::unique_file("bugpoint.safe-%%%%%%%.bc", SafeModuleFD,
|
||||
SafeModuleBC);
|
||||
if (EC) {
|
||||
errs() << BD.getToolName() << "Error making unique filename: "
|
||||
<< ErrMsg << "\n";
|
||||
<< EC.message() << "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (BD.writeProgramToFile(SafeModuleBC.str(), Safe)) {
|
||||
if (BD.writeProgramToFile(SafeModuleBC.str(), SafeModuleFD, Safe)) {
|
||||
errs() << "Error writing bitcode to `" << SafeModuleBC.str()
|
||||
<< "'\nExiting.";
|
||||
exit(1);
|
||||
@ -1016,15 +1020,17 @@ bool BugDriver::debugCodeGenerator(std::string *Error) {
|
||||
// Condition the modules
|
||||
CleanupAndPrepareModules(*this, ToCodeGen, ToNotCodeGen);
|
||||
|
||||
sys::Path TestModuleBC("bugpoint.test.bc");
|
||||
std::string ErrMsg;
|
||||
if (TestModuleBC.makeUnique(true, &ErrMsg)) {
|
||||
SmallString<128> TestModuleBC;
|
||||
int TestModuleFD;
|
||||
error_code EC = sys::fs::unique_file("bugpoint.test-%%%%%%%.bc", TestModuleFD,
|
||||
TestModuleBC);
|
||||
if (EC) {
|
||||
errs() << getToolName() << "Error making unique filename: "
|
||||
<< ErrMsg << "\n";
|
||||
<< EC.message() << "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (writeProgramToFile(TestModuleBC.str(), ToCodeGen)) {
|
||||
if (writeProgramToFile(TestModuleBC.str(), TestModuleFD, ToCodeGen)) {
|
||||
errs() << "Error writing bitcode to `" << TestModuleBC.str()
|
||||
<< "'\nExiting.";
|
||||
exit(1);
|
||||
@ -1032,14 +1038,17 @@ bool BugDriver::debugCodeGenerator(std::string *Error) {
|
||||
delete ToCodeGen;
|
||||
|
||||
// Make the shared library
|
||||
sys::Path SafeModuleBC("bugpoint.safe.bc");
|
||||
if (SafeModuleBC.makeUnique(true, &ErrMsg)) {
|
||||
SmallString<128> SafeModuleBC;
|
||||
int SafeModuleFD;
|
||||
EC = sys::fs::unique_file("bugpoint.safe-%%%%%%%.bc", SafeModuleFD,
|
||||
SafeModuleBC);
|
||||
if (EC) {
|
||||
errs() << getToolName() << "Error making unique filename: "
|
||||
<< ErrMsg << "\n";
|
||||
<< EC.message() << "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (writeProgramToFile(SafeModuleBC.str(), ToNotCodeGen)) {
|
||||
if (writeProgramToFile(SafeModuleBC.str(), SafeModuleFD, ToNotCodeGen)) {
|
||||
errs() << "Error writing bitcode to `" << SafeModuleBC.str()
|
||||
<< "'\nExiting.";
|
||||
exit(1);
|
||||
|
@ -49,20 +49,28 @@ namespace {
|
||||
/// writeProgramToFile - This writes the current "Program" to the named bitcode
|
||||
/// file. If an error occurs, true is returned.
|
||||
///
|
||||
static bool writeProgramToFileAux(tool_output_file &Out, const Module *M) {
|
||||
WriteBitcodeToFile(M, Out.os());
|
||||
Out.os().close();
|
||||
if (!Out.os().has_error()) {
|
||||
Out.keep();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BugDriver::writeProgramToFile(const std::string &Filename, int FD,
|
||||
const Module *M) const {
|
||||
tool_output_file Out(Filename.c_str(), FD);
|
||||
return writeProgramToFileAux(Out, M);
|
||||
}
|
||||
|
||||
bool BugDriver::writeProgramToFile(const std::string &Filename,
|
||||
const Module *M) const {
|
||||
std::string ErrInfo;
|
||||
tool_output_file Out(Filename.c_str(), ErrInfo,
|
||||
raw_fd_ostream::F_Binary);
|
||||
if (ErrInfo.empty()) {
|
||||
WriteBitcodeToFile(M, Out.os());
|
||||
Out.os().close();
|
||||
if (!Out.os().has_error()) {
|
||||
Out.keep();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Out.os().clear_error();
|
||||
tool_output_file Out(Filename.c_str(), ErrInfo, raw_fd_ostream::F_Binary);
|
||||
if (ErrInfo.empty())
|
||||
return writeProgramToFileAux(Out, M);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user