https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105818
Bug ID: 105818 Summary: ICE: 'global_options' are modified in local context Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: ice-checking, ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com CC: marxin at gcc dot gnu.org Target Milestone: --- Target: powerpc-e300c3-linux-gnu gcc 13.0.0 20220529 snapshot (g:58a40e76ebadce78639644cd3d56e42b68336927) ICEs when compiling the following testcase, reduced from gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s255.c, w/ -Os -fno-tree-vectorize:#pragma GCC optimize "-fno-tree-vectorize" void foo (void) { void bar (void); } % powerpc-e300c3-linux-gnu-gcc-13.0.0 -Os -fno-tree-vectorize -c sgyptdev.c sgyptdev.c: In function 'foo': sgyptdev.c:7:3: internal compiler error: 'global_options' are modified in local context 7 | bar (void); | ^~~ 0xd5b42b cl_optimization_compare(gcc_options*, gcc_options*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/build/gcc/options-save.cc:14281 0x8e9234 handle_optimize_attribute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c-family/c-attribs.cc:5581 0x7e0fa4 decl_attributes(tree_node**, tree_node*, int, tree_node*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/attribs.cc:872 0x7fe1b7 start_decl(c_declarator*, c_declspecs*, bool, tree_node*, unsigned int*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-decl.cc:5232 0x8625f5 c_parser_declaration_or_fndef /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:2315 0x841333 c_parser_compound_statement_nostart /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:5720 0x862085 c_parser_compound_statement /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:5617 0x863c18 c_parser_declaration_or_fndef /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:2552 0x86c003 c_parser_external_declaration /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:1787 0x86ca5b c_parser_translation_unit /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:1660 0x86ca5b c_parse_file() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c/c-parser.cc:23416 0x8cfb71 c_common_parse_file() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-13.0.0_p20220529/work/gcc-13-20220529/gcc/c-family/c-opts.cc:1235