Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- .../jvm/ObjectCreationAndManipulationTest.java | 32 +++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/regression/jvm/ObjectCreationAndManipulationTest.java b/regression/jvm/ObjectCreationAndManipulationTest.java index b548a03..a744808 100644 --- a/regression/jvm/ObjectCreationAndManipulationTest.java +++ b/regression/jvm/ObjectCreationAndManipulationTest.java @@ -150,6 +150,34 @@ public class ObjectCreationAndManipulationTest extends TestCase { } + private static int sideEffectCounter; + + private static int sideEffect() { + sideEffectCounter++; + return 0; + } + + private static void testArrayLoadSideEffectBug() { + int array[] = {0, 0}; + int x; + + sideEffectCounter = 0; + x = array[sideEffect()]; + + assertEquals(0, x); + assertEquals(1, sideEffectCounter); + } + + private static void testArrayStoreSideEffectBug() { + int array[] = {0, 0}; + int x = 1; + + sideEffectCounter = 0; + array[sideEffect()] = x; + + assertEquals(1, sideEffectCounter); + } + public static void main(String[] args) { testNewObject(); testObjectInitialization(); @@ -166,6 +194,8 @@ public class ObjectCreationAndManipulationTest extends TestCase { testObjectArrayLoadAndStore(); testMultiDimensionalArrayLoadAndStore(); testCheckCast(); + testArrayLoadSideEffectBug(); + testArrayStoreSideEffectBug(); exit(); } @@ -175,7 +205,7 @@ public class ObjectCreationAndManipulationTest extends TestCase { public InitializingClass(int value) { this.value = value; - } + } }; private static class ClassFields { -- 1.6.0.6 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel