E.1.7.1 (22.214.171.124, 7.1.1) The type of integer required to
hold the maximum size of an array; that is, the type of the sizeof operator, size_t:
unsigned int as defined in stddef.h.
unsigned long for -Xarch=v9
(6.3.4) The result of casting a pointer to an integer,
or vice versa:
The bit pattern does not change for pointers and values of type int, long, unsigned int and unsigned long.
(6.3.6, 7.1.1) The type of integer required to hold
the difference between two pointers to members of the same array, ptrdiff_t:
int as defined in stddef.h.
long for -Xarch=v9