This avoids the unportable 5 pointer hack, but requires enumerating in the callback.
In case of sizeof(void*) == 8 and sizeof(int) == 4 on big-endian hosts the tests failed as the actual integer value got cut off.