aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-03-28 03:04:51 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-03-28 03:04:51 -0800
commit52a11cbfcf0cfb32628b6953588b6af4037ac0b6 (patch)
treea923c8785a06871784c5177530130063c4925f5a /gcc/java/expr.c
parentce1c98ea459813570b4588427030daa03958fda6 (diff)
downloadgcc-52a11cbfcf0cfb32628b6953588b6af4037ac0b6.zip
gcc-52a11cbfcf0cfb32628b6953588b6af4037ac0b6.tar.gz
gcc-52a11cbfcf0cfb32628b6953588b6af4037ac0b6.tar.bz2
IA-64 ABI Exception Handling.
From-SVN: r40924
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 42c43aa..072be6d 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -2502,15 +2502,13 @@ java_lang_expand_expr (exp, target, tmode, modifier)
for (current = TREE_OPERAND (exp, 1); current;
current = TREE_CHAIN (current))
{
- tree type;
tree catch = TREE_OPERAND (current, 0);
tree decl = BLOCK_EXPR_DECLS (catch);
- type = (decl ? TREE_TYPE (TREE_TYPE (decl)) : NULL_TREE);
- start_catch_handler (prepare_eh_table_type (type));
- expand_expr_stmt (TREE_OPERAND (current, 0));
+ tree type = (decl ? TREE_TYPE (TREE_TYPE (decl)) : NULL_TREE);
- expand_resume_after_catch ();
- end_catch_handler ();
+ expand_start_catch (type);
+ expand_expr_stmt (TREE_OPERAND (current, 0));
+ expand_end_catch ();
}
expand_end_all_catch ();
return const0_rtx;
@@ -2812,7 +2810,7 @@ process_jvm_instruction (PC, byte_ops, length)
if (instruction_bits [PC] & BCODE_EXCEPTION_TARGET)
{
tree type = pop_type (ptr_type_node);
- push_value (build1 (NOP_EXPR, type, soft_exceptioninfo_call_node));
+ push_value (build_exception_object_ref (type));
}
switch (byte_ops[PC++])