mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 17:19:33 +02:00
63 lines
1.7 KiB
ObjectPascal
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.
|