aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Driver/PrintPreprocessedOutput.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/Driver/PrintPreprocessedOutput.cpp b/Driver/PrintPreprocessedOutput.cpp
index 5044250fd5..28309860ca 100644
--- a/Driver/PrintPreprocessedOutput.cpp
+++ b/Driver/PrintPreprocessedOutput.cpp
@@ -499,23 +499,15 @@ void clang::DoPrintPreprocessedInput(Preprocessor &PP,
// Open the output buffer.
- static llvm::raw_ostream *OutStream;
-
- if (!OutFile.size() || OutFile == "-") {
- OutStream = new llvm::raw_stdout_ostream();
- } else {
- std::string Err;
- OutStream = new llvm::raw_fd_ostream(OutFile.c_str(), Err);
-
- if (!Err.empty()) {
- delete OutStream;
- fprintf(stderr, "%s\n", Err.c_str());
- exit(1);
- }
+ std::string Err;
+ llvm::raw_fd_ostream OS(OutFile.c_str(), Err);
+ if (!Err.empty()) {
+ fprintf(stderr, "%s\n", Err.c_str());
+ exit(1);
}
- OutStream->SetBufferSize(64*1024);
- llvm::raw_ostream &OS = *OutStream;
+ OS.SetBufferSize(64*1024);
+
Token Tok, PrevTok;
char Buffer[256];