https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87475
Bug ID: 87475 Summary: ICE in patch_jump_insn, at cfgrtl.c:1275 Product: gcc Version: 9.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: ktkachov at gcc dot gnu.org Target Milestone: --- Following causes ICE: $ cat ice.cpp struct a { a(); ~a(); }; int b(a, a); void c(bool d) { d ? b(a(), a()) : 0; } $ aarch64-linux-gnu-gcc ice.cpp -O2 -freorder-blocks-and-partition -fmodulo-sched -c during RTL pass: sms ice.cpp: In function ‘void c(bool)’: ice.cpp:6:39: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275 6 | void c(bool d) { d ? b(a(), a()) : 0; } | ^ 0x5ca3e1 patch_jump_insn /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgrtl.c:1275 0x7fadb1 redirect_branch_edge /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgrtl.c:1301 0x7fb83a cfg_layout_redirect_edge_and_branch /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgrtl.c:4454 0x7e86c9 redirect_edge_and_branch(edge_def*, basic_block_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfghooks.c:369 0x1123b31 try_forward_edges /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgcleanup.c:550 0x1123b31 try_optimize_cfg /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgcleanup.c:2942 0x1123b31 cleanup_cfg(int) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgcleanup.c:3156 0x1214dec execute /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/modulo-sched.c:3336