[cfe-users] Problems with hexadecimal constant, _mm_set_epi64x and sign conversion
Jeffrey Walton via cfe-users
cfe-users at lists.llvm.org
Sat Mar 31 20:51:22 PDT 2018
I'm having trouble with Travis during testing. The failed test is
available at https://travis-ci.org/Tarsnap/scrypt/jobs/360781179.
Clang has rejected my attempts to use the constant (no suffix, ULL and LL):
MSG = _mm_add_epi32(MSG0, _mm_set_epi64x(0xE9B5DBA5B5C0FBCF,
0x71374491428A2F98));
MSG = _mm_add_epi32(MSG0, _mm_set_epi64x(0xE9B5DBA5B5C0FBCFULL,
0x71374491428A2F98ULL));
MSG = _mm_add_epi32(MSG0, _mm_set_epi64x(0xE9B5DBA5B5C0FBCFLL,
0x71374491428A2F98LL));
The message the compiler provides is:
crypto_sha256_shani.c:50:44: error: implicit conversion changes
signedness: 'unsigned long' to 'long long' [-Werror,-Wsign-conversion]
The code came from Intel and I doubt it is defective.
How do I trick Clang to accept the hexadecimal value?
Thanks in advance.
More information about the cfe-users
mailing list