ptraddr_t is an unsigned integer type that can hold the address of any
pointer. It differes from uintptr_t in that it does not carry
provenance which is useful for CHERI in that it can disambigurate the
provenance of uintptr_t expressions. It differes from size_t in that
some segmented architecture (not supported by FreeBSD) may have a size_t
that does not hold an address.
ptraddr_t is not yet standardized, but is currently proposed for
inclusion in C++2Y.
Prefer the compiler defined PTRADDR_TYPE defintion where available
as this a new type and we don't need to worry about historical values.
Fall back to __size_t where unavailable.
Effort: CHERI upstreaming
Sponsored by: Innovate UK