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.
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;
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);