Browse Source

* crash test for automatic prefetching

git-svn-id: trunk@2515 -
Jonas Maebe 19 years ago
parent
commit
fe1cefd621
2 changed files with 29 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 28 0
      tests/test/tpftch1.pp

+ 1 - 0
.gitattributes

@@ -5684,6 +5684,7 @@ tests/test/tover2.pp svneol=native#text/plain
 tests/test/tpackrec.pp svneol=native#text/plain
 tests/test/tpara1.pp svneol=native#text/plain
 tests/test/tpara2.pp svneol=native#text/plain
+tests/test/tpftch1.pp svneol=native#text/plain
 tests/test/tprocext.pp svneol=native#text/plain
 tests/test/tprocvar1.pp svneol=native#text/plain
 tests/test/tprocvar2.pp svneol=native#text/plain

+ 28 - 0
tests/test/tpftch1.pp

@@ -0,0 +1,28 @@
+{ %OPT=-S2 -O1 }
+
+
+{ check if we don't cause sigsegvs when attempting to prefetch if }
+{ typecasts are involved                                          }
+
+type
+  tc1 = class
+    a: tc1;
+    x: boolean;
+  end;
+
+  tc2 = class(tc1)
+    b: array[1..1000000000] of byte;
+    c: tc1;
+  end;
+
+var
+  a: tc1;
+
+begin
+  a := tc1.create;
+  while assigned(a) do
+    if a.x then
+      a := tc2(a).c
+    else
+      a := a.a;
+end.