https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103466
Bug ID: 103466 Summary: SIGILL due to use of vmovdqu, thread sanitizer build Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: pjfloyd at wanadoo dot fr CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- With GCC built from source commit 5e5f880d0452ef2cffb94f4a686d56833c9f4215 (HEAD -> master, origin/trunk, origin/master, origin/HEAD) My small testcase: #include <iostream> #include <thread> void f() { std::cout << "Hello from f\n"; } void g() { std::cout << "Hello from g\n"; } int main() { std::thread t1(f); std::thread t2(g); t1.join(); t2.join(); } (But it looks like this is happening before main, so the actual testcase may not matter). Under GDB: Program received signal SIGILL, Illegal instruction. __tsan_trace_switch_thunk () at ../../../../libsanitizer/tsan/tsan_rtl_amd64.S:48 48 vmovdqu %xmm0, 0x0(%rsp) (gdb) bt #0 __tsan_trace_switch_thunk () at ../../../../libsanitizer/tsan/tsan_rtl_amd64.S:48 #1 0x00007ffff4dfc62c in __tsan::TraceAddEvent (addr=0, typ=__tsan::EventTypeMop, fs=..., thr=<optimized out>) at ../../../../libsanitizer/tsan/tsan_rtl.h:625 #2 __tsan::ThreadContext::OnStarted (this=0x7ffff2303e80, arg=<optimized out>) at ../../../../libsanitizer/tsan/tsan_rtl_thread.cpp:209 #3 0x00007ffff4e1c735 in __sanitizer::ThreadContextBase::SetStarted (arg=0x7fffffffccd0, _thread_type=__sanitizer::ThreadType::Regular, _os_id=19197, this=<optimized out>) at ../../../../libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp:78 #4 __sanitizer::ThreadRegistry::StartThread (this=0x7ffff5889230 <__tsan::ctx_placeholder+10485872>, tid=tid@entry=0, os_id=os_id@entry=19197, thread_type=thread_type@entry=__sanitizer::ThreadType::Regular, arg=arg@entry=0x7fffffffccd0) at ../../../../libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp:309 #5 0x00007ffff4dfcdbc in __tsan::ThreadStart (thr=thr@entry=0x7ffff7edb780, tid=tid@entry=0, os_id=19197, thread_type=thread_type@entry=__sanitizer::ThreadType::Regular) at ../../../../libsanitizer/tsan/tsan_rtl_thread.cpp:165 #6 0x00007ffff4de22e0 in __tsan::Initialize (thr=0x7ffff7edb780) at ../../../../libsanitizer/tsan/tsan_rtl.cpp:412 #7 0x00007ffff7deaae3 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2 #8 0x00007ffff7ddc15a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 OS: Red Hat Enterprise Linux Workstation release 7.6 (Maipo) CPU: Model name: Intel(R) Xeon(R) CPU X5667 @ 3.07GHz Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid dtherm ida arat spec_ctrl intel_stibp flush_l1d 1st line of git blame 86289a4ff476 (H.J. Lu 2021-11-12 22:23:45 -0800 48) vmovdqu %xmm0, 0x0(%rsp)