aboutsummaryrefslogtreecommitdiff
path: root/Driver/AnalysisConsumer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Driver/AnalysisConsumer.cpp')
-rw-r--r--Driver/AnalysisConsumer.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Driver/AnalysisConsumer.cpp b/Driver/AnalysisConsumer.cpp
index ecb4ad23a0..f8d9a250ba 100644
--- a/Driver/AnalysisConsumer.cpp
+++ b/Driver/AnalysisConsumer.cpp
@@ -337,6 +337,16 @@ static void ActionLiveness(AnalysisManager& mgr) {
mgr.getLiveVariables()->dumpBlockLiveness(mgr.getSourceManager());
}
+static void ActionCFGDump(AnalysisManager& mgr) {
+ mgr.DisplayFunction();
+ mgr.getCFG()->dump();
+}
+
+static void ActionCFGView(AnalysisManager& mgr) {
+ mgr.DisplayFunction();
+ mgr.getCFG()->viewCFG();
+}
+
//===----------------------------------------------------------------------===//
// AnalysisConsumer creation.
//===----------------------------------------------------------------------===//
@@ -376,6 +386,14 @@ ASTConsumer* clang::CreateAnalysisConsumer(Analyses* Beg, Analyses* End,
C->addCodeAction(&ActionSimpleChecks);
break;
+ case CFGDump:
+ C->addCodeAction(&ActionCFGDump);
+ break;
+
+ case CFGView:
+ C->addCodeAction(&ActionCFGView);
+ break;
+
default: break;
}