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."