diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2001-12-13 22:01:59 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-12-13 22:01:59 -0500 |
commit | ade3dc07d50ecfc3ede5ce20cc40f055c1a2f36e (patch) | |
tree | efe0fd5956e9b73ec044e3e36ab247df613f543c /gcc/c-common.h | |
parent | 466eb3e085b0166065536bf14b939f8a04de1ee6 (diff) | |
download | gcc-ade3dc07d50ecfc3ede5ce20cc40f055c1a2f36e.zip gcc-ade3dc07d50ecfc3ede5ce20cc40f055c1a2f36e.tar.gz gcc-ade3dc07d50ecfc3ede5ce20cc40f055c1a2f36e.tar.bz2 |
c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.
* 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.
From-SVN: r47987
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r-- | gcc/c-common.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h index 5ce8923..f6e6290 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -37,6 +37,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA STMT_IS_FULL_EXPR_P (in _STMT) 2: STMT_LINENO_FOR_FN_P (in _STMT) 3: SCOPE_NO_CLEANUPS_P (in SCOPE_STMT) + COMPOUND_STMT_BODY_BLOCK (in COMPOUND_STMT) 4: SCOPE_PARTIAL_P (in SCOPE_STMT) */ @@ -762,6 +763,10 @@ extern tree build_return_stmt PARAMS ((tree)); #define COMPOUND_STMT_NO_SCOPE(NODE) TREE_LANG_FLAG_0 (NODE) +/* Used by the C++ frontend to mark the block around the member + initializers and cleanups. */ +#define COMPOUND_STMT_BODY_BLOCK(NODE) TREE_LANG_FLAG_3 (NODE) + extern void c_expand_asm_operands PARAMS ((tree, tree, tree, tree, int, const char *, int)); /* These functions must be defined by each front-end which implements |