From 1a43dd78d054dbad8d7af9ba4829ea2f1cb70b53 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Thu, 17 Jul 2014 15:15:34 +0100 Subject: Add write barriers to optimizing compiler. Change-Id: I43a40954757f51d49782e70bc28f7c314d6dbe17 --- test/401-optimizing-compiler/src/Main.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test/401-optimizing-compiler/src/Main.java') diff --git a/test/401-optimizing-compiler/src/Main.java b/test/401-optimizing-compiler/src/Main.java index a5192e1e64..0d8eeb94a6 100644 --- a/test/401-optimizing-compiler/src/Main.java +++ b/test/401-optimizing-compiler/src/Main.java @@ -75,6 +75,16 @@ public class Main { if (m.$opt$TestReturnNewObject(m) == m) { throw new Error("Unexpected value returned"); } + + // Loop enough iterations to hope for a crash if no write barrier + // is emitted. + for (int j = 0; j < 3; j++) { + Main m1 = new Main(); + $opt$SetFieldInOldObject(m1); + for (int i = 0; i < 1000; ++i) { + Object o = new byte[1024]; + } + } } static int $opt$TestInvokeIntParameter(int param) { @@ -169,4 +179,10 @@ public class Main { public static void throwStaticMethod() { throw new Error("Error"); } + + public static void $opt$SetFieldInOldObject(Main m) { + m.o = new Main(); + } + + Object o; } -- cgit v1.2.3-59-g8ed1b