diff options
author | 2014-07-17 15:15:34 +0100 | |
---|---|---|
committer | 2014-07-21 10:39:33 +0100 | |
commit | 1a43dd78d054dbad8d7af9ba4829ea2f1cb70b53 (patch) | |
tree | 9460255e0afe00e2976a8d0485d8fc5e3219c6fd /test/401-optimizing-compiler/src/Main.java | |
parent | b5a214105d4c9b6c14de1649764950dd35bd620f (diff) |
Add write barriers to optimizing compiler.
Change-Id: I43a40954757f51d49782e70bc28f7c314d6dbe17
Diffstat (limited to 'test/401-optimizing-compiler/src/Main.java')
-rw-r--r-- | test/401-optimizing-compiler/src/Main.java | 16 |
1 files changed, 16 insertions, 0 deletions
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; } |