mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 07:28:26 +02:00
40 lines
773 B
ObjectPascal
40 lines
773 B
ObjectPascal
{ Source provided for Free Pascal Bug Report 4009 }
|
|
{ Submitted by "Daniël Mantione" on 2005-05-23 }
|
|
{ e-mail: daniel@freepascal.org }
|
|
program testpointercalcbug;
|
|
|
|
{$R+}
|
|
{$Q+}
|
|
|
|
type Pheader=^Theader;
|
|
Theader=record
|
|
x:cardinal
|
|
end;
|
|
|
|
Ppayload=^Tpayload;
|
|
Tpayload=record
|
|
s:string;
|
|
end;
|
|
|
|
Trecordwithheader=record
|
|
header:Theader;
|
|
payload:Tpayload;
|
|
end;
|
|
|
|
{$ifndef fpc} ptruint = cardinal; {$endif}
|
|
|
|
var r:Trecordwithheader;
|
|
p:Ppayload;
|
|
h:Pheader;
|
|
l,l2 : cardinal;
|
|
begin
|
|
p:=@r.payload;
|
|
{Calculate address of header from address of payload.}
|
|
|
|
h:=Pheader(ptruint(p)-shortint(sizeof(Theader)));
|
|
writeln(ptruint(h));
|
|
l:=$ffffffff;
|
|
l2:=1;
|
|
writeln(l-l2);
|
|
end.
|