https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105069
--- Comment #1 from John Scott <jscott at posteo dot net> --- Here is a backtrace: bar.c:2:1: internal compiler error: ‘global_options’ are modified in local context 2 | [[gnu::optimize("Os")]] int main(void) {} | ^ 0xe71b6b cl_optimization_compare(gcc_options*, gcc_options*) /tmp/build/gcc/options-save.cc:13029 0xa077ac handle_optimize_attribute /tmp/gcc/gcc/c-family/c-attribs.cc:5567 0x9056f2 decl_attributes(tree_node**, tree_node*, int, tree_node*) /tmp/gcc/gcc/attribs.cc:867 0x9229bc start_function(c_declspecs*, c_declarator*, tree_node*) /tmp/gcc/gcc/c/c-decl.cc:9516 0x984a0e c_parser_declaration_or_fndef /tmp/gcc/gcc/c/c-parser.cc:2445 0x98db33 c_parser_external_declaration /tmp/gcc/gcc/c/c-parser.cc:1779 0x98e57b c_parser_translation_unit /tmp/gcc/gcc/c/c-parser.cc:1652 0x98e57b c_parse_file() /tmp/gcc/gcc/c/c-parser.cc:23357 0x9eef8d c_common_parse_file() /tmp/gcc/gcc/c-family/c-opts.cc:1240