Fix incorrect merge of conflictant names in `dump_graphviz`
authorGiuliano Belinassi <giuliano.belinassi@usp.br>
Tue, 22 Oct 2019 19:05:49 +0000 (19:05 +0000)
committerGiuliano Belinassi <giulianob@gcc.gnu.org>
Tue, 22 Oct 2019 19:05:49 +0000 (19:05 +0000)
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

gcc/ChangeLog
gcc/cgraph.c

index b1a336796323bf337f42a60f26c021f12b490732..f3450eea61780c581ebd2fef48c5e8b2795f4acc 100644 (file)
@@ -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.
index 8b752d83809810624378f0e7e479d371247ac5c2..671306db5ca4048fae668c22c37b56a51e117801 100644 (file)
@@ -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 ());
     }
 }