diff options
author | Mike Stump <mrs@gcc.gnu.org> | 1994-09-29 23:43:02 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1994-09-29 23:43:02 +0000 |
commit | 7a9a00be049860530e590125f1a8b0f999a40fa4 (patch) | |
tree | dc208b0a6c0e8361ba575ef255f4788a22253c62 /gcc | |
parent | 0f05a13c10cfeae603043c9fadcb3a8a169d112a (diff) | |
download | gcc-7a9a00be049860530e590125f1a8b0f999a40fa4.zip gcc-7a9a00be049860530e590125f1a8b0f999a40fa4.tar.gz gcc-7a9a00be049860530e590125f1a8b0f999a40fa4.tar.bz2 |
stmt.c (expand_return): We have to be careful of cleanups that can be generated when...
* stmt.c (expand_return): We have to be careful of cleanups that can
be generated when expanding the return value, as they might otherwise
wipe out the return value.
From-SVN: r8167
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/stmt.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -2513,7 +2513,15 @@ expand_return (retval) } /* Are any cleanups needed? E.g. C++ destructors to be run? */ + /* This is not sufficient. We also need to watch for cleanups of the + expression we are about to expand. Unfortunately, we cannot know + if it has cleanups until we expand it, and we want to change how we + expand it depending upon if we need cleanups. We can't win. */ +#if 0 cleanups = any_pending_cleanups (1); +#else + cleanups = 1; +#endif if (TREE_CODE (retval) == RESULT_DECL) retval_rhs = retval; |