aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.h
diff options
context:
space:
mode:
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));
-