13.7.2 The Package System.Address_To_Access_Conversions
Static Semantics
The following language-defined
generic library package exists:
generic
type Object(<>)
is limited private;
package System.Address_To_Access_Conversions
is
pragma Preelaborate(Address_To_Access_Conversions);
type Object_Pointer
is access all Object;
function To_Pointer(Value : Address)
return Object_Pointer;
function To_Address(Value : Object_Pointer)
return Address;
pragma Convention(Intrinsic, To_Pointer);
pragma Convention(Intrinsic, To_Address);
end System.Address_To_Access_Conversions;
The To_Pointer and To_Address subprograms convert
back and forth between values of types Object_Pointer and Address. To_Pointer(X'Address)
is equal to X'Unchecked_Access for any X that allows Unchecked_Access.
To_Pointer(Null_Address) returns
null.
For
other addresses, the behavior is unspecified. To_Address(
null)
returns Null_Address. To_Address(Y), where Y /=
null, returns
Y.
all'Address.
Implementation Permissions
An implementation may place restrictions on instantiations
of Address_To_Access_Conversions.