From: David Miller <da...@davemloft.net> Date: Tue, 06 Jun 2017 15:02:55 -0400 (EDT)
> From: David Miller <da...@davemloft.net> > Date: Mon, 05 Jun 2017 20:54:46 -0400 (EDT) > >> From: Eric Botcazou <ebotca...@adacore.com> >> Date: Tue, 06 Jun 2017 00:02:06 +0200 >> >>>> That seems to work as well, following is going through a testsuite >>>> run right now: >>>> >>>> ==================== >>>> [PATCH] sparc: Fix stack references in return delay slot. >>>> >>>> gcc/ >>>> >>>> PR target/80968 >>>> * config/sparc/sparc.c (sparc_expand_prologue): Emit frame >>>> blockage if function uses alloca. >>> >>> Probably worth applying on all active branches I'd think. >> >> I agree, this is a really nasty bug. >> >> I'll do that after some more testing. > > This is now done, thanks again. Eric, after some more testing it turns out that we need something more for gcc-5 and gcc-6 to cover all cases. The problem is that before gcc-7, the compiler can emit return instructions directly without going through the epilogue expander. So I have to add the frame barrier emission to our return expander as well, which I will work on right now. Just FYI...