Hi!

Even without the C++ FE changes, I believe there are occassional DECL_UID
differences (I believe the code just cares that the ordering of the uids
is stable), and the fancy DEC_IGNORED names can leak into the
-fdump-final-insns= dumps (e.g. in MEM_EXPRs or REG_EXPRs.

The following patch treats those similarly to how the various TDF_NOUID
flags handle it in the dumps.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2016-04-12  Jakub Jelinek  <ja...@redhat.com>

        PR c++/70594
        * tree-sra.c (make_fancy_decl_name): Don't add DECL_UID
        into the fancy names if -fdump-final-insns=.

--- gcc/tree-sra.c.jj   2016-04-12 11:08:10.000000000 +0200
+++ gcc/tree-sra.c      2016-04-12 11:15:35.519676357 +0200
@@ -1543,6 +1543,9 @@ make_fancy_decl_name (tree decl)
   if (name)
     obstack_grow (&name_obstack, IDENTIFIER_POINTER (name),
                  IDENTIFIER_LENGTH (name));
+  /* Avoid -fcompare-debug issues on DECL_UID differences.  */
+  else if (flag_dump_final_insns != NULL)
+    obstack_grow (&name_obstack, "Dxxxx", 5);
   else
     {
       sprintf (buffer, "D%u", DECL_UID (decl));

        Jakub

Reply via email to