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 f01a755..f606c87 100644
--- a/Driver/AnalysisConsumer.cpp
+++ b/Driver/AnalysisConsumer.cpp
@@ -60,6 +60,7 @@
Actions FunctionActions;
Actions ObjCMethodActions;
Actions ObjCImplementationActions;
+ Actions TranslationUnitActions;
public:
const bool VisGraphviz;
@@ -100,6 +101,10 @@
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::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;