diff options
author | Ben Chelf <chelf@gcc.gnu.org> | 2000-07-01 22:23:01 -0700 |
---|---|---|
committer | Ben Chelf <chelf@gcc.gnu.org> | 2000-07-01 22:23:01 -0700 |
commit | f2c5f623b0eec0fbac3eda4d020cccbca01d7afc (patch) | |
tree | 322133cfcfd4ce1672bbd64e4e165811a77d8828 /gcc/c-common.h | |
parent | d6f46e4177b1d39d36f5906e67939941c009d995 (diff) | |
download | gcc-f2c5f623b0eec0fbac3eda4d020cccbca01d7afc.zip gcc-f2c5f623b0eec0fbac3eda4d020cccbca01d7afc.tar.gz gcc-f2c5f623b0eec0fbac3eda4d020cccbca01d7afc.tar.bz2 |
Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
* Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
(c-semantics.o): New target.
* c-common.h (TREE_LANG_FLAG_?): Added documentation.
(genrtl_do_pushlevel): Moved from cp/cp-tree.h.
(genrtl_clear_out_block): Likewise.
(genrtl_goto_stmt): Likewise.
(genrtl_expr_stmt): Likewise.
(genrtl_decl_stmt): Likewise.
(genrtl_if_stmt): Likewise.
(genrtl_while_stmt): Likewise.
(genrtl_do_stmt): Likewise.
(genrtl_return_stmt): Likewise.
(genrtl_for_stmt): Likewise.
(genrtl_break_stmt): Likewise.
(genrtl_continue_stmt): Likewise.
(genrtl_scope_stmt): Likewise.
(genrtl_switch_stmt): Likewise.
(genrtl_case_label): Likewise.
(genrtl_begin_compound_stmt): Likewise.
(gerntl_finish_compound_stmt): Likewise.
(genrtl_compound_stmt): Likewise.
(genrtl_asm_stmt): Likewise.
(genrtl_decl_cleanup): Likewise.
(DECL_ANON_UNION_ELEMS): Likewise.
(emit_local_var): Likewise.
(make_rtl_for_local_static): Likewise.
(expand_cond): Likewise.
(expand_stmt): Likewise.
(c_expand_return): Likewise.
(c_expand_start_case): Likewise.
(do_case): Likewise.
(COMPOUND_STMT_NO_SCOPE): Likewise.
(c_expand_asm_operands): Likewise.
(NEW_FOR_SCOPE_P): New macro.
(expand_expr_stmt_fn): New type.
(set_current_function_name_declared): Likewise.
(current_function_name_declared): Likewise.
(lang_expand_stmt): Likewise.
(stmts_are_full_exprs_p): Likewise.
(anon_aggr_type_p): Likewise.
(lang_expand_expr_stmt): Likewise.
(build_case_label): Likewise.
* c-decl.c (lang_expand_expr_stmt): Initialize.
(stmts_are_full_exprs_p): Define.
(current_function_name_declared): Likewise.
(do_case): Likewise.
(lang_expand_stmt): Likewise.
(set_current_function_name_declared): Likewise.
(anon_aggr_type_p): Likewise.
(build_case_label): Likewise.
* c-semantics.c: New file.
(expand_cond): Moved from cp/semantics.c.
(genrtl_do_pushlevel): Likewise.
(genrtl_clear_out_block): Likewise.
(genrtl_goto_stmt): Likewise.
(genrtl_expr_stmt): Likewise.
(genrtl_decl_stmt): Likewise.
(genrtl_if_stmt): Likewise.
(genrtl_while_stmt): Likewise.
(genrtl_do_stmt): Likewise.
(genrtl_return_stmt): Likewise.
(genrtl_for_stmt): Likewise.
(genrtl_break_stmt): Likewise.
(genrtl_continue_stmt): Likewise.
(genrtl_scope_stmt): Likewise.
(genrtl_switch_stmt): Likewise.
(genrtl_case_label): Likewise.
(genrtl_begin_compound_stmt): Likewise.
(genrtl_finish_compound_stmt): Likewise.
(genrtl_compound_stmt): Likewise.
(genrtl_asm_stmt): Likewise.
(genrtl_decl_cleanup): Likewise.
(make_rtl_for_local_static): Moved from cp/decl.c.
(emit_local_var): Likewise.
(expand_stmt): Define.
* c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
(c_expand_return): Likewise.
(c_expand_start_case): Likewise.
* cp/Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.
* cp/Makefile.in (OBJS): Added ../c-semantics.o.
(OBJDEPS): Likewise.
* cp/cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
../c-common.h.
(struct stmt_tree): Added comment.
(current_function_name_declared): Removed.
(stmts_are_full_exprs_p): Likewise.
(genrtl_do_pushlevel): Likewise.
(genrtl_clear_out_block): Likewise.
(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
(DECL_ANON_UNION_ELEMS): Likewise.
(emit_local_var): Likewise.
(make_rtl_for_local_static): Likewise.
(do_case): Likewise.
(expand_stmt): Likewise.
(genrtl_decl_cleanup): Likewise.
(c_expand_asm_operands): Likewise.
(c_expand_return): Likewise.
(c_expand_start_case): Likewise.
* cp/decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
(emit_local_var): Likewise.
(initialize_local_var): Change reference to
stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
Change reference to stmts_are_full_exprs_p to
current_stmt_tree->stmts_are_full_exprs_p.
(push_cp_function_context): Likewise.
* cp/expect.c (expand_throw): Change reference to
stmts_are_full_exprs_p.
* cp/init.c (build_aggr_init): Change reference to
stmts_are_full_exprs_p.
(build_vec_init): Likewise.
* cp/optimize.c (maybe_clone_body): Change reference to
current_function_name_declared to
cp_function_chain->name_declared.
* cp/pt.c (instantiate_decl): Change reference to
current_function_name_declared to
cp_function_chain->name_declared.
* cp/semantics.c (expand_cond): Moved declaration to c-common.h.
(genrtl_do_pushlevel): Moved to c-semantics.c.
(genrtl_clear_out_block): Likewise.
(genrtl_goto_stmt): Likewise.
(genrtl_expr_stmt): Likewise.
(genrtl_decl_stmt): Likewise.
(gerntl_if_stmt): Likewise.
(genrtl_while_stmt): Likewise.
(genrtl_do_stmt): Likewise.
(genrtl_return_stmt): Likewise.
(genrtl_for_stmt): Likewise.
(genrtl_break_stmt): Likewise.
(genrtl_continue_stmt): Likewise.
(genrtl_scope_stmt): Likewise.
(genrtl_switch_stmt): Likewise.
(genrtl_case_label): Likewise.
(genrtl_begin_compound_stmt): Likewise.
(genrtl_finish_compound_stmt): Likewise.
(genrtl_compound_stmt): Likewise.
(genrtl_asm_stmt): Likewise.
(genrtl_decl_cleanup): Likewise.
(expand_cond): Likewise.
(expand_stmt): Renamed to ...
(lang_expand_stmt): ... this.
(lang_expand_expr_stmt): Initialize.
(set_current_function_name_declared): Likewise.
(stmts_are_full_exprs_p): Likewise.
(current_function_name_declared): Likewise.
(anon_aggr_type_p): Likewise.
(do_poplevel): Change reference to
stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
Change reference to stmts_are_full_exprs_p to
current_stmt_tree->stmts_are_full_exprs_p.
(add_tree): Likewise.
(finish_expr_stmt): Likewise.
(prep_stmt): Likewise.
(lang_expand_stmt): Likewise.
(begin_compound_stmt): Change reference to
current_function_name_declared to
cp_function_chain->name_declared and call to
current_function_name_declared().
(setup_vtbl_ptr): Likewise.
(genrtl_do_poplevel): Removed.
From-SVN: r34827
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r-- | gcc/c-common.h | 66 |
1 files changed, 63 insertions, 3 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h index 9fd9bdd..53bbfba 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -19,6 +19,20 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* Usage of TREE_LANG_FLAG_?: + 0: COMPOUND_STMT_NO_SCOPE (in COMPOUND_STMT). + TREE_NEGATED_INT (in INTEGER_CST). + IDENTIFIER_MARKED (used by search routines). + SCOPE_BEGIN_P (in SCOPE_STMT) + DECL_PRETTY_FUNCTION_P (in VAR_DECL) + NEW_FOR_SCOPE_P (in FOR_STMT) + 1: C_DECLARED_LABEL_FLAG (in LABEL_DECL) + STMT_IS_FULL_EXPR_P (in _STMT) + 2: STMT_LINENO_FOR_FN_P (in _STMT) + 3: SCOPE_NO_CLEANUPS_P (in SCOPE_STMT) + 4: SCOPE_PARTIAL_P (in SCOPE_STMT) +*/ + /* Reserved identifiers. */ enum rid @@ -262,7 +276,6 @@ extern tree build_va_arg PARAMS ((tree, tree)); extern int self_promoting_args_p PARAMS ((tree)); extern tree simple_type_promotes_to PARAMS ((tree)); - /* These macros provide convenient access to the various _STMT nodes created when parsing template declarations. */ @@ -392,6 +405,9 @@ extern tree simple_type_promotes_to PARAMS ((tree)); #define STMT_LINENO_FOR_FN_P(NODE) \ (TREE_LANG_FLAG_2 ((NODE))) +/* Nonzero if we want the new ISO rules for pushing a new scope for `for' + initialization variables. */ +#define NEW_FOR_SCOPE_P(NODE) (TREE_LANG_FLAG_0 (NODE)) #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM, @@ -404,7 +420,52 @@ enum c_tree_code { #undef DEFTREECODE extern void add_c_tree_codes PARAMS ((void)); - +extern void genrtl_do_pushlevel PARAMS ((void)); +extern void genrtl_clear_out_block PARAMS ((void)); +extern void genrtl_goto_stmt PARAMS ((tree)); +extern void genrtl_expr_stmt PARAMS ((tree)); +extern void genrtl_decl_stmt PARAMS ((tree)); +extern void genrtl_if_stmt PARAMS ((tree)); +extern void genrtl_while_stmt PARAMS ((tree)); +extern void genrtl_do_stmt PARAMS ((tree)); +extern void genrtl_return_stmt PARAMS ((tree)); +extern void genrtl_for_stmt PARAMS ((tree)); +extern void genrtl_break_stmt PARAMS ((void)); +extern void genrtl_continue_stmt PARAMS ((void)); +extern void genrtl_scope_stmt PARAMS ((tree)); +extern void genrtl_switch_stmt PARAMS ((tree)); +extern void genrtl_case_label PARAMS ((tree, tree)); +extern tree genrtl_begin_compound_stmt PARAMS ((int)); +extern tree genrtl_finish_compound_stmt PARAMS ((int)); +extern tree genrtl_compound_stmt PARAMS ((tree)); +extern void genrtl_asm_stmt PARAMS ((tree, tree, + tree, tree, + tree)); +extern void genrtl_decl_cleanup PARAMS ((tree, tree)); +extern int stmts_are_full_exprs_p PARAMS ((void)); +typedef void (*expand_expr_stmt_fn) PARAMS ((tree)); +extern expand_expr_stmt_fn lang_expand_expr_stmt; +extern int anon_aggr_type_p PARAMS ((tree)); + +/* For a VAR_DECL that is an anonymous union, these are the various + sub-variables that make up the anonymous union. */ +#define DECL_ANON_UNION_ELEMS(NODE) DECL_ARGUMENTS ((NODE)) + +extern void emit_local_var PARAMS ((tree)); +extern void make_rtl_for_local_static PARAMS ((tree)); +extern tree expand_cond PARAMS ((tree)); +extern tree expand_stmt PARAMS ((tree)); +extern tree lang_expand_stmt PARAMS ((tree)); +extern void c_expand_return PARAMS ((tree)); +extern tree c_expand_start_case PARAMS ((tree)); +extern void do_case PARAMS ((tree, tree)); +extern tree build_case_label PARAMS ((tree, tree)); + +#define COMPOUND_STMT_NO_SCOPE(NODE) TREE_LANG_FLAG_0 (NODE) + +extern void c_expand_asm_operands PARAMS ((tree, tree, tree, tree, int, const char *, int)); +extern int current_function_name_declared PARAMS ((void)); +extern void set_current_function_name_declared PARAMS ((int)); /* These functions must be defined by each front-end which implements a variant of the C language. They are used in c-common.c. */ @@ -420,4 +481,3 @@ extern tree default_conversion PARAMS ((tree)); Given two compatible ANSI C types, returns the merged type. */ extern tree common_type PARAMS ((tree, tree)); - |