aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2024-09-16 11:21:08 -0700
committerGitHub <noreply@github.com>2024-09-16 11:21:08 -0700
commit0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac (patch)
tree83c2a2c4d8ff80038f3e2b773abab78f2f993e42 /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
parent8ee685e601617031f50daa3df5e0f1aa38e15108 (diff)
downloadllvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.zip
llvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.tar.gz
llvm-0ea0e3a1b6dcf06674f0b64ecdad1f8e457f1aac.tar.bz2
[sanitizer] Add CHECK that static TLS info is ready (#108684)
There is possibility of static_tls_begin is set and static_tls_end is not yet The test reproduces the case. Stack trace looks like this: * `MsanThread::Init` * `SetThreadStackAndTls` * `GetThreadStackAndTls` * `GetThreadStackTopAndBottom` * `pthread_getattr_np` * `realloc` * `__sanitizer_malloc_hook` * TLS access * `___interceptor___tls_get_addr` * `DTLS_on_tls_get_addr` The issue is that `SetThreadStackAndTls` implementation stores `tls_begin` before `GetThreadStackTopAndBottom`, and `tls_end` after. So we have partially initialized state in `DTLS_on_tls_get_addr`.
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions