Commit 63579539 by Dale Johannesen Committed by Dale Johannesen

re PR middle-end/19225 (g++.dg/eh/omit-frame-pointer2.C fails with -fpic/-fPIC…

re PR middle-end/19225 (g++.dg/eh/omit-frame-pointer2.C fails with -fpic/-fPIC on i686-pc-linux-gnu)

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

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

From-SVN: r97277
parent 86472dc3
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> 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
PR c/772 PR c/772
......
...@@ -2261,10 +2261,14 @@ expand_call (tree exp, rtx target, int ignore) ...@@ -2261,10 +2261,14 @@ expand_call (tree exp, rtx target, int ignore)
Also, do all pending adjustments now if there is any chance 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 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 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 if (pending_stack_adjust >= 32
|| (pending_stack_adjust > 0 || (pending_stack_adjust > 0
&& (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED))) && (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED)))
|| (pending_stack_adjust > 0
&& flag_exceptions && !(flags & ECF_NOTHROW))
|| pass == 0) || pass == 0)
do_pending_stack_adjust (); 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