https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107454

            Bug ID: 107454
           Summary: ICE: Segmentation fault (in single_set)
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: error-recovery, ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gcc 13.0.0 20221023 snapshot (g:0e37fd4dc74c1db99cdc7d71ef378e1221253c6f) ICEs
when compiling gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c w/
-fstack-protector-all -fno-tree-ter:

% aarch64-linux-gnu-gcc-13 -fstack-protector-all -fno-tree-ter -c
gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c
gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c: In function 'f':
gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c:14:3: error: this operation
requires the SVE ISA extension
   14 |   take_svuint8_eventually (0, 0, 0, 0, 0, 0, 0, 0, *ptr); /* { dg-error
{this operation requires the SVE ISA extension} } */
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c:14:3: note: you can enable
SVE using the command-line option '-march', or by using the 'target' attribute
or pragma
during RTL pass: expand
gcc/testsuite/gcc.target/aarch64/sve/pcs/nosve_5.c:14:3: internal compiler
error: Segmentation fault
0xf32fbf crash_signal
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/toplev.cc:314
0xb60a40 single_set(rtx_insn const*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/rtl.h:3594
0xb60a40 emit_move_insn(rtx_def*, rtx_def*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:4345
0xb36853 force_reg(machine_mode, rtx_def*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/explow.cc:678
0x17f97b1 gen_adddi3(rtx_def*, rtx_def*, rtx_def*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/config/aarch64/aarch64.md:2069
0xe06252 expand_binop_directly
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/optabs.cc:1440
0xe03cd1 expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*,
int, optab_methods)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/optabs.cc:1527
0xb66438 force_operand(rtx_def*, rtx_def*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:8222
0xb36e5a copy_to_mode_reg(machine_mode, rtx_def*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/explow.cc:650
0xb62f9c emit_block_op_via_libcall(built_in_function, rtx_def*, rtx_def*,
rtx_def*, bool)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:2334
0xb66adc emit_block_copy_via_libcall
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.h:90
0xb66adc emit_block_move_hints(rtx_def*, rtx_def*, rtx_def*, block_op_methods,
unsigned int, long, unsigned long, unsigned long, unsigned long, bool, bool*,
bool)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:2073
0xb670b1 emit_block_move(rtx_def*, rtx_def*, rtx_def*, block_op_methods)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:2095
0xb699bb store_expr(tree_node*, rtx_def*, int, bool, bool)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:6507
0xb6ba60 expand_assignment(tree_node*, tree_node*, bool)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/expr.cc:6051
0xa2e37c expand_gimple_stmt_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/cfgexpand.cc:3946
0xa2e37c expand_gimple_stmt
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/cfgexpand.cc:4044
0xa3517e expand_gimple_basic_block
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/cfgexpand.cc:6096
0xa36bb7 execute
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221023/work/gcc-13-20221023/gcc/cfgexpand.cc:6822

W/ any of the given options omitted, gcc correctly rejects this code. It is
different from PR99657 in that gcc still emits the correct diagnostics before
an ICE.

Reply via email to