From: Erich Keane Date: Wed, 12 Dec 2018 18:11:36 +0000 (+0000) Subject: Change CallGraph print to show the fully qualified name X-Git-Tag: llvmorg-8.0.0-rc1~2290 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e46c4b83f6c1788f78715ae2b66c35659b42538;p=platform%2Fupstream%2Fllvm.git Change CallGraph print to show the fully qualified name CallGraph previously would just show the normal name of a function, which gets really confusing when using it on large C++ projects. This patch switches the printName call to a printQualifiedName, so that the namespaces are included. Change-Id: Ie086d863f6b2251be92109ea1b0946825b28b49a llvm-svn: 348950 --- diff --git a/clang/lib/Analysis/CallGraph.cpp b/clang/lib/Analysis/CallGraph.cpp index bac0068..66a6f1a 100644 --- a/clang/lib/Analysis/CallGraph.cpp +++ b/clang/lib/Analysis/CallGraph.cpp @@ -212,7 +212,7 @@ void CallGraph::viewGraph() const { void CallGraphNode::print(raw_ostream &os) const { if (const NamedDecl *ND = dyn_cast_or_null(FD)) - return ND->printName(os); + return ND->printQualifiedName(os); os << "< >"; } diff --git a/clang/test/Analysis/debug-CallGraph.cpp b/clang/test/Analysis/debug-CallGraph.cpp index 7f9ee4d..1d6844f 100644 --- a/clang/test/Analysis/debug-CallGraph.cpp +++ b/clang/test/Analysis/debug-CallGraph.cpp @@ -51,6 +51,7 @@ void test_single_call() { do_nothing(); } +namespace SomeNS { template void templ(T t) { ccc(); @@ -61,17 +62,17 @@ void templ(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 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: < root > calls: get5 add test_add mmm foo aaa < > bbb ddd ccc eee fff do_nothing test_single_call SomeNS::templ SomeNS::templ SomeNS::templUser $}} +// CHECK-NEXT: {{Function: SomeNS::templUser calls: SomeNS::templ SomeNS::templ $}} +// CHECK-NEXT: {{Function: SomeNS::templ calls: eee $}} +// CHECK-NEXT: {{Function: SomeNS::templ calls: ccc $}} // CHECK-NEXT: {{Function: test_single_call calls: do_nothing $}} // CHECK-NEXT: {{Function: do_nothing calls: $}} // CHECK-NEXT: {{Function: fff calls: eee $}}