Worker::current is a static thread_local which gets intialized to null, which gets checked for in Scheduler::Fiber::current(). Unfortunately MemorySanitizer does not observe the initialization when Marl is used within a shared library, when the Linux dynamic loader is not instrumented and its TLS initialization is not otherwise intercepted and handled correctly. This change decorates Scheduler::Fiber::current() with __attribute__((no_sanitize_memory)) to suppress instrumenting it with use-of-uninitialized-data checks. Bug: chromium:1211047 Change-Id: I61b584922d9aba5d67991ce916c69102734f2b61 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/54610Reviewed-by:Alexis Hétu <sugoi@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| blockingcall_bench.cpp | Loading commit data... | |
| blockingcall_test.cpp | Loading commit data... | |
| conditionvariable_test.cpp | Loading commit data... | |
| containers_test.cpp | Loading commit data... | |
| dag_test.cpp | Loading commit data... | |
| debug.cpp | Loading commit data... | |
| defer_bench.cpp | Loading commit data... | |
| defer_test.cpp | Loading commit data... | |
| event_bench.cpp | Loading commit data... | |
| event_test.cpp | Loading commit data... | |
| marl_bench.cpp | Loading commit data... | |
| marl_bench.h | Loading commit data... | |
| marl_test.cpp | Loading commit data... | |
| marl_test.h | Loading commit data... | |
| memory.cpp | Loading commit data... | |
| memory_test.cpp | Loading commit data... | |
| non_marl_bench.cpp | Loading commit data... | |
| osfiber.h | Loading commit data... | |
| osfiber_aarch64.c | Loading commit data... | |
| osfiber_arm.c | Loading commit data... | |
| osfiber_asm.h | Loading commit data... | |
| osfiber_asm_aarch64.S | Loading commit data... | |
| osfiber_asm_aarch64.h | Loading commit data... | |
| osfiber_asm_arm.S | Loading commit data... | |
| osfiber_asm_arm.h | Loading commit data... | |
| osfiber_asm_mips64.S | Loading commit data... | |
| osfiber_asm_mips64.h | Loading commit data... | |
| osfiber_asm_ppc64.S | Loading commit data... | |
| osfiber_asm_ppc64.h | Loading commit data... | |
| osfiber_asm_x64.S | Loading commit data... | |
| osfiber_asm_x64.h | Loading commit data... | |
| osfiber_asm_x86.S | Loading commit data... | |
| osfiber_asm_x86.h | Loading commit data... | |
| osfiber_mips64.c | Loading commit data... | |
| osfiber_ppc64.c | Loading commit data... | |
| osfiber_test.cpp | Loading commit data... | |
| osfiber_ucontext.h | Loading commit data... | |
| osfiber_windows.h | Loading commit data... | |
| osfiber_x64.c | Loading commit data... | |
| osfiber_x86.c | Loading commit data... | |
| parallelize_test.cpp | Loading commit data... | |
| pool_test.cpp | Loading commit data... | |
| scheduler.cpp | Loading commit data... | |
| scheduler_bench.cpp | Loading commit data... | |
| scheduler_test.cpp | Loading commit data... | |
| thread.cpp | Loading commit data... | |
| thread_test.cpp | Loading commit data... | |
| ticket_bench.cpp | Loading commit data... | |
| ticket_test.cpp | Loading commit data... | |
| trace.cpp | Loading commit data... | |
| waitgroup_bench.cpp | Loading commit data... | |
| waitgroup_test.cpp | Loading commit data... |