diff options
-rw-r--r-- | include/clang/Analysis/CallGraph.h | 1 | ||||
-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 $}} |