https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92860
--- Comment #39 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Arseny Solokha from comment #38) > JFTR I can easily reproduce it e.g. in the following setup: > > % powerpc-e300c3-linux-gnu-gcc-11.0.0 -mcpu=power9 -c > gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c > gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c:10:9: > error: #pragma GCC target 'arch=z13' is invalid > 10 | #pragma GCC target ("arch=z13,vx") > | ^~~ > gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c:10:9: > error: #pragma GCC target 'vx' is invalid > gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c:23:9: > internal compiler error: 'global_options' are modified in local context > 23 | #pragma GCC pop_options > | ^~~ > 0xd89fc5 cl_optimization_compare(gcc_options*, gcc_options*) > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/build/gcc/options-save.c:10459 > 0x9196b6 handle_pragma_pop_options > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c-family/c-pragma.c:1090 > 0x895510 c_parser_pragma > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c/c-parser.c:12544 > 0x8b7c75 c_parser_external_declaration > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c/c-parser.c:1754 > 0x8b82b1 c_parser_translation_unit > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c/c-parser.c:1646 > 0x8b82b1 c_parse_file() > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c/c-parser.c:21822 > 0x916cb7 c_common_parse_file() > > /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200705/ > work/gcc-11-20200705/gcc/c-family/c-opts.c:1190 Thank you for the test-case, but it's not much useful, it's an ice-on-invalid code. Fails due to: (gdb) p ptr1->x_rs6000_cpu_index $1 = 51 (gdb) p ptr2->x_rs6000_cpu_index $2 = -1