This breaks gfortran.dg/bounds_check_15.f90 with -O3 -funroll-loops
-fbounds-check on ia64:

Error: qsort comparator non-negative on sorted output: 1
during RTL pass: mach
../gcc/testsuite/gfortran.dg/bounds_check_15.f90:32:0: internal compiler error: 
qsort checking failed
0x40000000001cc1ff qsort_chk_error
        ../../gcc/vec.c:222
0x400000000223130f qsort_chk(void*, unsigned long, unsigned long, int (*)(void 
const*, void const*))
        ../../gcc/vec.c:274
0x400000000114ba4f vec<_expr*, va_heap, vl_embed>::qsort(int (*)(void const*, 
void const*))
        ../../gcc/vec.h:973
0x400000000114ba4f vec<_expr*, va_heap, vl_ptr>::qsort(int (*)(void const*, 
void const*))
        ../../gcc/vec.h:1735
0x400000000114ba4f fill_vec_av_set
        ../../gcc/sel-sched.c:3725
0x40000000011517df fill_ready_list
        ../../gcc/sel-sched.c:4022
0x40000000011517df find_best_expr
        ../../gcc/sel-sched.c:4382
0x40000000011517df fill_insns
        ../../gcc/sel-sched.c:5539
0x40000000011517df schedule_on_fences
        ../../gcc/sel-sched.c:7356
0x40000000011517df sel_sched_region_2
        ../../gcc/sel-sched.c:7494
0x4000000001158d0f sel_sched_region_1
        ../../gcc/sel-sched.c:7536
0x4000000001158d0f sel_sched_region(int)
        ../../gcc/sel-sched.c:7637
0x400000000115a0af run_selective_scheduling()
        ../../gcc/sel-sched.c:7713
0x4000000001a50a5f ia64_reorg
        ../../gcc/config/ia64/ia64.c:9854
0x40000000010c2a8f execute
        ../../gcc/reorg.c:3947

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

Reply via email to