From: Dale Johannesen Date: Wed, 6 Apr 2005 21:01:44 +0000 (+0000) Subject: re PR middle-end/19225 (g++.dg/eh/omit-frame-pointer2.C fails with -fpic/-fPIC on... X-Git-Tag: releases/gcc-3.4.4~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcd9459f96693a94354ddf784779468dae7bda35;p=thirdparty%2Fgcc.git re PR middle-end/19225 (g++.dg/eh/omit-frame-pointer2.C fails with -fpic/-fPIC on i686-pc-linux-gnu) 2005-04-06 Dale Johannesen PR middle-end/19225 * calls.c (expand_call): Flush pending deferrals before throwing call. From-SVN: r97748 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37f89d47a1ee..6278b8b8e34e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-04-06 Dale Johannesen + + PR middle-end/19225 + * calls.c (expand_call): Flush pending deferrals before + throwing call. + 2005-04-06 Eric Botcazou PR target/17245 diff --git a/gcc/calls.c b/gcc/calls.c index c1b900b7d8ba..86e51842cf5a 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2730,10 +2730,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 ();