tw2053.pp 763 B

12345678910111213141516171819202122232425262728293031323334353637
  1. { %FAIL }
  2. { Source provided for Free Pascal Bug Report 2053 }
  3. { Submitted by "Luis Castedo" on 2002-07-24 }
  4. { e-mail: [email protected] }
  5. program tb2;
  6. {$MODE TP}
  7. {$C+}
  8. type
  9. TMyRecord = record
  10. mr_sglDummy1: array[0..3] of Single;
  11. mr_lDummy2 : ptrint;
  12. mr_iDummy3 : Integer;
  13. mr_iDummy4 : Integer;
  14. end;
  15. { TMyRecordArray = array[Integer] of TMyRecord;} { Error }
  16. TMyRecordArray = array[Ptrint] of TMyRecord; { OK }
  17. PMyRecordArray = ^TMyRecordArray;
  18. var
  19. pArray: PMyRecordArray;
  20. begin
  21. GetMem(pArray, 50 * SizeOf(TMyRecord));
  22. Assert(Assigned(pArray));
  23. WriteLn('pArray = ', ptrint(pArray));
  24. WriteLn('@(pArray^[0]) = ', ptrint(@(pArray^[0])));
  25. pArray^[0].mr_lDummy2 := 0;
  26. FreeMem(pArray, 50 * SizeOf(TMyRecord));
  27. end.