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

--- Comment #3 from Dimitar Dimitrov <dimitar at gcc dot gnu.org> ---
Alternative way to reproduce the issue is to apply the attached
validate_subreg_hardening.patch to increase the checks for subregs.
When the snippet from the description is built, it results in ICE:

during RTL pass: combine
/home/dinux/tmp/c120/test.c: In function ‘test’:
/home/dinux/tmp/c120/test.c:9:1: internal compiler error: in gen_rtx_SUBREG, at
emit-rtl.cc:1042
    9 | }
      | ^
0x21006df internal_error(char const*, ...)
        ../../gcc/gcc/diagnostic-global-context.cc:517
0x83dbe9 fancy_abort(char const*, int, char const*)
        ../../gcc/gcc/diagnostic.cc:1815
0x480b6e gen_rtx_SUBREG(machine_mode, rtx_def*, poly_int<1u, unsigned long>)
        ../../gcc/gcc/emit-rtl.cc:1042
0x480b6e gen_rtx_SUBREG(machine_mode, rtx_def*, poly_int<1u, unsigned long>)
        ../../gcc/gcc/emit-rtl.cc:1040
0x1dfe31b expand_compound_operation
        ../../gcc/gcc/combine.cc:7411 
0x1e0f837 subst
        ../../gcc/gcc/combine.cc:5659
0x1e0f696 subst
        ../../gcc/gcc/combine.cc:5586
0x1e13b8b try_combine
        ../../gcc/gcc/combine.cc:3319
0x1e1b4e1 combine_instructions
        ../../gcc/gcc/combine.cc:1271
0x1e1b4e1 rest_of_handle_combine
        ../../gcc/gcc/combine.cc:15214
0x1e1b4e1 execute
        ../../gcc/gcc/combine.cc:15258

Reply via email to