https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107300
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |ipa Summary|ICE: verify_ssa failed |[13 Regression] ICE: |(error: virtual definition |verify_ssa failed (error: |of statement not up to |virtual definition of |date) |statement not up to date) Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |marxin at gcc dot gnu.org Last reconfirmed| |2022-10-18 Target Milestone|--- |13.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. The unreachable doesn't have virtual operands but trap() should have. Oddly enough the abort is also replaced with trap!? void bar.constprop () { int x; int y; <bb 7> [local count: 1073741824]: <bb 2> [local count: 1073741824]: if (0 != 0) goto <bb 3>; [0.00%] else goto <bb 4>; [100.00%] <bb 3> [count: 0]: __builtin_trap (); <bb 4> [local count: 1073741824]: if (0 != 0) goto <bb 5>; [0.00%] else goto <bb 6>; [100.00%] <bb 5> [count: 0]: # .MEM_2 = VDEF <.MEM_1(D)> __builtin_trap (); <bb 6> [local count: 1073741824]: # VUSE <.MEM_1(D)> return; smells like a deeper regression in IPA (I suppose IPA CP marks stuff unreachable and then we turn that into traps!?)