extern tree walk_stmt_tree (tree *, walk_tree_fn, void *);
extern void prep_stmt (tree);
-extern tree c_begin_if_stmt (void);
-extern tree c_begin_while_stmt (void);
-extern void c_finish_while_stmt_cond (tree, tree);
extern int c_expand_decl (tree);
extern int field_decl_cmp (const void *, const void *);
@try, etc.) in source code. */
extern int flag_objc_exceptions;
+/* Nonzero means that we generate NeXT setjmp based exceptions. */
+extern int flag_objc_sjlj_exceptions;
+
/* Nonzero means that code generation will be altered to support
"zero-link" execution. This currently affects ObjC only, but may
affect other languages in the future. */
#define FOR_BODY(NODE) TREE_OPERAND (FOR_STMT_CHECK (NODE), 3)
#define SWITCH_TYPE(NODE) TREE_OPERAND (SWITCH_STMT_CHECK (NODE), 2)
-#define CASE_LABEL_DECL(NODE) TREE_OPERAND (CASE_LABEL_CHECK (NODE), 2)
-
-/* COMPOUND_STMT accessor. This gives access to the TREE_LIST of
- statements associated with a compound statement. The result is the
- first statement in the list. Succeeding nodes can be accessed by
- calling TREE_CHAIN on a node in the list. */
-#define COMPOUND_BODY(NODE) TREE_OPERAND (COMPOUND_STMT_CHECK (NODE), 0)
/* DECL_STMT accessor. This gives access to the DECL associated with
the given declaration statement. */
#undef DEFTREECODE
#define c_common_stmt_codes \
- CLEANUP_STMT, EXPR_STMT, COMPOUND_STMT, \
+ CLEANUP_STMT, EXPR_STMT, \
DECL_STMT, IF_STMT, FOR_STMT, \
WHILE_STMT, DO_STMT, RETURN_STMT, \
- BREAK_STMT, CONTINUE_STMT, \
- SWITCH_STMT, CASE_LABEL
+ BREAK_STMT, CONTINUE_STMT, SWITCH_STMT
/* TRUE if a code represents a statement. The front end init
langhook should take care of initialization of this array. */