https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110390
--- Comment #1 from Zhendong Su <zhendong.su at inf dot ethz.ch> --- Another reproducer with fewer flags (and affects 12.* and later). Compiler Explorer: https://godbolt.org/z/fYqEz9EWx [603] % gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/local/home/suz/suz-local/software/local/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --disable-bootstrap --enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk --enable-sanitizers --enable-languages=c,c++ --disable-werror --disable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 14.0.0 20230624 (experimental) [master r14-924-gd709841ae0f] (GCC) [604] % [604] % gcctk -O3 -fsel-sched-pipelining -fschedule-insns -fselective-scheduling2 -fPIC small.c during RTL pass: sched2 small.c: In function ‘h’: small.c:20:1: internal compiler error: in av_set_could_be_blocked_by_bookkeeping_p, at sel-sched.cc:3609 20 | } | ^ 0x7d635a av_set_could_be_blocked_by_bookkeeping_p ../../gcc-trunk/gcc/sel-sched.cc:3609 0x7d635a code_motion_process_successors ../../gcc-trunk/gcc/sel-sched.cc:6386 0x7d635a code_motion_path_driver ../../gcc-trunk/gcc/sel-sched.cc:6608 0xf85b69 code_motion_process_successors ../../gcc-trunk/gcc/sel-sched.cc:6342 0xf85b69 code_motion_path_driver ../../gcc-trunk/gcc/sel-sched.cc:6608 0xf86c18 find_used_regs ../../gcc-trunk/gcc/sel-sched.cc:3272 0xf86c18 collect_unavailable_regs_from_bnds ../../gcc-trunk/gcc/sel-sched.cc:1586 0xf86c18 find_best_reg_for_expr ../../gcc-trunk/gcc/sel-sched.cc:1649 0xf8976c fill_vec_av_set ../../gcc-trunk/gcc/sel-sched.cc:3784 0xf8976c fill_ready_list ../../gcc-trunk/gcc/sel-sched.cc:4014 0xf8976c find_best_expr ../../gcc-trunk/gcc/sel-sched.cc:4374 0xf8976c fill_insns ../../gcc-trunk/gcc/sel-sched.cc:5535 0xf8976c schedule_on_fences ../../gcc-trunk/gcc/sel-sched.cc:7353 0xf8976c sel_sched_region_2 ../../gcc-trunk/gcc/sel-sched.cc:7491 0xf8a928 sel_sched_region_1 ../../gcc-trunk/gcc/sel-sched.cc:7533 0xf8bf46 sel_sched_region(int) ../../gcc-trunk/gcc/sel-sched.cc:7634 0xf8bf46 sel_sched_region(int) ../../gcc-trunk/gcc/sel-sched.cc:7619 0xf8c0e9 run_selective_scheduling() ../../gcc-trunk/gcc/sel-sched.cc:7720 0xf6d7ed rest_of_handle_sched2 ../../gcc-trunk/gcc/sched-rgn.cc:3743 0xf6d7ed execute ../../gcc-trunk/gcc/sched-rgn.cc:3890 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. [605] % [605] % cat small.c static int a; int b, c, d, g; long e, f; extern void l(char *); void h() { char i; int j = 1 >> f / b; L: f = -(-(f % g || a) * (c && f | e)); if (a > e) l(""); if (f) { l("A"); i = j / g; } if (a) goto L; d = i; a = 0; }