From: Ted Kremenek Date: Fri, 7 Nov 2008 02:09:25 +0000 (+0000) Subject: Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=daac634c9744257d43ce892b973019b16468caf2;p=clang Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58831 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/AnalysisConsumer.cpp b/Driver/AnalysisConsumer.cpp index f01a755988..f606c87742 100644 --- a/Driver/AnalysisConsumer.cpp +++ b/Driver/AnalysisConsumer.cpp @@ -60,6 +60,7 @@ namespace { Actions FunctionActions; Actions ObjCMethodActions; Actions ObjCImplementationActions; + Actions TranslationUnitActions; public: const bool VisGraphviz; @@ -100,6 +101,10 @@ namespace { ObjCImplementationActions.push_back(action); } + void addTranslationUnitAction(CodeAction action) { + TranslationUnitActions.push_back(action); + } + virtual void Initialize(ASTContext &Context) { Ctx = &Context; } @@ -291,6 +296,13 @@ void AnalysisConsumer::HandleTopLevelDecl(Decl *D) { void AnalysisConsumer::HandleTranslationUnit(TranslationUnit& TU) { + if(!TranslationUnitActions.empty()) { + AnalysisManager mgr(*this, &TU); + for (Actions::iterator I = TranslationUnitActions.begin(), + E = TranslationUnitActions.end(); I != E; ++I) + (*I)(mgr); + } + if (ObjCImplementationActions.empty()) return;