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

--- Comment #1 from Dimitar Dimitrov <dimitar at gcc dot gnu.org> ---
I forgot to mention that "-O3 -g" is needed to hit this ICE.

This seems to be the call path leading to (nil) injected from calling
lowpart_subreg:

#0  validate_subreg (omode=E_SImode, imode=E_DImode, reg=0x7ffff74023c0,
offset=...) at /mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:985
#1  0x0000000000e5a997 in simplify_context::simplify_gen_subreg
(this=0x7fffffffcb18, outermode=E_SImode, op=0x7ffff74023c0,
innermode=E_DImode, byte=...)
    at /mnt/nvme/dinux/local-workspace/gcc/gcc/simplify-rtx.cc:8428
#2  0x0000000000e5aa0f in simplify_context::lowpart_subreg
(this=0x7fffffffcb18, outer_mode=E_SImode, expr=0x7ffff74023c0,
inner_mode=E_DImode)
    at /mnt/nvme/dinux/local-workspace/gcc/gcc/simplify-rtx.cc:8441
#3  0x0000000000688a4d in lowpart_subreg (outermode=E_SImode,
op=0x7ffff74023c0, innermode=E_DImode) at
/mnt/nvme/dinux/local-workspace/gcc/gcc/rtl.h:3631
#4  0x0000000000beb35c in move_plus_up (x=0x7ffff7384450) at
/mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:305
#5  0x0000000000bebd2d in lra_eliminate_regs_1 (insn=0x7ffff7415a00,
x=0x7ffff7384468, mem_mode=E_VOIDmode, subst_p=false, update_p=false,
    update_sp_offset=..., full_p=true) at
/mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:450
#6  0x0000000000bed921 in eliminate_regs_in_insn (insn=0x7ffff7415a00,
replace_p=false, first_p=true, update_sp_offset=...)
    at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1051
#7  0x0000000000bee9ce in process_insn_for_elimination (insn=0x7ffff7415a00,
final_p=false, first_p=true)
    at /mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1380
#8  0x0000000000beeee6 in lra_eliminate (final_p=false, first_p=true) at
/mnt/nvme/dinux/local-workspace/gcc/gcc/lra-eliminations.cc:1506
#9  0x0000000000be2b70 in lra_constraints (first_p=true) at
/mnt/nvme/dinux/local-workspace/gcc/gcc/lra-constraints.cc:5368

Reply via email to