https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82982
Bug ID: 82982 Summary: [8 Regression] ICE: qsort checking failed (error: qsort comparator non-negative on sorted output: 5) in ready_sort_real in haifa scheduler Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: ice-checking, ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu*, powerpcspe-*-linux-gnu* gcc-8.0.0-alpha20171112 snapshot (r254666) for 32-bit BE powerpc targets ICEs on the following snippet w/ -misel -Ofast -fgraphite-identity -funroll-loops -fsched2-use-superblocks: int xw, mj; void km (void) { int r1 = 0; signed char *ny = (signed char *)&xw; if (xw != 0) for (;;) { for (xw = 1; xw < 3; ++xw) { for (*ny = 1; *ny < 2; ++*ny) ny = (signed char *)&mj; ++r1; if (r1 != 0) { w5: if (xw != 0) { for (*ny = 0; *ny < 1; ++*ny) ny = (signed char *)&r1; ++xw; } goto w5; } } } } % powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20171112 -misel -Ofast -fgraphite-identity -funroll-loops -fsched2-use-superblocks -c jyt0oer4.c jyt0oer4.c: In function 'km': jyt0oer4.c:31:1: error: qsort comparator non-negative on sorted output: 5 } ^ during RTL pass: sched2 jyt0oer4.c:31:1: internal compiler error: qsort checking failed 0x5c5263 qsort_chk_error /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/vec.c:222 0x150878a qsort_chk(void*, unsigned long, unsigned long, int (*)(void const*, void const*)) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/vec.c:274 0x1401e7a ready_sort_real /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/haifa-sched.c:3087 0x140809f schedule_block(basic_block_def**, void*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/haifa-sched.c:6675 0x14a48f9 schedule_ebb(rtx_insn*, rtx_insn*, bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/sched-ebb.c:537 0x14a5106 schedule_ebbs() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/sched-ebb.c:657 0xc115f4 rest_of_handle_sched2 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/sched-rgn.c:3735 0xc115f4 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20171112/work/gcc-8-20171112/gcc/sched-rgn.c:3873