# HG changeset patch # User Doug Simon # Date 1341907729 -7200 # Node ID a24d30822e4f4f6022e36d05ecd52016a29c098b # Parent be428fe2d86ce0b1ef3f10521fbad83dfaeb193c added tests for null receiver for non-static invokes diff -r be428fe2d86c -r a24d30822e4f graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java --- a/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java Tue Jul 10 09:36:34 2012 +0200 +++ b/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java Tue Jul 10 10:08:49 2012 +0200 @@ -44,8 +44,9 @@ } public static class A implements I { + final String name = "A"; public String virtualMethod(String s) { - return s; + return name + s; } } @@ -60,7 +61,15 @@ test("invokespecialConstructor", "a string"); test("invokespecial", this, "a string"); test("invokevirtual", new A(), "a string"); + test("invokevirtual2", new A(), "a string"); test("invokeinterface", new A(), "a string"); + Object[] args = {null}; + test("invokestatic", args); + test("invokespecialConstructor", args); + test("invokespecial", null, null); + test("invokevirtual", null, null); + test("invokevirtual2", null, null); + test("invokeinterface", null, null); } public static String invokestatic(String s) { @@ -83,6 +92,10 @@ return a.virtualMethod(s); } + public static String invokevirtual2(A a, String s) { + return a.virtualMethod(s) + a.virtualMethod(s); + } + public static String invokeinterface(I i, String s) { return i.virtualMethod(s); }