diff options
author | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-23 10:46:45 +0000 |
---|---|---|
committer | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-23 10:46:45 +0000 |
commit | 1fac57eec6739eb2e240f3817b0805580bd947fe (patch) | |
tree | d2caa4d11dd4417a98a74be6e8b0a49a2e9c6768 /gcc/java/verify.c | |
parent | c1291ed2b9ad2cb4c963022c372171091f1a0286 (diff) | |
download | gcc-1fac57eec6739eb2e240f3817b0805580bd947fe.tar.gz |
d
* expr.c (process_jvm_instruction): Do load_type_state after JSR.
* verify.c (verify_jvm_instructions): Fix off-by-one error.
* jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
(localvar_alloc): Change return type to void,
(emit_unop): Remove unused variable size.
* jcf-write.c (struct jcf_block): Add new union.
(PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
(call_cleanups): New functions.
(struct jcf_partial): New fields num_finalizers and return_value_decl.
(generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
* lang.c (lang_init): Call using_eh_for_cleanups.
* parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
completing operands to patch_synchronized_statement.
Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
(patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR instead of TRY_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24406 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/verify.c')
-rw-r--r-- | gcc/java/verify.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/java/verify.c b/gcc/java/verify.c index 9554a81d523..4e89f4560b2 100644 --- a/gcc/java/verify.c +++ b/gcc/java/verify.c @@ -1035,10 +1035,10 @@ verify_jvm_instructions (jcf, byte_ops, length) int nlocals = DECL_MAX_LOCALS (current_function_decl); index = nlocals + DECL_MAX_STACK (current_function_decl); return_type_map = make_tree_vec (index); - while (--index >= nlocals) - TREE_VEC_ELT (return_type_map, index) = TYPE_UNKNOWN; - while (--index >= 0) - TREE_VEC_ELT (return_type_map, index) = TYPE_UNUSED; + while (index > nlocals) + TREE_VEC_ELT (return_type_map, --index) = TYPE_UNKNOWN; + while (index > 0) + TREE_VEC_ELT (return_type_map, --index) = TYPE_UNUSED; LABEL_RETURN_LABEL (target) = build_decl (LABEL_DECL, NULL_TREE, TREE_TYPE (target)); LABEL_PC (LABEL_RETURN_LABEL (target)) = -1; |