https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88652
Bug ID: 88652
Summary: sel-sched.c:1545:11: runtime error: index 2 out of
bounds for type 'long unsigned int [2]'
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
Blocks: 85099
Target Milestone: ---
UBSAN GCC complains about:
$ ./xgcc -B.
/home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr87759.c -c -O
-fschedule-insns -fselective-scheduling -fno-tree-dce
/home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr87759.c: In
function ‘rc’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr87759.c:20:39:
warning: initialization of ‘__int128 unsigned *’ from incompatible pointer type
‘int *’ [-Wincompatible-pointer-types]
20 | unsigned __int128 *ar = &cc;
| ^
/home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr87759.c:29:54:
warning: right shift count >= width of type [-Wshift-count-overflow]
29 | y5 = (cc + 1) == ((*ar /= *oi) << ((zp >>= 128) / cc));
| ^~~
../../gcc/sel-sched.c:1545:11: runtime error: index 2 out of bounds for type
'long unsigned int [2]'
#0 0x1ed74cb in verify_target_availability ../../gcc/sel-sched.c:1545
#1 0x1ed7faf in find_best_reg_for_expr ../../gcc/sel-sched.c:1679
#2 0x1ee4ef9 in fill_vec_av_set ../../gcc/sel-sched.c:3797
#3 0x1ee6629 in fill_ready_list ../../gcc/sel-sched.c:4027
#4 0x1ee88a5 in find_best_expr ../../gcc/sel-sched.c:4387
#5 0x1ef18bb in fill_insns ../../gcc/sel-sched.c:5548
#6 0x1ef9ffb in schedule_on_fences ../../gcc/sel-sched.c:7364
#7 0x1efafa2 in sel_sched_region_2 ../../gcc/sel-sched.c:7502
#8 0x1efb3f2 in sel_sched_region_1 ../../gcc/sel-sched.c:7544
#9 0x1efc11b in sel_sched_region(int) ../../gcc/sel-sched.c:7645
#10 0x1efc353 in run_selective_scheduling() ../../gcc/sel-sched.c:7731
#11 0x1e86883 in rest_of_handle_sched ../../gcc/sched-rgn.c:3717
#12 0x1e86bde in execute ../../gcc/sched-rgn.c:3827
#13 0x1ba25da in execute_one_pass(opt_pass*) ../../gcc/passes.c:2483
#14 0x1ba2e70 in execute_pass_list_1 ../../gcc/passes.c:2569
#15 0x1ba2f25 in execute_pass_list_1 ../../gcc/passes.c:2570
#16 0x1ba2fc4 in execute_pass_list(function*, opt_pass*)
../../gcc/passes.c:2580
#17 0xe3a3f6 in cgraph_node::expand() ../../gcc/cgraphunit.c:2196
#18 0xe3b9bd in expand_all_functions ../../gcc/cgraphunit.c:2334
#19 0xe3e02c in symbol_table::compile() ../../gcc/cgraphunit.c:2685
#20 0xe3ea92 in symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2863
#21 0x1ffa639 in compile_file ../../gcc/toplev.c:481
#22 0x20019d5 in do_compile ../../gcc/toplev.c:2176
#23 0x2002003 in toplev::main(int, char**) ../../gcc/toplev.c:2311
#24 0x4333837 in main ../../gcc/main.c:39
#25 0x7ffff6246fea in __libc_start_main ../csu/libc-start.c:308
#26 0x85b559 in _start
(/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x85b559)
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85099
[Bug 85099] [meta-bug] selective scheduling issues