https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54200
--- Comment #15 from rguenther at suse dot de <rguenther at suse dot de> --- On Sun, 10 Jul 2016, nightstrike at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54200 > > nightstrike <nightstrike at gmail dot com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |nightstrike at gmail dot com > > --- Comment #14 from nightstrike <nightstrike at gmail dot com> --- > (In reply to Richard Biener from comment #10) > > (In reply to comment #9) > > > I see following in report for x86: > > > > > > FAIL: gcc.dg/guality/pr54200.c -O2 -flto -fuse-linker-plugin > > > -fno-fat-lto-objects line 20 z == 3 > > > > That's what I said in the commit mail. > > Should this be XFAIL then, if it is working as intended in your mind? Not sure if my analysis is still up-to-date given copyrename is no more on GCC 6+. On trunk I see -Os fail on x86_64 and -O2 -flto on i?86. The testcase was to be a regression test for copyrename which was removed on GCC 6+. Note that guality XFAILs tend to be inherently target specific. Looking at the -Os RTL, the REG attrs seem bogus: (insn:TI 16 15 17 4 (parallel [ (set (reg:SI 0 ax [92]) (plus:SI (reg/v:SI 0 ax [orig:89 z ] [89]) (reg/v:SI 4 si [orig:90 x ] [90]))) (clobber (reg:CC 17 flags)) ]) /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.dg/guality/pr54200.c:19 211 {*addsi_1} (expr_list:REG_DEAD (reg/v:SI 4 si [orig:90 x ] [90]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) (ok) (insn:TI 17 16 25 4 (parallel [ (set (reg/v:SI 0 ax [orig:89 z ] [89]) (plus:SI (reg:SI 0 ax [92]) (reg/v:SI 1 dx [orig:91 b ] [91]))) (clobber (reg:CC 17 flags)) ]) /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.dg/guality/pr54200.c:19 211 {*addsi_1} (expr_list:REG_DEAD (reg/v:SI 1 dx [orig:91 b ] [91]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) the destination regdecl is bogus, should be a, not z. (insn 25 17 38 4 (use (reg/i:SI 0 ax)) /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.dg/guality/pr54200.c:22 -1 (nil)) (note 38 25 33 4 NOTE_INSN_EPILOGUE_BEG) (jump_insn:TI 33 38 34 4 (simple_return) /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.dg/guality/pr54200.c:22 697 {simple_return_internal} When single-stepping through foo locals show various bougs debug-info values but I guess that is kind-of expected without VTA. The above shows that while copyrename was fixed to not assign a bogus decl to the PHI result later RTL expansion will do the same mistake again (by means of out-of-SSA coalescing), which -fno-tree-coalesce-vars fixes, but then later when the single return is split somehow bogus information is constructed for debugging. I suggest to open a new bugreport for this.