]> granicus.if.org Git - clang/commitdiff
Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer.
authorTed Kremenek <kremenek@apple.com>
Fri, 7 Nov 2008 02:09:25 +0000 (02:09 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 7 Nov 2008 02:09:25 +0000 (02:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58831 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/AnalysisConsumer.cpp

index f01a755988e890d7375dc1a6d689908fa6d1ae79..f606c877420d27cd7f9e796440803ea4d3a7d434 100644 (file)
@@ -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;