aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Analysis/CallGraph.h1
-rw-r--r--test/Analysis/debug-CallGraph.cpp (renamed from test/Analysis/debug-CallGraph.c)21
2 files changed, 21 insertions, 1 deletions
diff --git a/include/clang/Analysis/CallGraph.h b/include/clang/Analysis/CallGraph.h
index ae0f392ed9..e230930b59 100644
--- a/include/clang/Analysis/CallGraph.h
+++ b/include/clang/Analysis/CallGraph.h
@@ -131,6 +131,7 @@ public:
bool TraverseStmt(Stmt *S) { return true; }
bool shouldWalkTypesOfTypeLocs() const { return false; }
+ bool shouldVisitTemplateInstantiations() const { return true; }
private:
/// Add the given declaration to the call graph.
diff --git a/test/Analysis/debug-CallGraph.c b/test/Analysis/debug-CallGraph.cpp
index 9f3865b35a..7f9ee4dc94 100644
--- a/test/Analysis/debug-CallGraph.c
+++ b/test/Analysis/debug-CallGraph.cpp
@@ -51,8 +51,27 @@ void test_single_call() {
do_nothing();
}
+template<typename T>
+void templ(T t) {
+ ccc();
+}
+
+template<>
+void templ<double>(double t) {
+ eee();
+}
+
+
+void templUser() {
+ templ(5);
+ templ(5.5);
+}
+
// CHECK:--- Call graph Dump ---
-// CHECK-NEXT: {{Function: < root > calls: get5 add test_add mmm foo aaa < > bbb ddd ccc eee fff do_nothing test_single_call $}}
+// CHECK-NEXT: {{Function: < root > calls: get5 add test_add mmm foo aaa < > bbb ddd ccc eee fff do_nothing test_single_call templ templ templUser $}}
+// CHECK-NEXT: {{Function: templUser calls: templ templ $}}
+// CHECK-NEXT: {{Function: templ calls: eee $}}
+// CHECK-NEXT: {{Function: templ calls: ccc $}}
// CHECK-NEXT: {{Function: test_single_call calls: do_nothing $}}
// CHECK-NEXT: {{Function: do_nothing calls: $}}
// CHECK-NEXT: {{Function: fff calls: eee $}}