summaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.def
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-14 03:01:59 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-14 03:01:59 +0000
commit526162631e64deaa965115daf575798cd0228336 (patch)
treeefe0fd5956e9b73ec044e3e36ab247df613f543c /gcc/cp/cp-tree.def
parent3d662dc22eb932d09aa77b74e44ec4a969f6e18e (diff)
downloadgcc-526162631e64deaa965115daf575798cd0228336.tar.gz
* c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.
* Make-lang.in (parse.h): Separate rule, just depend on parse.c. Use cleanups to run base and member destructors. * init.c (push_base_cleanups): New function, split out from... (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. * decl.c (finish_destructor_body): Move vbase destruction code to push_base_cleanups. (begin_function_body, finish_function_body): New fns. (finish_function): Move [cd]tor handling and call_poplevel to finish_function_body. (pushdecl): Skip the new level. * semantics.c (genrtl_try_block): Don't call end_protect_partials. (setup_vtbl_ptr): Call push_base_cleanups. * method.c (synthesize_method): Call {begin,end}_function_body. * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. * cp-tree.h: Declare new fns. * parse.y (function_body, .begin_function_body): New nonterminals. (fndef, pending_inline, function_try_block): Use function_body. (ctor_initializer_opt, function_try_block): No longer has a value. (base_init): Remove .set_base_init token. (.set_base_init, compstmt_or_error): Remove. * Make-lang.in (parse.c): Expect two fewer s/r conflicts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47987 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cp-tree.def')
-rw-r--r--gcc/cp/cp-tree.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 1395301d1d9..dbe990a2e11 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -234,6 +234,8 @@ DEFTREECODE (CTOR_STMT, "ctor_stmt", 'e', 0)
constructed. If, after this point, the CLEANUP_DECL goes out of
scope, the CLEANUP_EXPR must be run. */
DEFTREECODE (CLEANUP_STMT, "cleanup_stmt", 'e', 2)
+/* CTOR_INITIALIZER is a placeholder in template code for a call to
+ setup_vtbl_pointer (and appears in all functions, not just ctors). */
DEFTREECODE (CTOR_INITIALIZER, "ctor_initializer", 'e', 2)
DEFTREECODE (RETURN_INIT, "return_init", 'e', 2)
DEFTREECODE (TRY_BLOCK, "try_block", 'e', 2)