aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 39ba935..e3eaf35 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -1780,7 +1780,8 @@ build_class_init (clas, expr)
}
tree
-build_known_method_ref (method, method_type, self_type, method_signature, arg_list)
+build_known_method_ref (method, method_type, self_type,
+ method_signature, arg_list)
tree method, method_type ATTRIBUTE_UNUSED, self_type,
method_signature ATTRIBUTE_UNUSED, arg_list ATTRIBUTE_UNUSED;
{
@@ -1794,13 +1795,13 @@ build_known_method_ref (method, method_type, self_type, method_signature, arg_li
{
/* We don't know whether the method has been (statically) compiled.
Compile this code to get a reference to the method's code:
-
+
SELF_TYPE->methods[METHOD_INDEX].ncode
-
+
This is guaranteed to work (assuming SELF_TYPE has
been initialized), since if the method is not compiled yet,
its ncode points to a trampoline that forces compilation. */
-
+
int method_index = 0;
tree meth;
tree ref = build_class_ref (self_type);
@@ -2110,8 +2111,8 @@ expand_invoke (opcode, method_ref_index, nargs)
func = build_invokeinterface (dtable, method);
}
func = build1 (NOP_EXPR, build_pointer_type (method_type), func);
- call = build (CALL_EXPR, TREE_TYPE (method_type), func, arg_list, NULL_TREE);
- TREE_SIDE_EFFECTS (call) = 1;
+
+ call = build_call_or_builtin (method, func, arg_list);
if (check != NULL_TREE)
{