https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89487
Bug ID: 89487 Summary: [8/9 Regression] ICE in expand_expr_addr_expr_1, at expr.c:7993 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-pc-linux-gnu gcc-9.0.0-alpha20190224 snapshot (r269177) ICEs when compiling the following snippet reduced from ocaml 4.05.0 package: void caml_interprete (void) { register int *pc asm("%r15"); register int *sp asm("%r14"); int i; for (i = 0; i < 3; ++i) *--sp = pc[i]; } % x86_64-pc-linux-gnu-gcc-9.0.0-alpha20190224 -O2 -ftree-loop-distribution -c /tmp/interp.i during RTL pass: expand /tmp/interp.i: In function 'caml_interprete': /tmp/interp.i:2:1: internal compiler error: in expand_expr_addr_expr_1, at expr.c:7993 2 | caml_interprete (void) | ^~~~~~~~~~~~~~~ 0x60739b expand_expr_addr_expr_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:7993 0xa2909b expand_expr_addr_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:8106 0xa2909b expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:11261 0xa355e4 expand_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.h:279 0xa355e4 expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**, rtx_def**, expand_modifier) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:7872 0xa3d20c expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:8732 0xa29987 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:11317 0xa35927 expand_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.h:279 0xa35927 expand_expr_addr_expr_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:7931 0xa2909b expand_expr_addr_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:8106 0xa2909b expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:11261 0xa355e4 expand_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.h:279 0xa355e4 expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**, rtx_def**, expand_modifier) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:7872 0xa3bfaa expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:9732 0xa2bc5d expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:9942 0xa3ed51 expand_expr /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.h:279 0xa3ed51 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:8508 0xa2bc5d expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.c:9942 0x984200 expand_normal /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/expr.h:285 0x984200 do_compare_and_jump /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/dojump.c:1204