aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.h
diff options
context:
space:
mode:
authorBen Chelf <chelf@gcc.gnu.org>2000-07-01 22:23:01 -0700
committerBen Chelf <chelf@gcc.gnu.org>2000-07-01 22:23:01 -0700
commitf2c5f623b0eec0fbac3eda4d020cccbca01d7afc (patch)
tree322133cfcfd4ce1672bbd64e4e165811a77d8828 /gcc/c-common.h
parentd6f46e4177b1d39d36f5906e67939941c009d995 (diff)
downloadgcc-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.h66
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));
-