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.