summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-reduce/llvm-reduce.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-reduce/llvm-reduce.cpp')
-rw-r--r--llvm/tools/llvm-reduce/llvm-reduce.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/llvm/tools/llvm-reduce/llvm-reduce.cpp b/llvm/tools/llvm-reduce/llvm-reduce.cpp
index 6836e1dbee4..83dcf980a78 100644
--- a/llvm/tools/llvm-reduce/llvm-reduce.cpp
+++ b/llvm/tools/llvm-reduce/llvm-reduce.cpp
@@ -81,14 +81,13 @@ int main(int argc, char **argv) {
parseInputFile(InputFilename, Context);
// Initialize test environment
- TestRunner Tester(TestFilename, TestArguments, InputFilename);
+ TestRunner Tester(TestFilename, TestArguments);
Tester.setProgram(std::move(OriginalProgram));
// Try to reduce code
runDeltaPasses(Tester);
- StringRef ReducedFilename = sys::path::filename(Tester.getReducedFilepath());
- if (ReducedFilename == sys::path::filename(InputFilename)) {
+ if (!Tester.getProgram()) {
errs() << "\nCouldnt reduce input :/\n";
} else {
// Print reduced file to STDOUT
@@ -100,7 +99,13 @@ int main(int argc, char **argv) {
else if (OutputFilename.empty())
OutputFilename = "reduced.ll";
- sys::fs::copy_file(Tester.getReducedFilepath(), OutputFilename);
+ std::error_code EC;
+ raw_fd_ostream Out(OutputFilename, EC);
+ if (EC) {
+ errs() << "Error opening output file: " << EC.message() << "!\n";
+ exit(1);
+ }
+ Tester.getProgram()->print(Out, /*AnnotationWriter=*/nullptr);
errs() << "\nDone reducing! Reduced testcase: " << OutputFilename << "\n";
}
}
OpenPOWER on IntegriCloud