https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96308
Bug ID: 96308 Summary: ICE in s390_cannot_force_const_mem, at config/s390/s390.c:4153 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 CC: krebbel at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: s390x-linux-gnu I see the following ICE on: $ cat no_destroy.cpp struct NonTrivial3 { ~NonTrivial3(); }; void i() { thread_local NonTrivial3 tlarr[10]; } $ ~/BIG/bin/s390x/dev/shm/buildbot/install/gcc/bin/s390x-linux-gnu-g++ no_destroy.cpp -Os -fno-move-loop-invariants during RTL pass: loop2_doloop no_destroy.cpp: In function ‘void __tcf_0(void*)’: no_destroy.cpp:4:45: internal compiler error: in s390_cannot_force_const_mem, at config/s390/s390.c:4153 4 | void i() { thread_local NonTrivial3 tlarr[10]; } | ^ 0x5c4bdf s390_cannot_force_const_mem /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/config/s390/s390.c:4153 0xe86ee2 force_const_mem(machine_mode, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/varasm.c:3821 0x906fdb emit_move_insn(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/expr.c:3902 0x8e643e copy_to_mode_reg(machine_mode, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/explow.c:633 0xb10eb8 maybe_legitimize_operand /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/optabs.c:7166 0xb10eb8 maybe_legitimize_operands(insn_code, unsigned int, unsigned int, expand_operand*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/optabs.c:7298 0xb0ecd9 maybe_gen_insn(insn_code, unsigned int, expand_operand*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/optabs.c:7317 0xb138c0 expand_binop_directly /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/optabs.c:1122 0xb11e6d expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/optabs.c:1209 0x90b258 force_operand(rtx_def*, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/expr.c:7708 0x12be66e doloop_modify /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/loop-doloop.c:523 0x12be66e doloop_optimize /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/loop-doloop.c:783 0x12be66e doloop_optimize_loops() /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/loop-doloop.c:802 0xa741d8 execute /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-s390x/build/gcc/loop-init.c:636 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.