https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105069
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The ICE started with the PR92860 change. sh_option_optimization_table has: static const struct default_options sh_option_optimization_table[] = { { OPT_LEVELS_SIZE, OPT_mdiv_, SH_DIV_STR_FOR_SIZE, 1 }, { OPT_LEVELS_0_ONLY, OPT_mdiv_, "", 1 }, { OPT_LEVELS_ALL, OPT__param_simultaneous_prefetches_, NULL, 2 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; and so wants to change sh_div_str for -Os or -O0. But I think SH doesn't support target attribute. Does sh_override_options_after_change need to do something, or is target attribute handling now required for backends that do want to change some Target options based on optimization levels?