diff options
author | Richard Henderson <rth@cygnus.com> | 1999-04-29 10:43:16 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-04-29 10:43:16 -0700 |
commit | b94c0f4fea4e37a17023419eea3a164b12a23ec7 (patch) | |
tree | 32b212d76ac6435fc601e149a575132853cd9404 /gcc | |
parent | 7cae975e66fef11bcb7d165cd399efae6e0b807b (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 10 |
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 (); |