diff options
author | Richard Henderson <rth@redhat.com> | 2001-05-12 21:59:33 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-05-12 21:59:33 -0700 |
commit | f17f18980bc8654557f02a3a6b29ca2fb88c54aa (patch) | |
tree | d37b268dcb8cc4b3d21e21a0832052417e87e5f8 /gcc/java/expr.c | |
parent | d9c219593bd31a92d0c7a7ee111604cc0f8b7234 (diff) | |
download | gcc-f17f18980bc8654557f02a3a6b29ca2fb88c54aa.zip gcc-f17f18980bc8654557f02a3a6b29ca2fb88c54aa.tar.gz gcc-f17f18980bc8654557f02a3a6b29ca2fb88c54aa.tar.bz2 |
java-tree.def (JAVA_EXC_OBJ_EXPR): New.
* 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.
From-SVN: r42030
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r-- | gcc/java/expr.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index cb9ae16..861069d 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++]) |