How to clear compile error when using rdrand64_step due to typedef'ing a 64-bit type?

Jeffrey Walton noloader@gmail.com
Fri Aug 19 06:53:00 GMT 2016


>> Forgive my ignorance... 'unsigned long' is 64 bits, which is what that
>> interface needs (if I am reading the docs correctly).
>
> The functions takes a pointer to an unsigned 64-bit type, not
> necessarily unsigned long.

Thanks again Jonathon. I guess this is what I don't quite
understand... From the preprocessor, GCC tells me the UINT64 type is
the following on x86_64:

    #define __UINT64_TYPE__ long unsigned int

If 'long unsigned int' is the 64-bit integer and it meets alignment
and size requirements (as a 'minimum' of sorts), then why can't it be
used where the 64-bit type is required (i..e, the pointer in the call
to _rdrand64_step).

Jeff



More information about the Gcc-help mailing list