aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-except.h
diff options
context:
space:
mode:
authorAndrew Haley <aph@cygnus.com>2000-02-09 14:08:44 +0000
committerAndrew Haley <aph@gcc.gnu.org>2000-02-09 14:08:44 +0000
commite8b22dd136b0adf813976ca738c7d96d101b3452 (patch)
treeb67485a68e46fde7b7d44642f8af9498d8fe9b03 /gcc/java/java-except.h
parent665792ebecf527818aa1fcaf31b90307204cef30 (diff)
downloadgcc-e8b22dd136b0adf813976ca738c7d96d101b3452.zip
gcc-e8b22dd136b0adf813976ca738c7d96d101b3452.tar.gz
gcc-e8b22dd136b0adf813976ca738c7d96d101b3452.tar.bz2
java-except.h (struct eh_range): Add `expanded' field.
2000-01-25 Andrew Haley <aph@cygnus.com> * java-except.h (struct eh_range): Add `expanded' field. (maybe_start_try): Add end_pc arg. (maybe_end_try): Ditto. * java-tree.h (force_poplevels): new function. * expr.c (expand_byte_code): Don't call maybe_start_try or maybe_end_try. * except.c (add_handler): Reset expanded. (expand_start_java_handler): Set expanded. (check_start_handlers): Don't expand a start handler that's already been expanded. (maybe_start_try): Add end_pc arg. Only expand a handler which ends after end_pc. (expand_end_java_handler): call force_poplevels. (force_poplevels): new function. * decl.c (binding_level): Add start_pc of binding level. (maybe_pushlevels): Call maybe_start_try when pushing binding levels. (maybe_poplevels): Call maybe_end_try when popping binding levels. (LARGEST_PC): Define. (clear_binding_level): Use LARGEST_PC. * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define. * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define. (binding_depth, is_class_level, current_pc): new variables. (struct binding_level): ditto. (indent): new function. (push_jvm_slot): add debugging info. (maybe_pushlevels): ditto. (maybe_poplevels): ditto. (pushlevel): ditto. (poplevel): ditto. (start_java_method): ditto. (give_name_to_locals): comment only. * except.c (binding_depth, is_class_level, current_pc): new variables. (expand_start_java_handler): add debugging info. (expand_end_java_handler): ditto. From-SVN: r31861
Diffstat (limited to 'gcc/java/java-except.h')
-rw-r--r--gcc/java/java-except.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/java/java-except.h b/gcc/java/java-except.h
index 49ef54b..e069053 100644
--- a/gcc/java/java-except.h
+++ b/gcc/java/java-except.h
@@ -47,6 +47,9 @@ struct eh_range
/* The next child of outer, in address order. */
struct eh_range *next_sibling;
+
+ /* True if this range has already been expanded. */
+ int expanded;
};
/* A dummy range that represents the entire method. */
@@ -60,9 +63,9 @@ extern void method_init_exceptions PARAMS ((void));
extern void emit_handlers PARAMS ((void));
-extern void maybe_start_try PARAMS ((int));
+extern void maybe_start_try PARAMS ((int, int));
-extern void maybe_end_try PARAMS ((int));
+extern void maybe_end_try PARAMS ((int, int));
extern void add_handler PARAMS ((int, int, tree, tree));