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

Reply via email to