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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-10-21
             Status|UNCONFIRMED                 |NEW

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #3)
> Re-reducing.

It is not much different from the reduced testcase already.
The assert is:
```
  cgraph_edge **slot = e->caller->call_site_hash->find_slot_with_hash
      (e->call_stmt, cgraph_edge_hasher::hash (e->call_stmt), INSERT);
  if (*slot)
    {
      cgraph_edge *edge = (cgraph_edge *) *slot;
      gcc_assert (edge->speculative || edge->has_callback);
      if (edge->has_callback)
        /* If the slot is already occupied, then the hashed edge is the
           callback-carrying edge, which is desired behavior, so we can safely
           return.  */
        gcc_checking_assert (edge == e);
```

Which gets me feeling the the call statement address is being reused ...

Reply via email to