Jonas Maebe 22 years ago
parent
commit
3d458ea501
1 changed files with 66 additions and 0 deletions
  1. 66 0
      tests/tbs/tb0451.pp

+ 66 - 0
tests/tbs/tb0451.pp

@@ -0,0 +1,66 @@
+{ %version=1.1 }
+
+{$mode delphi}
+
+{ taken from fpc-devel mailing list, posted by }
+{ "Morten Juel Skovrup" <[email protected]>        }
+program tb0451;
+
+type
+  TDoubleArray = array of Double;
+  TTestProp =
+    record
+      TestItem : Double;
+    end;
+  TTestPropArray = array of TTestProp;
+
+  TTestClass =
+    class
+      private
+        FTestProp: TTestPropArray;
+      public
+        constructor Create;
+        destructor Destroy; override;
+        property TestProp : TTestPropArray read FTestProp;
+    end;
+
+procedure Init(var AnArray : array of Double);
+var
+  i : Integer;
+begin
+  for i:=0 to High(AnArray) do
+    AnArray[i] := 1;
+end;
+
+var
+  Test      : TDoubleArray;
+  i         : Integer;
+  TestClass : TTestClass;
+
+constructor TTestClass.Create;
+begin
+  inherited Create;
+  SetLength(FTestProp,2);
+end;
+
+destructor TTestClass.Destroy;
+begin
+  Finalize(FTestProp);
+  inherited Destroy;
+end;
+
+begin
+  SetLength(Test,5);
+  Init(Test);                       //!!! FPC compile error - Delphi
+compiles fine...
+  for i:=0 to High(Test) do
+    WriteLn(Test[i]);
+  Finalize(Test);
+
+  TestClass := TTestClass.Create;
+  with TestClass.TestProp[1] do     //!!! FPC stops with runtime-error 201
+    TestItem := 2;
+  WriteLn(TestClass.TestProp[0].TestItem);
+  WriteLn(TestClass.TestProp[1].TestItem);
+  TestClass.Free;
+end.