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