aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2007-08-17 22:08:04 +0000
committerTom Tromey <tromey@gcc.gnu.org>2007-08-17 22:08:04 +0000
commit279e32c924988609c7b48d70b681b492a142b66a (patch)
tree70cc3ddb26fc919cb7189d6ea58e391a6b723fd6 /gcc/java/expr.c
parent44fd0e80635189f48f24654cb1e9620c39d5314b (diff)
downloadgcc-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.c29
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;
}