Merge bitcoin/bitcoin#30097: crypto: disable asan for sha256_sse4 with clang and -O0

141df0a28810470e53fdbc6d32d3cb4020fe3ca1 crypto: disable asan for sha256_sse4 with clang and -O0 (Cory Fields)

Pull request description:

  Clang is unable to compile the Transform function for that combination of options.

  Fixes #29801.

ACKs for top commit:
  achow101:
    ACK 141df0a28810470e53fdbc6d32d3cb4020fe3ca1

Tree-SHA512: d74fdac5840ad7524edfde069fb43ae75c31146e90ecc58bbc7912ff57a02b068547431b1766afeed782272c0b93b0b41a286c1cf26ec55ce332d94ce917d810
This commit is contained in:
merge-script 2024-05-16 08:40:34 +08:00 committed by pasta
parent 3070c3e388
commit 3be0d3e5cd
No known key found for this signature in database
GPG Key ID: E2F3D7916E722D38

View File

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