summaryrefslogtreecommitdiffstats
path: root/clang/Driver/AnalysisConsumer.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-11-07 02:09:25 +0000
committerTed Kremenek <kremenek@apple.com>2008-11-07 02:09:25 +0000
commit3391cb00fc7c3668486a27e212ea7aa794f1bd90 (patch)
tree02c49fde8943b1ccf937529d22046bb5be7b005d /clang/Driver/AnalysisConsumer.cpp
parentb9656df4aca81f6d06bd75d5b188f8491164912d (diff)
downloadbcm5719-llvm-3391cb00fc7c3668486a27e212ea7aa794f1bd90.tar.gz
bcm5719-llvm-3391cb00fc7c3668486a27e212ea7aa794f1bd90.zip
Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer.
llvm-svn: 58831
Diffstat (limited to 'clang/Driver/AnalysisConsumer.cpp')
-rw-r--r--clang/Driver/AnalysisConsumer.cpp12
1 files changed, 12 insertions, 0 deletions
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;
OpenPOWER on IntegriCloud