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;