[Bug c++/70761] New: C++ ICE on ppc64le and ppc64 with -m64

markos at freevec dot org gcc-bugzilla@gcc.gnu.org
Fri Apr 22 10:10:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70761

            Bug ID: 70761
           Summary: C++ ICE on ppc64le and ppc64 with -m64
           Product: gcc
           Version: 5.3.1
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: markos at freevec dot org
  Target Milestone: ---
            Target: ppc64le, ppc64

Created attachment 38326
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38326&action=edit
Reduced testcase for ICE on ppc64/ppc64le

On ppc64le (Debian testing, g++ 5.3.1-14)

$ g++-5 -O2 testcase.cpp 
testcase.cpp: In function ‘void x36()’:
testcase.cpp:150:1: error: unable to generate reloads for:
 }
 ^
(jump_insn 10 5 11 2 (parallel [
            (set (pc)
                (if_then_else (eq (reg:DI 3 3)
                        (const_int 1 [0x1]))
                    (label_ref:DI 20)
                    (pc)))
            (set (reg:DI 63 31 [orig:157 D.3107 ] [157])
                (plus:DI (reg:DI 3 3)
                    (const_int -1 [0xffffffffffffffff])))
            (clobber (scratch:CC))
            (clobber (scratch:DI))
        ]) testcase.cpp:132 794 {*ctrdi_internal5}
     (expr_list:REG_DEAD (reg:DI 3 3)
        (int_list:REG_BR_PROB 4877 (nil)))
 -> 20)
testcase.cpp:150:1: internal compiler error: in find_reloads, at reload.c:3862
0x102c425b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../src/gcc/rtl-error.c:110
0x109dcd8f find_reloads(rtx_insn*, int, int, int, short*)
        ../../src/gcc/reload.c:3862
0x109f03a3 calculate_needs_all_insns
        ../../src/gcc/reload1.c:1540
0x109f03a3 reload(rtx_insn*, int)
        ../../src/gcc/reload1.c:1028
0x10903027 do_reload
        ../../src/gcc/ira.c:5454
0x10903027 execute
        ../../src/gcc/ira.c:5613
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.

On powerpc32 (Debian testing, g++ 5.3.1-14, only when -m64 is added)
$ g++-5 -m64 -O2 testcase.cpp 
testcase.cpp: In function ‘void x36()’:
testcase.cpp:150:1: error: unable to generate reloads for:
 }
 ^
(jump_insn 10 5 11 2 (parallel [
            (set (pc)
                (if_then_else (eq (reg:DI 3 3)
                        (const_int 1 [0x1]))
                    (label_ref:DI 20)
                    (pc)))
            (set (reg:DI 63 31 [orig:157 D.3085 ] [157])
                (plus:DI (reg:DI 3 3)
                    (const_int -1 [0xffffffffffffffff])))
            (clobber (scratch:CC))
            (clobber (scratch:DI))
        ]) testcase.cpp:132 794 {*ctrdi_internal5}
     (expr_list:REG_DEAD (reg:DI 3 3)
        (int_list:REG_BR_PROB 4877 (nil)))
 -> 20)
testcase.cpp:150:1: internal compiler error: in find_reloads, at reload.c:3862
0x1027c933 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../src/gcc/rtl-error.c:110
0x108ecbf7 find_reloads(rtx_insn*, int, int, int, short*)
        ../../src/gcc/reload.c:3862
0x108feefb calculate_needs_all_insns
        ../../src/gcc/reload1.c:1540
0x108feefb reload(rtx_insn*, int)
        ../../src/gcc/reload1.c:1028
0x1082d9db do_reload
        ../../src/gcc/ira.c:5454
0x1082d9db execute
        ../../src/gcc/ira.c:5613
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.

Reduced testcase attached, same for both architectures


More information about the Gcc-bugs mailing list