aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-semantics.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2002-03-15 20:08:39 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2002-03-15 20:08:39 +0000
commit6e4ae815bd9939ca44e61e28e5c27c347d9dae4f (patch)
treedb4a627f532c42df854f6b4b67e6005e3d470c92 /gcc/c-semantics.c
parent08bcc159d9e63cd48eb12895f027e5d84d2ccd65 (diff)
downloadgcc-6e4ae815bd9939ca44e61e28e5c27c347d9dae4f.zip
gcc-6e4ae815bd9939ca44e61e28e5c27c347d9dae4f.tar.gz
gcc-6e4ae815bd9939ca44e61e28e5c27c347d9dae4f.tar.bz2
c-common.c (statement_code_p): Handle CLEANUP_STMT.
* c-common.c (statement_code_p): Handle CLEANUP_STMT. * c-common.def (CLEANUP_STMT): New tree node. * c-common.h (CLEANUP_DECL): New macro. (CLEANUP_EXPR): Likewise. * c-semantics.c (expand_stmt): Handle CLEANUP_STMT. * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT. * tree-inline.c (initialize_inlined_parameters): Clean up new local variables. * cp-tree.h (CLEANUP_DECL): Remove. (CLEANUP_EXPR): Likewise. * decl.c (destroy_local_var): Simplify. (maybe_build_cleanup): Tidy. * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. * semantics.c (cp_expand_stmt): Likewise. * cp/tree.c (cp_statement_code_p): Likewise. * g++.dg/opt/dtor1.C: New test. From-SVN: r50830
Diffstat (limited to 'gcc/c-semantics.c')
-rw-r--r--gcc/c-semantics.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c
index 8f99bc1..3d8759d 100644
--- a/gcc/c-semantics.c
+++ b/gcc/c-semantics.c
@@ -847,6 +847,10 @@ expand_stmt (t)
genrtl_scope_stmt (t);
break;
+ case CLEANUP_STMT:
+ genrtl_decl_cleanup (CLEANUP_DECL (t), CLEANUP_EXPR (t));
+ break;
+
default:
if (lang_expand_stmt)
(*lang_expand_stmt) (t);