diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-11-03 23:18:07 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-11-03 23:18:07 +0000 |
commit | 14f18653f6cd80168ac95d965d0775bc8497b18e (patch) | |
tree | bd55d5f562503a86c63fa682be65dcf4222132b0 /clang/Driver/AnalysisConsumer.cpp | |
parent | f33f8a8606b0e038d05d95468babbb336e219b8d (diff) | |
download | bcm5719-llvm-14f18653f6cd80168ac95d965d0775bc8497b18e.tar.gz bcm5719-llvm-14f18653f6cd80168ac95d965d0775bc8497b18e.zip |
Hook up the Plist diagnostic client to the driver.
Fix Plist output.
llvm-svn: 58652
Diffstat (limited to 'clang/Driver/AnalysisConsumer.cpp')
-rw-r--r-- | clang/Driver/AnalysisConsumer.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/clang/Driver/AnalysisConsumer.cpp b/clang/Driver/AnalysisConsumer.cpp index aa78337ae00..5f338c8af53 100644 --- a/clang/Driver/AnalysisConsumer.cpp +++ b/clang/Driver/AnalysisConsumer.cpp @@ -75,20 +75,21 @@ namespace { llvm::OwningPtr<PathDiagnosticClient> PD; bool AnalyzeAll; AnalysisStores SM; + AnalysisDiagClients DC; AnalysisConsumer(Diagnostic &diags, Preprocessor* pp, PreprocessorFactory* ppf, const LangOptions& lopts, const std::string& fname, const std::string& htmldir, - AnalysisStores sm, + AnalysisStores sm, AnalysisDiagClients dc, bool visgraphviz, bool visubi, bool trim, bool analyzeAll) : VisGraphviz(visgraphviz), VisUbigraph(visubi), TrimGraph(trim), LOpts(lopts), Diags(diags), Ctx(0), PP(pp), PPF(ppf), HTMLDir(htmldir), FName(fname), - AnalyzeAll(analyzeAll), SM(sm) {} + AnalyzeAll(analyzeAll), SM(sm), DC(dc) {} void addCodeAction(CodeAction action) { FunctionActions.push_back(action); @@ -165,9 +166,14 @@ case NAME##Model: return Create##NAME##Manager; } virtual PathDiagnosticClient* getPathDiagnosticClient() { - if (C.PD.get() == 0 && !C.HTMLDir.empty()) - C.PD.reset(CreateHTMLDiagnosticClient(C.HTMLDir, C.PP, C.PPF)); - + if (C.PD.get() == 0 && !C.HTMLDir.empty()) { + switch (C.DC) { + default: +#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)\ +case PD_##NAME: C.PD.reset(CREATEFN(C.HTMLDir, C.PP, C.PPF)); break; +#include "Analyses.def" + } + } return C.PD.get(); } @@ -449,6 +455,7 @@ static void ActionWarnObjCMethSigs(AnalysisManager& mgr) { ASTConsumer* clang::CreateAnalysisConsumer(Analyses* Beg, Analyses* End, AnalysisStores SM, + AnalysisDiagClients DC, Diagnostic &diags, Preprocessor* pp, PreprocessorFactory* ppf, const LangOptions& lopts, @@ -459,7 +466,7 @@ ASTConsumer* clang::CreateAnalysisConsumer(Analyses* Beg, Analyses* End, bool analyzeAll) { llvm::OwningPtr<AnalysisConsumer> - C(new AnalysisConsumer(diags, pp, ppf, lopts, fname, htmldir, SM, + C(new AnalysisConsumer(diags, pp, ppf, lopts, fname, htmldir, SM, DC, VisGraphviz, VisUbi, trim, analyzeAll)); for ( ; Beg != End ; ++Beg) |