diff options
-rw-r--r-- | lib/Checker/AnalysisConsumer.cpp | 4 | ||||
-rw-r--r-- | lib/Checker/TextPathDiagnostics.cpp | 10 |
2 files changed, 5 insertions, 9 deletions
diff --git a/lib/Checker/AnalysisConsumer.cpp b/lib/Checker/AnalysisConsumer.cpp index 47dd7fa186..52dd068034 100644 --- a/lib/Checker/AnalysisConsumer.cpp +++ b/lib/Checker/AnalysisConsumer.cpp @@ -108,6 +108,10 @@ public: case PD_##NAME: PD = CREATEFN(OutDir, PP); break; #include "clang/Frontend/Analyses.def" } + } else if (Opts.AnalysisDiagOpt == PD_TEXT) { + // Create the text client even without a specified output file since + // it just uses diagnostic notes. + PD = createTextPathDiagnosticClient("", PP); } // Create the analyzer component creators. diff --git a/lib/Checker/TextPathDiagnostics.cpp b/lib/Checker/TextPathDiagnostics.cpp index 03c6088027..83ff7a4409 100644 --- a/lib/Checker/TextPathDiagnostics.cpp +++ b/lib/Checker/TextPathDiagnostics.cpp @@ -20,7 +20,7 @@ using namespace llvm; namespace { -/// \brief Simple path diagnostic client used for outputting as text +/// \brief Simple path diagnostic client used for outputting as diagnostic notes /// the sequence of events. class TextPathDiagnostics : public PathDiagnosticClient { const std::string OutputFile; @@ -61,14 +61,6 @@ void TextPathDiagnostics::HandlePathDiagnostic(const PathDiagnostic* D) { return; } - // Open the file. - std::string ErrMsg; - llvm::raw_fd_ostream o(OutputFile.c_str(), ErrMsg); - if (!ErrMsg.empty()) { - llvm::errs() << "warning: could not create file: " << OutputFile << '\n'; - return; - } - for (PathDiagnostic::const_iterator I=D->begin(), E=D->end(); I != E; ++I) { if (isa<PathDiagnosticEventPiece>(*I)) { PathDiagnosticEventPiece &event = cast<PathDiagnosticEventPiece>(*I); |