Commit 82e95be3 authored by dalej's avatar dalej
Browse files

2005-03-30 Dale Johannesen <dalej@apple.com>

        PR middle-end/19225
        * calls.c (expand_call):  Flush pending deferrals before
        throwing call.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97277 138bc75d-0d04-0410-961f-82ee72b054a4
parent 8494de10
2005-03-30 Dale Johannesen <dalej@apple.com>
PR middle-end/19225
* calls.c (expand_call): Flush pending deferrals before
throwing call.
2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
PR c/772
......
......@@ -2261,10 +2261,14 @@ expand_call (tree exp, rtx target, int ignore)
Also, do all pending adjustments now if there is any chance
this might be a call to alloca or if we are expanding a sibling
call sequence or if we are calling a function that is to return
with stack pointer depressed. */
with stack pointer depressed.
Also do the adjustments before a throwing call, otherwise
exception handling can fail; PR 19225. */
if (pending_stack_adjust >= 32
|| (pending_stack_adjust > 0
&& (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED)))
|| (pending_stack_adjust > 0
&& flag_exceptions && !(flags & ECF_NOTHROW))
|| pass == 0)
do_pending_stack_adjust ();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment