http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60029

            Bug ID: 60029
           Summary: [4.9 regression] FAIL: c-c++-common/dfp/convert-bfp.c
                    -std=c++11 execution test
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sch...@linux-m68k.org
            Target: powerpc-*-*

$ gcc/xg++ -Bgcc/ ../gcc/testsuite/c-c++-common/dfp/convert-bfp.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -nostdinc++
-Ipowerpc64-linux/32/libstdc++-v3/include/powerpc64-linux
-Ipowerpc64-linux/32/libstdc++-v3/include -I../libstdc++-v3/libsupc++
-I../libstdc++-v3/include/backward -I../libstdc++-v3/testsuite/util
-fmessage-length=0 -std=c++11 -Lpowerpc64-linux/32/libstdc++-v3/src/.libs
-Bpowerpc64-linux/32/libstdc++-v3/src/.libs
-Lpowerpc64-linux/32/libstdc++-v3/src/.libs -lm -m32 -o ./convert-bfp.exe 
$
LD_LIBRARY_PATH=.:powerpc64-linux/32/libstdc++-v3/src/.libs:powerpc64-linux/32/libstdc++-v3/src/.libs:gcc:gcc/32:.:powerpc64-linux/32/libstdc++-v3/src/.libs:powerpc64-linux/32/libstdc++-v3/src/.libs:gcc:gcc/32:powerpc64-linux/libstdc++-v3/src/.libs:powerpc64-linux/libsanitizer/.libs:powerpc64-linux/libssp/.libs:powerpc64-linux/libgomp/.libs:powerpc64-linux/libitm/.libs:powerpc64-linux/libatomic/.libs:./gcc:./prev-gcc
./convert-bfp.exe
Segmentation fault

>From convert-bfp.c.214r.reload:

(insn 666 665 316 30 (set (reg:DD 8 8)
        (mem/c:DD (plus:SI (reg/f:SI 31 31)
                (const_int 24 [0x18])) [0  S8 A64]))
gcc/testsuite/c-c++-common/dfp/convert-bfp.c:85 445 {*movdd_hardfloat32}
     (nil))
(insn 316 666 317 30 (set (mem/v/c:SD (lo_sum:SI (reg:SI 9 9 [346])
                (symbol_ref:SI ("d32") [flags 0x6]  <var_decl 0x3fff89f17be0
d32>)) [0 d32+0 S4 A32])
        (reg:SD 8 8)) gcc/testsuite/c-c++-common/dfp/convert-bfp.c:85 441
{movsd_hardfloat}
     (nil))

With -m32 insn 666 is split into two insns that clobber both register 8 and 9.

(insn 754 665 755 (set (reg:SI 8 8)
        (mem/c:SI (plus:SI (reg/f:SI 31 31)
                (const_int 24 [0x18])) [0  S4 A64]))
gcc/testsuite/c-c++-common/dfp/convert-bfp.c:85 434 {*movsi_internal1}
     (nil))
(insn 755 754 316 (set (reg:SI 9 9 [orig:8+4 ] [8])
        (mem/c:SI (plus:SI (reg/f:SI 31 31)
                (const_int 28 [0x1c])) [0  S4 A32]))
gcc/testsuite/c-c++-common/dfp/convert-bfp.c:85 434 {*movsi_internal1}
     (nil))

Reply via email to