From b94c0f4fea4e37a17023419eea3a164b12a23ec7 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 29 Apr 1999 10:43:16 -0700 Subject: [PATCH] decl2.c (do_static_initialization): Call do_pending_stack_adjust. * decl2.c (do_static_initialization): Call do_pending_stack_adjust. (do_static_destruction): Likewise. From-SVN: r26700 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl2.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e19e6d3da23..01e462742c3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-04-29 Richard Henderson + + * decl2.c (do_static_initialization): Call do_pending_stack_adjust. + (do_static_destruction): Likewise. + 1999-04-29 Nathan Sidwell * cp-tree.h (TYPE_NOTHROW_P): New macro. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 20a395783ec..7e96a92a4f2 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3220,6 +3220,11 @@ do_static_initialization (decl, init, sentry, priority) /* Cleanup any temporaries needed for the initial value. */ expand_end_target_temps (); + /* Cleanup any deferred pops from function calls. This would be done + by expand_end_cond, but we also need it when !sentry, since we are + constructing these sequences by parts. */ + do_pending_stack_adjust (); + /* Close the conditional opened above. */ if (sentry) expand_end_cond (); @@ -3276,6 +3281,11 @@ do_static_destruction (decl, sentry, priority) /* Actually to the destruction. */ expand_expr_stmt (build_cleanup (decl)); + /* Cleanup any deferred pops from function calls. This would be done + by expand_end_cond, but we also need it when !sentry, since we are + constructing these sequences by parts. */ + do_pending_stack_adjust (); + /* Close the conditional opened above. */ if (sentry) expand_end_cond ();