program typed;
{$IF Defined(FPC)}
{$MODE Delphi}
{$ENDIF}

uses SysUtils;

type
  TCoor = record
    x, y: Integer;
  end;

var
  c: TCoor;
  p: Pointer;

function Eval(var u): Pointer;
begin
  TCoor(u).x := 2;
  TCoor(u).y := 2;
  Result := @u;
end;

begin
  c.x := 1;
  c.y := 1;
  WriteLn(Format('x - %d', [c.x]));
  WriteLn(Format('y - %d', [c.y]));
  WriteLn(Format('p - %p', [@c]));
  p := Eval(c);
  WriteLn(Format('x - %d', [c.x]));
  WriteLn(Format('y - %d', [c.y]));
  WriteLn(Format('p - %p', [p]));
end.