This fixes ICEs when dumping PTA pass details (I'm pretty sure
it will not fix PR56716, but this issue is reported there, too).

Bootstrap and regtest running on x86_64-unknown-linux-gnu.

Richard.

2013-03-27  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/56716
        * tree-ssa-structalias.c (perform_var_substitution): Adjust
        dumping for ref nodes.

Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c  (revision 197158)
+++ gcc/tree-ssa-structalias.c  (working copy)
@@ -2292,18 +2292,37 @@ perform_var_substitution (constraint_gra
       {
        unsigned j = si->node_mapping[i];
        if (j != i)
-         fprintf (dump_file, "%s node id %d (%s) mapped to SCC leader "
-                  "node id %d (%s)\n",
-                   bitmap_bit_p (graph->direct_nodes, i)
-                   ? "Direct" : "Indirect", i, get_varinfo (i)->name,
-                   j, get_varinfo (j)->name);
+         {
+           fprintf (dump_file, "%s node id %d ",
+                    bitmap_bit_p (graph->direct_nodes, i)
+                    ? "Direct" : "Indirect", i);
+           if (i < FIRST_REF_NODE)
+             fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
+           else
+             fprintf (dump_file, "\"*%s\"",
+                      get_varinfo (i - FIRST_REF_NODE)->name);
+           fprintf (dump_file, " mapped to SCC leader node id %d ", j);
+           if (j < FIRST_REF_NODE)
+             fprintf (dump_file, "\"%s\"\n", get_varinfo (j)->name);
+           else
+             fprintf (dump_file, "\"*%s\"\n",
+                      get_varinfo (j - FIRST_REF_NODE)->name);
+         }
        else
-         fprintf (dump_file,
-                  "Equivalence classes for %s node id %d (%s): pointer %d"
-                  ", location %d\n",
-                  bitmap_bit_p (graph->direct_nodes, i)
-                  ? "direct" : "indirect", i, get_varinfo (i)->name,
-                  graph->pointer_label[i], graph->loc_label[i]);
+         {
+           fprintf (dump_file,
+                    "Equivalence classes for %s node id %d ",
+                    bitmap_bit_p (graph->direct_nodes, i)
+                    ? "direct" : "indirect", i);
+           if (i < FIRST_REF_NODE)
+             fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
+           else
+             fprintf (dump_file, "\"*%s\"",
+                      get_varinfo (i - FIRST_REF_NODE)->name);
+           fprintf (dump_file,
+                    ": pointer %d, location %d\n",
+                    graph->pointer_label[i], graph->loc_label[i]);
+         }
       }
 
   /* Quickly eliminate our non-pointer variables.  */

Reply via email to