fpc/tests/webtbf/tw2053b.pp
fpc 790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00

69 lines
1.4 KiB
ObjectPascal

{ %Fail }
{ new with type of size > 2Gb }
{ Source provided for Free Pascal Bug Report 2053 }
{ Submitted by "Luis Castedo" on 2002-07-24 }
{ e-mail: castedo@elai.upm.es }
program tb2;
{$MODE TP}
{$C+}
type
PosInteger = 0 .. high(integer);
Posptrint = 0 .. high(ptrint);
TMyRecord = record
mr_sglDummy1: array[0..3] of Single;
mr_lDummy2 : ptrint;
mr_iDummy3 : Integer;
mr_iDummy4 : Integer;
end;
TMyRecordArray = array[PosInteger] of TMyRecord;
TMyLongRecordArray = array[ptrint] of TMyRecord;
PMyRecordArray = ^TMyRecordArray;
PMyLongRecordArray = ^TMyLongRecordArray;
var
pArray: PMyRecordArray;
pLongArray : PMyLongRecordArray;
size : ptrint;
begin
new(parray);
new(pLongArray);
size:= 50 * SizeOf(TMyRecord);
GetMem(pArray, size);
FillChar(pArray^,size,#0);
GetMem(pLongArray, 50 * SizeOf(TMyRecord));
FillChar(pLongArray^,size,#0);
Assert(Assigned(pArray));
WriteLn('pArray = ', ptrint(pArray));
WriteLn('@(pArray^[0]) = ', ptrint(@(pArray^[0])));
pArray^[0].mr_lDummy2 := 24;
if (pArray^[0].mr_lDummy2<>24) then
begin
Halt(1);
end;
WriteLn('pLongArray = ', ptrint(pLongArray));
WriteLn('@(pLongArray^[0]) = ', ptrint(@(pLongArray^[0])));
pLongArray^[0].mr_lDummy2 := 25;
if (pLongArray^[0].mr_lDummy2<>25) then
begin
Halt(1);
end;
FreeMem(pArray, size);
FreeMem(pLongArray, size);
end.