https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100518
Bug ID: 100518
Summary: ICE in copy_to_mode_reg, at explow.c:651
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-linux-gnu
Target: aarch64-linux-gnu
It's likely a recent regression:
$ cat stringop.i
int unsigned_range_min, unsigned_range_max, a11___trans_tmp_1;
void a11() {
a11___trans_tmp_1 = unsigned_range_max < unsigned_range_min;
__builtin_memset((char *)1, 0, a11___trans_tmp_1);
}
$ aarch64-linux-gnu-gcc stringop.i -mabi=ilp32 -mstrict-align -O2 -c
during RTL pass: expand
stringop.i: In function ‘a11’:
stringop.i:5:3: internal compiler error: in copy_to_mode_reg, at explow.c:651
5 | __builtin_memset((char *)1, 0, a11___trans_tmp_1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x684fe3 copy_to_mode_reg(machine_mode, rtx_def*)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/explow.c:651
0x7b593f try_store_by_multiple_pieces(rtx_def*, rtx_def*, unsigned int,
unsigned long, unsigned long, rtx_def*, char, unsigned int)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6758
0x8ef134 clear_storage_hints(rtx_def*, rtx_def*, block_op_methods, unsigned
int, long, unsigned long, unsigned long, unsigned long, unsigned int)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.c:3201
0x7b620e expand_builtin_memset_args
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6949
0x7c61ee expand_builtin_memset
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6665
0x7c61ee expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:10167
0x8e657f expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.c:11458
0x7e89aa expand_expr
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.h:301
0x7e89aa expand_call_stmt
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:2843
0x7e89aa expand_gimple_stmt_1
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:3847
0x7e89aa expand_gimple_stmt
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:4011
0x7e8d1e expand_gimple_tailcall
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:4057
0x7ee571 expand_gimple_basic_block
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:6025
0x7ee571 execute
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:6732
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.