From 3391cb00fc7c3668486a27e212ea7aa794f1bd90 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Fri, 7 Nov 2008 02:09:25 +0000 Subject: Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer. llvm-svn: 58831 --- clang/Driver/AnalysisConsumer.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'clang/Driver/AnalysisConsumer.cpp') diff --git a/clang/Driver/AnalysisConsumer.cpp b/clang/Driver/AnalysisConsumer.cpp index f01a755988e..f606c877420 100644 --- a/clang/Driver/AnalysisConsumer.cpp +++ b/clang/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; -- cgit v1.2.3