From ba60e4754adc4181784207396de5abbd349d894f Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Tue, 29 Jun 2004 16:18:46 +0000 Subject: except.c (expand_start_java_handler): Push a new binding level. 2004-06-29 Andrew Haley * except.c (expand_start_java_handler): Push a new binding level. Don't build a TRY_CATCH_EXPR now, we'll do it later. Call register_exception_range() to register where we'll do it. (expand_end_java_handler): Remove old bogus code. Replace with new logic that simply builds TRY_CATCH_EXPRs and inserts them at the top of the expression we're curently building. (maybe_end_try): Delete. * decl.c (binding_level.exception_range): New field. (clear_binding_level): Add field exception_range. Reformat. (poplevel): Call expand_end_java_handler(). (poplevel): Call java_add_stmt only if functionbody is false. (maybe_poplevels): Don't call maybe_end_try() from here. (end_java_method): Clear no longer used trees in function decl. (register_exception_range): New function. * java-tree.h (register_exception_range, struct eh_range): Declare. From-SVN: r83857 --- gcc/java/java-tree.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/java/java-tree.h') diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 64c0778..1089e59 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -1117,6 +1117,9 @@ struct lang_type GTY(()) #define SEARCH_SUPER 2 #define SEARCH_VISIBLE 4 +/* Defined in java-except.h */ +struct eh_range; + extern void java_parse_file (int); extern bool java_mark_addressable (tree); extern tree java_type_for_mode (enum machine_mode, int); @@ -1345,6 +1348,7 @@ extern tree add_stmt_to_compound (tree, tree, tree); extern tree java_add_stmt (tree); extern tree java_add_local_var (tree decl); extern tree *get_stmts (void); +extern void register_exception_range(struct eh_range *, int, int); extern void finish_method (tree); extern void java_expand_body (tree); -- cgit v1.1