diff options
| author | 2015-09-08 19:56:31 +0100 | |
|---|---|---|
| committer | 2015-09-17 12:29:59 +0100 | |
| commit | 23a8e35481face09183a24b9d11e505597c75ebb (patch) | |
| tree | bcaafb6ea001349acbf160c2cc89334fab4a38dc /test/529-checker-unresolved/src/Main.java | |
| parent | 175dc732c80e6f2afd83209348124df349290ba8 (diff) | |
Support unresolved fields in optimizing
Change-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4
Diffstat (limited to 'test/529-checker-unresolved/src/Main.java')
| -rw-r--r-- | test/529-checker-unresolved/src/Main.java | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/test/529-checker-unresolved/src/Main.java b/test/529-checker-unresolved/src/Main.java index 6f047974b3..adb5adae82 100644 --- a/test/529-checker-unresolved/src/Main.java +++ b/test/529-checker-unresolved/src/Main.java @@ -44,6 +44,76 @@ public class Main extends UnresolvedSuperClass { super.superMethod(); } + /// CHECK-START: void Main.callUnresolvedStaticFieldAccess() register (before) + /// CHECK: UnresolvedStaticFieldSet field_type:PrimByte + /// CHECK: UnresolvedStaticFieldSet field_type:PrimChar + /// CHECK: UnresolvedStaticFieldSet field_type:PrimInt + /// CHECK: UnresolvedStaticFieldSet field_type:PrimLong + /// CHECK: UnresolvedStaticFieldSet field_type:PrimFloat + /// CHECK: UnresolvedStaticFieldSet field_type:PrimDouble + /// CHECK: UnresolvedStaticFieldSet field_type:PrimNot + + /// CHECK: UnresolvedStaticFieldGet field_type:PrimByte + /// CHECK: UnresolvedStaticFieldGet field_type:PrimChar + /// CHECK: UnresolvedStaticFieldGet field_type:PrimInt + /// CHECK: UnresolvedStaticFieldGet field_type:PrimLong + /// CHECK: UnresolvedStaticFieldGet field_type:PrimFloat + /// CHECK: UnresolvedStaticFieldGet field_type:PrimDouble + /// CHECK: UnresolvedStaticFieldGet field_type:PrimNot + static public void callUnresolvedStaticFieldAccess() { + Object o = new Object(); + UnresolvedClass.staticByte = (byte)1; + UnresolvedClass.staticChar = '1'; + UnresolvedClass.staticInt = 123456789; + UnresolvedClass.staticLong = 123456789123456789l; + UnresolvedClass.staticFloat = 123456789123456789f; + UnresolvedClass.staticDouble = 123456789123456789d; + UnresolvedClass.staticObject = o; + + expectEquals((byte)1, UnresolvedClass.staticByte); + expectEquals('1', UnresolvedClass.staticChar); + expectEquals(123456789, UnresolvedClass.staticInt); + expectEquals(123456789123456789l, UnresolvedClass.staticLong); + expectEquals(123456789123456789f, UnresolvedClass.staticFloat); + expectEquals(123456789123456789d, UnresolvedClass.staticDouble); + expectEquals(o, UnresolvedClass.staticObject); + } + + /// CHECK-START: void Main.callUnresolvedInstanceFieldAccess(UnresolvedClass) register (before) + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimByte + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimChar + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimInt + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimLong + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimFloat + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimDouble + /// CHECK: UnresolvedInstanceFieldSet field_type:PrimNot + + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimByte + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimChar + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimInt + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimLong + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimFloat + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimDouble + /// CHECK: UnresolvedInstanceFieldGet field_type:PrimNot + static public void callUnresolvedInstanceFieldAccess(UnresolvedClass c) { + Object o = new Object(); + c.instanceByte = (byte)1; + c.instanceChar = '1'; + c.instanceInt = 123456789; + c.instanceLong = 123456789123456789l; + c.instanceFloat = 123456789123456789f; + c.instanceDouble = 123456789123456789d; + c.instanceObject = o; + + expectEquals((byte)1, c.instanceByte); + expectEquals('1', c.instanceChar); + expectEquals(123456789, c.instanceInt); + expectEquals(123456789123456789l, c.instanceLong); + expectEquals(123456789123456789f, c.instanceFloat); + expectEquals(123456789123456789d, c.instanceDouble); + expectEquals(o, c.instanceObject); + } + /// CHECK-START: void Main.main(java.lang.String[]) register (before) /// CHECK: InvokeUnresolved invoke_type:direct static public void main(String[] args) { @@ -52,5 +122,49 @@ public class Main extends UnresolvedSuperClass { callInvokeUnresolvedVirtual(c); callInvokeUnresolvedInterface(c); callInvokeUnresolvedSuper(new Main()); + callUnresolvedStaticFieldAccess(); + callUnresolvedInstanceFieldAccess(c); + } + + public static void expectEquals(byte expected, byte result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(char expected, char result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(int expected, int result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(long expected, long result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(float expected, float result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(double expected, double result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } + } + + public static void expectEquals(Object expected, Object result) { + if (expected != result) { + throw new Error("Expected: " + expected + ", found: " + result); + } } } |