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