aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-04-29 10:43:16 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-04-29 10:43:16 -0700
commitb94c0f4fea4e37a17023419eea3a164b12a23ec7 (patch)
tree32b212d76ac6435fc601e149a575132853cd9404 /gcc
parent7cae975e66fef11bcb7d165cd399efae6e0b807b (diff)
downloadgcc-b94c0f4fea4e37a17023419eea3a164b12a23ec7.zip
gcc-b94c0f4fea4e37a17023419eea3a164b12a23ec7.tar.gz
gcc-b94c0f4fea4e37a17023419eea3a164b12a23ec7.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e19e6d3..01e4627 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+1999-04-29 Richard Henderson <rth@cygnus.com>
+
+ * decl2.c (do_static_initialization): Call do_pending_stack_adjust.
+ (do_static_destruction): Likewise.
+
1999-04-29 Nathan Sidwell <nathan@acm.org>
* cp-tree.h (TYPE_NOTHROW_P): New macro.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 20a3957..7e96a92 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 ();