On 11/07/2017 06:15 PM, Andreas Schwab wrote:
This breaks g++.dg/torture/pr64669.C with -O3 on ia64:
$ gcc/xg++ -Bgcc/ ../../gcc/gcc/testsuite/g++.dg/torture/pr64669.C -nostdinc++
-Iia64-suse-linux/libstdc++-v3/include/ia64-suse-linux
-Iia64-suse-linux/libstdc++-v3/include -I../libstdc++-v3/libsupc++
-I../libstdc++-v3/include/backward -I../libstdc++-v3/testsuite/util -O3 -S -o
pr64669.s
../../gcc/gcc/testsuite/g++.dg/torture/pr64669.C: In member function ‘const
char* Lex::advance_one_char(const char*, bool, unsigned int*, bool*)’:
../../gcc/gcc/testsuite/g++.dg/torture/pr64669.C:65:1: error: qsort comparator
non-negative on sorted output: 1
}
^
during RTL pass: mach
../../gcc/gcc/testsuite/g++.dg/torture/pr64669.C:65:1: internal compiler error:
qsort checking failed
0x40000000001cc80f qsort_chk_error
../../gcc/vec.c:222
0x40000000025d20cf qsort_chk(void*, unsigned long, unsigned long, int (*)(void
const*, void const*))
../../gcc/vec.c:274
0x40000000014f680f vec<_expr*, va_heap, vl_embed>::qsort(int (*)(void const*,
void const*))
../../gcc/vec.h:973
0x40000000014f680f vec<_expr*, va_heap, vl_ptr>::qsort(int (*)(void const*,
void const*))
../../gcc/vec.h:1735
0x40000000014f680f fill_vec_av_set
../../gcc/sel-sched.c:3725
0x40000000014fc59f fill_ready_list
../../gcc/sel-sched.c:4022
0x40000000014fc59f find_best_expr
../../gcc/sel-sched.c:4382
0x40000000014fc59f fill_insns
../../gcc/sel-sched.c:5539
0x40000000014fc59f schedule_on_fences
../../gcc/sel-sched.c:7356
0x40000000014fc59f sel_sched_region_2
../../gcc/sel-sched.c:7494
0x4000000001503acf sel_sched_region_1
../../gcc/sel-sched.c:7536
0x4000000001503acf sel_sched_region(int)
../../gcc/sel-sched.c:7637
0x4000000001504e6f run_selective_scheduling()
../../gcc/sel-sched.c:7713
0x4000000001df9bdf ia64_reorg
../../gcc/config/ia64/ia64.c:9854
0x400000000146d40f execute
../../gcc/reorg.c:3947
Andreas.
Hi Andreas.
That will be very probably dup of PR82398.
Martin