summaryrefslogtreecommitdiff
path: root/test/401-optimizing-compiler/src/Main.java
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2014-07-17 15:15:34 +0100
committer Nicolas Geoffray <ngeoffray@google.com> 2014-07-21 10:39:33 +0100
commit1a43dd78d054dbad8d7af9ba4829ea2f1cb70b53 (patch)
tree9460255e0afe00e2976a8d0485d8fc5e3219c6fd /test/401-optimizing-compiler/src/Main.java
parentb5a214105d4c9b6c14de1649764950dd35bd620f (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.java16
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;
}