diff options
author | Tom Tromey <tromey@redhat.com> | 2007-08-17 22:08:04 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2007-08-17 22:08:04 +0000 |
commit | 279e32c924988609c7b48d70b681b492a142b66a (patch) | |
tree | 70cc3ddb26fc919cb7189d6ea58e391a6b723fd6 /gcc/java/expr.c | |
parent | 44fd0e80635189f48f24654cb1e9620c39d5314b (diff) | |
download | gcc-279e32c924988609c7b48d70b681b492a142b66a.zip gcc-279e32c924988609c7b48d70b681b492a142b66a.tar.gz gcc-279e32c924988609c7b48d70b681b492a142b66a.tar.bz2 |
typeck.c (find_method_in_interfaces): Update.
* typeck.c (find_method_in_interfaces): Update.
* jcf-parse.c (load_class): Update.
* java-gimplify.c (java_gimplify_component_ref): Removed.
(java_gimplify_modify_expr): Update. Removed pre_p and post_p
arguments.
(java_gimplify_expr): Update.
* decl.c (java_init_decl_processing): Update.
* class.c (set_constant_value): Update.
(make_class_data): Update.
(finish_class): Update.
(build_static_field_ref): Update.
(is_compiled_class): Update.
(maybe_layout_super_class): Update.
(layout_class): Update.
(layout_class_method): Update.
* java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
(lang_decl_var) <am, final_iud, cif>: Removed fields.
(lang_decl_func) <init_calls_this>: Removed field.
(lang_type) <dot_class, verify_method>: Removed fields.
(FIELD_NESTED_ACCESS): Removed.
(FIELD_NESTED_ACCESS_P): Removed.
(DECL_FIELD_FINAL_IUD): Removed.
(DECL_LOCAL_FINAL_IUD): Removed
(LOCAL_FINAL_P): Removed.
(FINAL_VARIABLE_P): Removed.
(CLASS_FINAL_VARIABLE_P): Removed.
(DECL_BIT_INDEX): Removed.
(DECL_INIT_CALLS_THIS): Removed.
(FIELD_LOCAL_ALIAS): Removed.
(FIELD_LOCAL_ALIAS_USED): Removed.
(FIELD_THISN): Removed.
(DECL_FUNCTION_INIT_TEST_CLASS): Removed.
(LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
(LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
(TYPE_DOT_CLASS): Removed.
(TYPE_VERIFY_METHOD): Removed.
(ID_CLASSDOLLAR_P): Removed.
(enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
Removed.
(classdollar_identifier_node): Removed.
(TYPE_UNKNOWN): Removed.
(CLASS_FROM_SOURCE_P): Removed.
* expr.c (build_jni_stub): Update.
(force_evaluation_order): Update.
(build_java_empty_stmt): Update.
(build_class_init): Update.
(java_stack_swap): Update.
(build_jni_stub): Update.
From-SVN: r127602
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r-- | gcc/java/expr.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index c222a65..af49adb 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -638,9 +638,8 @@ java_stack_swap (void) tree decl1, decl2; if (stack_pointer < 2 - || (type1 = stack_type_map[stack_pointer - 1]) == TYPE_UNKNOWN - || (type2 = stack_type_map[stack_pointer - 2]) == TYPE_UNKNOWN - || type1 == TYPE_SECOND || type2 == TYPE_SECOND + || (type1 = stack_type_map[stack_pointer - 1]) == TYPE_SECOND + || (type2 = stack_type_map[stack_pointer - 2]) == TYPE_SECOND || TYPE_IS_WIDE (type1) || TYPE_IS_WIDE (type2)) /* Bad stack swap. */ abort (); @@ -1998,13 +1997,7 @@ build_class_init (tree clas, tree expr) decl = build_decl (VAR_DECL, NULL_TREE, boolean_type_node); MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); - LOCAL_CLASS_INITIALIZATION_FLAG (decl) = 1; DECL_CONTEXT (decl) = current_function_decl; - DECL_FUNCTION_INIT_TEST_CLASS (decl) = clas; - /* Tell the check-init code to ignore this decl when not - optimizing class initialization. */ - if (!STATIC_CLASS_INIT_OPT_P ()) - DECL_BIT_INDEX (decl) = -1; DECL_INITIAL (decl) = boolean_false_node; /* Don't emit any symbolic debugging info for this decl. */ DECL_IGNORED_P (decl) = 1; @@ -2621,7 +2614,6 @@ build_jni_stub (tree method) int args_size = 0; tree klass = DECL_CONTEXT (method); - int from_class = ! CLASS_FROM_SOURCE_P (klass); klass = build_class_ref (klass); gcc_assert (METHOD_NATIVE (method) && flag_jni); @@ -2651,25 +2643,16 @@ build_jni_stub (tree method) chainon (env_var, meth_var); build_result_decl (method); - /* One strange way that the front ends are different is that they - store arguments differently. */ - if (from_class) - method_args = DECL_ARGUMENTS (method); - else - method_args = BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (method)); + method_args = DECL_ARGUMENTS (method); block = build_block (env_var, NULL_TREE, method_args, NULL_TREE); TREE_SIDE_EFFECTS (block) = 1; - /* When compiling from source we don't set the type of the block, - because that will prevent patch_return from ever being run. */ - if (from_class) - TREE_TYPE (block) = TREE_TYPE (TREE_TYPE (method)); + TREE_TYPE (block) = TREE_TYPE (TREE_TYPE (method)); /* Compute the local `env' by calling _Jv_GetJNIEnvNewFrame. */ body = build2 (MODIFY_EXPR, ptr_type_node, env_var, build_call_nary (ptr_type_node, build_address_of (soft_getjnienvnewframe_node), 1, klass)); - CAN_COMPLETE_NORMALLY (body) = 1; /* All the arguments to this method become arguments to the underlying JNI function. If we had to wrap object arguments in a @@ -2756,7 +2739,6 @@ build_jni_stub (tree method) } TREE_SIDE_EFFECTS (call) = 1; - CAN_COMPLETE_NORMALLY (call) = 1; body = build2 (COMPOUND_EXPR, void_type_node, body, call); TREE_SIDE_EFFECTS (body) = 1; @@ -2766,7 +2748,6 @@ build_jni_stub (tree method) build_address_of (soft_jnipopsystemframe_node), 1, env_var); TREE_SIDE_EFFECTS (call) = 1; - CAN_COMPLETE_NORMALLY (call) = 1; body = build2 (COMPOUND_EXPR, void_type_node, body, call); TREE_SIDE_EFFECTS (body) = 1; @@ -3750,7 +3731,6 @@ force_evaluation_order (tree node) cmp = build2 (COMPOUND_EXPR, TREE_TYPE (node), cmp, node); if (TREE_TYPE (cmp) != void_type_node) cmp = save_expr (cmp); - CAN_COMPLETE_NORMALLY (cmp) = CAN_COMPLETE_NORMALLY (node); TREE_SIDE_EFFECTS (cmp) = 1; node = cmp; } @@ -3764,7 +3744,6 @@ tree build_java_empty_stmt (void) { tree t = build_empty_stmt (); - CAN_COMPLETE_NORMALLY (t) = 1; return t; } |