aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Bothner <bothner@cygnus.com>1998-12-23 10:46:40 +0000
committerPer Bothner <bothner@gcc.gnu.org>1998-12-23 02:46:40 -0800
commite402ca989ba0d54124f90b6a95cc595e272f7919 (patch)
tree9e0930a81c12fc9a3c7cc2670e141b91dcd55806
parent45b44fbed7110d8388a4eb4c0c16b39e35c4c16c (diff)
downloadgcc-e402ca989ba0d54124f90b6a95cc595e272f7919.zip
gcc-e402ca989ba0d54124f90b6a95cc595e272f7919.tar.gz
gcc-e402ca989ba0d54124f90b6a95cc595e272f7919.tar.bz2
expr.c (process_jvm_instruction): Do load_type_state after JSR.
* 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. From-SVN: r24405
-rw-r--r--gcc/java/ChangeLog22
-rw-r--r--gcc/java/lang.c2
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 1ab527f..0546ace 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,25 @@
+Tue Dec 22 11:25:19 1998 Per Bothner <bothner@cygnus.com>
+
+ * 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.
+
Sun Dec 20 16:15:44 1998 John F. Carr <jfc@mit.edu>
* Make-lang.in: Comment out control-Ls; they upset some makes.
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 50a1b67..5a407c7 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -494,6 +494,8 @@ lang_init ()
(char *)(tree_code_name + (int) LAST_AND_UNUSED_TREE_CODE),
(LAST_JAVA_TREE_CODE -
(int)LAST_AND_UNUSED_TREE_CODE) * sizeof (char *));
+
+ using_eh_for_cleanups ();
}
/* This doesn't do anything on purpose. It's used to satisfy the