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

63 lines
1.7 KiB
ObjectPascal

{****************************************************************}
{ CODE GENERATOR TEST PROGRAM }
{****************************************************************}
{ NODE TESTED : secondderef() }
{****************************************************************}
{ PRE-REQUISITES: secondload() }
{ secondassign() }
{ secondcalln() }
{ secondadd() }
{ secondtypeconv() }
{****************************************************************}
{ DEFINES: }
{****************************************************************}
{ REMARKS: }
{****************************************************************}
program tderef;
type
plongint = ^longint;
ttestarray = array[1..64] of byte;
ptestarray = ^ttestarray;
pbyte = ^byte;
procedure fail;
begin
Writeln('Failed!');
halt(1);
end;
var
pl : plongint;
parray : ptestarray;
passed : boolean;
ptr : pbyte;
b: byte;
Begin
Write('secondderef() test...');
passed := true;
new(pl);
new(parray);
{ left : LOC_REFERENCE }
pl^:= $F0F0;
if pl^ <> $F0F0 then
passed := false;
FillChar(parray^,sizeof(ttestarray),0);
ptr:=pbyte((ptrint(parray)+32));
ptr^ := $A0;
if parray^[33] <> $A0 then
passed := false;
{ left : LOC_REGISTER }
b:=(pbyte((ptrint(parray)+32))^);
if b <> $A0 then
passed := false;
dispose(pl);
dispose(parray);
if passed then
WriteLn('Success.')
else
Fail;
end.