In Delphi XE2, the compiler declares 2 additional intrinsic routines that are undocumented.

They are ReturnAddress and AddressOfReturnAddress. They behaved as if they're declared like this:

function ReturnAddress: Pointer;
function AddressOfReturnAddress: Pointer;

As far as I can discover, both ReturnAddress and AddressOfReturnAddress do the same thing. Return the address of the caller's next instruction.

procedure X;
var
  P: Pointer;
begin
  {.... other statements ... }
  P := ReturnAddress; // P will contain the address of the label ThisAddress after this statement gets executed.
  {... other statements ... }
end;

procedure Y;
label ThisAddress;
begin
  X;
ThisAddress:
  {... other statements ...}
end;