crypto: disable ASan for sha256_sse4 with Clang

This can alsofail to compile when optimisations are being used, see:
https://github.com/bitcoin/bitcoin/issues/31913.
So disable just ASan for this function under any optimisation level.
This commit is contained in:
fanquake 2025-05-07 11:15:59 +01:00
parent 6d5edfcc58
commit 4e8ab5e00f
No known key found for this signature in database
GPG Key ID: 2EEB9F5CC09526C1

View File

@ -13,13 +13,17 @@
namespace sha256_sse4
{
void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks)
#if defined(__clang__) && !defined(__OPTIMIZE__)
#if defined(__clang__)
/*
clang is unable to compile this with -O0 and -fsanitize=address.
See upstream bug: https://github.com/llvm/llvm-project/issues/92182
See upstream bug: https://github.com/llvm/llvm-project/issues/92182.
This also fails to compile with -O2, -fcf-protection & -fsanitize=address.
See https://github.com/bitcoin/bitcoin/issues/31913.
*/
#if __has_feature(address_sanitizer)
__attribute__((no_sanitize("address")))
#endif
#endif
{
static const uint32_t K256 alignas(16) [] = {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,