diff options
author | Andrew Haley <aph@cygnus.com> | 2000-02-09 14:08:44 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2000-02-09 14:08:44 +0000 |
commit | e8b22dd136b0adf813976ca738c7d96d101b3452 (patch) | |
tree | b67485a68e46fde7b7d44642f8af9498d8fe9b03 /gcc/java/java-tree.h | |
parent | 665792ebecf527818aa1fcaf31b90307204cef30 (diff) | |
download | gcc-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-tree.h')
-rw-r--r-- | gcc/java/java-tree.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index a8370c4..288a6cb 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -592,6 +592,7 @@ extern int class_depth PARAMS ((tree)); extern int verify_jvm_instructions PARAMS ((struct JCF *, const unsigned char *, long)); extern void maybe_pushlevels PARAMS ((int)); extern void maybe_poplevels PARAMS ((int)); +extern void force_poplevels PARAMS ((int)); extern int process_jvm_instruction PARAMS ((int, const unsigned char *, long)); extern void set_local_type PARAMS ((int, tree)); extern int merge_type_state PARAMS ((tree)); @@ -944,3 +945,5 @@ extern int java_error_count; \ if (java_error_count > save_error_count) \ return; \ } + +#undef DEBUG_JAVA_BINDING_LEVELS |