https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83480
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Apparently we only disable -fvar-tracking-assignments by default if sel-sched, not disable it unconditionally. So, while we could and should change: if (debug_nonbind_markers_p == AUTODETECT_VALUE) debug_nonbind_markers_p = optimize && debug_info_level >= DINFO_LEVEL_NORMAL && (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG); to if (debug_nonbind_markers_p == AUTODETECT_VALUE) debug_nonbind_markers_p = (optimize && debug_info_level >= DINFO_LEVEL_NORMAL && (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG) && !(flag_selective_scheduling || flag_selective_scheduling2)); the testcase would still ICE with -gstatement-frontiers.