This used to not work, let's make sure it stays working. Signed-off-by: Vegard Nossum <vegard.nos...@gmail.com> --- Makefile | 1 + regression/jvm/ArrayMemberTest.java | 20 ++++++++++++++++++++ regression/run-suite.sh | 1 + 3 files changed, 22 insertions(+), 0 deletions(-) create mode 100644 regression/jvm/ArrayMemberTest.java
diff --git a/Makefile b/Makefile index 9c5620e..a63a5a5 100644 --- a/Makefile +++ b/Makefile @@ -206,6 +206,7 @@ REGRESSION_TEST_SUITE_CLASSES = \ regression/jato/internal/VM.class \ regression/jvm/TestCase.class \ regression/jvm/ArrayTest.class \ + regression/jvm/ArrayMemberTest.class \ regression/jvm/BranchTest.class \ regression/jvm/ObjectArrayTest.class \ regression/jvm/ExitStatusIsOneTest.class \ diff --git a/regression/jvm/ArrayMemberTest.java b/regression/jvm/ArrayMemberTest.java new file mode 100644 index 0000000..73ea4d1 --- /dev/null +++ b/regression/jvm/ArrayMemberTest.java @@ -0,0 +1,20 @@ +package jvm; + +/** + * This once turned up a bug where the array size check would interfere + * with the assignment when the array was a member of an object. + * + * The bug was discovered by Vegard and fixed by Tomek. + */ +public class ArrayMemberTest { + public static void main(String[] args) { + X x = new X(); + + int sum = 0; + sum += x.a[0]; + } + + private static class X { + public char[] a = new char[1]; + } +} diff --git a/regression/run-suite.sh b/regression/run-suite.sh index 916c6bf..b0b564f 100755 --- a/regression/run-suite.sh +++ b/regression/run-suite.sh @@ -52,6 +52,7 @@ done if [ -z "$CLASS_LIST" ]; then run_java jvm.ArrayTest 0 + run_java jvm.ArrayMemberTest 0 run_java jvm.BranchTest 0 run_java jvm.ObjectArrayTest 0 run_java jvm.ExitStatusIsZeroTest 0 -- 1.6.0.4 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel