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!?)

Reply via email to