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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-02-09
     Ever confirmed|0                           |1

--- Comment #1 from Alan Modra <amodra at gmail dot com> ---
The problem occurs in 296r.rtl_dce, where the insn restoring lr after the
__morestack call is deleted.  That leads to the mismatch in cfi state.

Well, OK, lr can be trashed in a function that won't return so deleting the lr
restore in itself isn't wrong.  But if we want a consistent cfi state that
can't happen without also deleting the instructions saving lr.  Which won't
occur due to hacks to stop regrename breaking things.

I think the easiest solution is to make split_stack_return depend on lr (which
of course it does!).

Reply via email to