diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-13 04:59:33 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-13 04:59:33 +0000 |
| commit | 0e2bfc592ae0cc046063e7390d9d557df791ccfd (patch) | |
| tree | d37b268dcb8cc4b3d21e21a0832052417e87e5f8 /gcc/java/expr.c | |
| parent | 656c947c64a5b661bb735b265168b169737c17bc (diff) | |
| download | ppe42-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.c | 12 |
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++]) |

