2011/8/4 Kai Tietz :
> 2011/8/4 Richard Henderson :
>> On 08/04/2011 01:53 PM, Kai Tietz wrote:
>>> diff = frame->stack_pointer_offset -
>>> frame->hard_frame_pointer_offset;
>>> - if (diff > 240 || (diff & 15) != 0)
>>> + if (diff > 240 || (diff & 15) != 0 || cfun->calls_alloca !
2011/8/4 Richard Henderson :
> On 08/04/2011 01:53 PM, Kai Tietz wrote:
>> diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset;
>> - if (diff > 240 || (diff & 15) != 0)
>> + if (diff > 240 || (diff & 15) != 0 || cfun->calls_alloca != 0)
>
> Hmm. Why didn't the di
On 08/04/2011 01:53 PM, Kai Tietz wrote:
>diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset;
> - if (diff > 240 || (diff & 15) != 0)
> + if (diff > 240 || (diff & 15) != 0 || cfun->calls_alloca != 0)
Hmm. Why didn't the diff > 240 test trigger?
r~
Hello,
recently we got a bootstrap failure in libfortran's transfer.c:sset
function. This is caused by optimizing alloca into prologue. This
can cause for x64 with SEH to too large prologue-frame-size for SEH
information.
This patch simply assumes that iff the function is using an alloca
call, t