https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69306
--- Comment #3 from Zdenek Sojka <zsojka at seznam dot cz> --- (In reply to H.J. Lu from comment #1) > typedef unsigned long int uint64_t; > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ It should be long long. Sorry, you are right, originally it was __UINT64_TYPE__, but the macro got expanded. Strange the testcase works at other 32bit architectures.