aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuliano Belinassi <giuliano.belinassi@usp.br>2019-10-22 19:05:49 +0000
committerGiuliano Belinassi <giulianob@gcc.gnu.org>2019-10-22 19:05:49 +0000
commit51940760d7158aeb8d6747c9ee0b784d6869c7ef (patch)
tree993abc2f50f8beb33742c5dff8d85c752ee51746
parentebb3afe2b98a9a4b1c8cc5fd2745a1037c06d827 (diff)
downloadgcc-51940760d7158aeb8d6747c9ee0b784d6869c7ef.zip
gcc-51940760d7158aeb8d6747c9ee0b784d6869c7ef.tar.gz
gcc-51940760d7158aeb8d6747c9ee0b784d6869c7ef.tar.bz2
Fix incorrect merge of conflictant names in `dump_graphviz`
When using lto-dump -callgraph with two or more .o files containing distinct functions with the same name, dump_graphviz incorrectly merged those functions into a single node. This patch fixes this issue by calling `dump_name` instead of `name`, therefore concat'ing the function name with the node's id. To understeand what was the issue, let's say you have two files: a.c: static void foo (void) { do_something (); } b.c: static void foo (void) { do_something_else (); } These are distinct functions and should be represented as distinct nodes in the callgraph dump. 2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br> * cgraph.c (dump_graphviz): Change name to dump_name From-SVN: r277299
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cgraph.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b1a3367..f3450ee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
+
+ * cgraph.c (dump_graphviz): Change name to dump_name
+
2019-10-22 Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.md (rsbsi_carryin_reg): New pattern.
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 8b752d8..671306d 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -2155,7 +2155,7 @@ cgraph_node::dump_graphviz (FILE *f)
{
cgraph_node *callee = edge->callee;
- fprintf (f, "\t\"%s\" -> \"%s\"\n", name (), callee->name ());
+ fprintf (f, "\t\"%s\" -> \"%s\"\n", dump_name (), callee->dump_name ());
}
}