summaryrefslogtreecommitdiffstats
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-13 04:59:33 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-13 04:59:33 +0000
commit0e2bfc592ae0cc046063e7390d9d557df791ccfd (patch)
treed37b268dcb8cc4b3d21e21a0832052417e87e5f8 /gcc/java/expr.c
parent656c947c64a5b661bb735b265168b169737c17bc (diff)
downloadppe42-gcc-0e2bfc592ae0cc046063e7390d9d557df791ccfd.tar.gz
ppe42-gcc-0e2bfc592ae0cc046063e7390d9d557df791ccfd.zip
* java-tree.def (JAVA_EXC_OBJ_EXPR): New.
* expr.c (java_lang_expand_expr): Expand it. (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of calling build_exception_object_ref. * parse.y (catch_clause_parameter): Likewise. (build_dot_class_method): Likewise. (try_reference_assignconv): Likewise. * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR. * jcf-write.c (generate_bytecode_insns): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index cb9ae160931..861069d95bc 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -2351,9 +2351,9 @@ get_primitive_array_vtable (tree elt)
struct rtx_def *
java_lang_expand_expr (exp, target, tmode, modifier)
register tree exp;
- rtx target ATTRIBUTE_UNUSED;
- enum machine_mode tmode ATTRIBUTE_UNUSED;
- enum expand_modifier modifier ATTRIBUTE_UNUSED;
+ rtx target;
+ enum machine_mode tmode;
+ enum expand_modifier modifier;
{
tree current;
@@ -2506,6 +2506,10 @@ java_lang_expand_expr (exp, target, tmode, modifier)
expand_end_all_catch ();
return const0_rtx;
+ case JAVA_EXC_OBJ_EXPR:
+ return expand_expr (build_exception_object_ref (TREE_TYPE (exp)),
+ target, tmode, modifier);
+
default:
internal_error ("Can't expand %s", tree_code_name [TREE_CODE (exp)]);
}
@@ -2803,7 +2807,7 @@ process_jvm_instruction (PC, byte_ops, length)
if (instruction_bits [PC] & BCODE_EXCEPTION_TARGET)
{
tree type = pop_type (ptr_type_node);
- push_value (build_exception_object_ref (type));
+ push_value (build (JAVA_EXC_OBJ_EXPR, type));
}
switch (byte_ops[PC++])
OpenPOWER on IntegriCloud