https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86096
Bug ID: 86096 Summary: ICE: qsort checking failed (error: qsort comparator non-negative on sorted output: 0) Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-checking, ice-on-invalid-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* Created attachment 44254 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44254&action=edit Reduced testcase gcc-9.0.0-alpha20180603 snapshot (r261132) ICEs when compiling the attached snippet w/ -misel -Os -floop-parallelize-all -frename-registers -fno-caller-saves -fno-gcse -fno-isolate-erroneous-paths-dereference -fno-split-wide-types -fno-tree-dominator-opts -fno-tree-vrp -g: % powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20180603 -misel -Os -floop-parallelize-all -frename-registers -fno-caller-saves -fno-gcse -fno-isolate-erroneous-paths-dereference -fno-split-wide-types -fno-tree-dominator-opts -fno-tree-vrp -g -c layafnq7.c layafnq7.c: In function 'os': layafnq7.c:43:1: error: qsort comparator non-negative on sorted output: 0 } ^ during RTL pass: rnreg layafnq7.c:43:1: internal compiler error: qsort checking failed 0x58cb34 qsort_chk_error /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/vec.c:201 0x15576f9 qsort_chk(void*, unsigned long, unsigned long, int (*)(void const*, void const*)) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/vec.c:253 0x7b406a vec<df_mw_hardreg*, va_heap, vl_embed>::qsort(int (*)(void const*, void const*)) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/vec.h:1099 0x7b406a vec<df_mw_hardreg*, va_heap, vl_ptr>::qsort(int (*)(void const*, void const*)) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/vec.h:1862 0x7b406a df_sort_and_compress_mws /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:2252 0x7b406a df_canonize_collection_rec /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:2281 0x7b65cd df_insn_refs_collect /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:3223 0x7b6a2f df_insn_refs_verify /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:4082 0x7b892f df_insn_rescan(rtx_insn*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:1065 0x7bad9c df_process_deferred_rescans() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-scan.c:1246 0x7a175f df_finish_pass(bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20180603/work/gcc-9-20180603/gcc/df-core.c:651