CMakeLists.txt | 1 + lib/libunwind/src/gcc_personality_v0.c | 234 + lib/tsan/interception/interception.h | 304 + lib/tsan/interception/interception_linux.cpp | 83 + lib/tsan/interception/interception_linux.h | 53 + lib/tsan/interception/interception_mac.cpp | 18 + lib/tsan/interception/interception_mac.h | 27 + lib/tsan/interception/interception_type_test.cpp | 39 + lib/tsan/interception/interception_win.cpp | 1022 ++++ lib/tsan/interception/interception_win.h | 83 + lib/tsan/sanitizer_common/sancov_flags.h | 39 + lib/tsan/sanitizer_common/sancov_flags.inc | 20 + lib/tsan/sanitizer_common/sanitizer_addrhashmap.h | 353 ++ lib/tsan/sanitizer_common/sanitizer_allocator.cpp | 267 + lib/tsan/sanitizer_common/sanitizer_allocator.h | 81 + lib/tsan/sanitizer_common/sanitizer_allocator_bytemap.h | 107 + lib/tsan/sanitizer_common/sanitizer_allocator_checks.cpp | 22 + lib/tsan/sanitizer_common/sanitizer_allocator_checks.h | 76 + lib/tsan/sanitizer_common/sanitizer_allocator_combined.h | 201 + lib/tsan/sanitizer_common/sanitizer_allocator_interface.h | 47 + lib/tsan/sanitizer_common/sanitizer_allocator_internal.h | 55 + lib/tsan/sanitizer_common/sanitizer_allocator_local_cache.h | 264 + lib/tsan/sanitizer_common/sanitizer_allocator_primary32.h | 380 ++ lib/tsan/sanitizer_common/sanitizer_allocator_primary64.h | 863 +++ lib/tsan/sanitizer_common/sanitizer_allocator_report.cpp | 137 + lib/tsan/sanitizer_common/sanitizer_allocator_report.h | 39 + lib/tsan/sanitizer_common/sanitizer_allocator_secondary.h | 326 + lib/tsan/sanitizer_common/sanitizer_allocator_size_class_map.h | 241 + lib/tsan/sanitizer_common/sanitizer_allocator_stats.h | 106 + lib/tsan/sanitizer_common/sanitizer_asm.h | 68 + lib/tsan/sanitizer_common/sanitizer_atomic.h | 86 + lib/tsan/sanitizer_common/sanitizer_atomic_clang.h | 105 + lib/tsan/sanitizer_common/sanitizer_atomic_clang_mips.h | 117 + lib/tsan/sanitizer_common/sanitizer_atomic_clang_other.h | 97 + lib/tsan/sanitizer_common/sanitizer_atomic_clang_x86.h | 113 + lib/tsan/sanitizer_common/sanitizer_atomic_msvc.h | 256 + lib/tsan/sanitizer_common/sanitizer_bitvector.h | 350 ++ lib/tsan/sanitizer_common/sanitizer_bvgraph.h | 164 + lib/tsan/sanitizer_common/sanitizer_common.cpp | 348 ++ lib/tsan/sanitizer_common/sanitizer_common.h | 1002 ++++ lib/tsan/sanitizer_common/sanitizer_common_interceptors.inc | 10175 ++++++++++++++++++++++++++++++++ lib/tsan/sanitizer_common/sanitizer_common_interceptors_format.inc | 562 ++ lib/tsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 609 ++ lib/tsan/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc | 128 + lib/tsan/sanitizer_common/sanitizer_common_interface.inc | 41 + lib/tsan/sanitizer_common/sanitizer_common_interface_posix.inc | 13 + lib/tsan/sanitizer_common/sanitizer_common_libcdep.cpp | 149 + lib/tsan/sanitizer_common/sanitizer_common_nolibc.cpp | 34 + lib/tsan/sanitizer_common/sanitizer_common_syscalls.inc | 2914 +++++++++ lib/tsan/sanitizer_common/sanitizer_coverage_interface.inc | 33 + lib/tsan/sanitizer_common/sanitizer_dbghelp.h | 41 + lib/tsan/sanitizer_common/sanitizer_deadlock_detector.h | 410 ++ lib/tsan/sanitizer_common/sanitizer_deadlock_detector1.cpp | 194 + lib/tsan/sanitizer_common/sanitizer_deadlock_detector2.cpp | 423 ++ lib/tsan/sanitizer_common/sanitizer_deadlock_detector_interface.h | 92 + lib/tsan/sanitizer_common/sanitizer_errno.cpp | 34 + lib/tsan/sanitizer_common/sanitizer_errno.h | 39 + lib/tsan/sanitizer_common/sanitizer_errno_codes.h | 33 + lib/tsan/sanitizer_common/sanitizer_file.cpp | 215 + lib/tsan/sanitizer_common/sanitizer_file.h | 106 + lib/tsan/sanitizer_common/sanitizer_flag_parser.cpp | 191 + lib/tsan/sanitizer_common/sanitizer_flag_parser.h | 204 + lib/tsan/sanitizer_common/sanitizer_flags.cpp | 129 + lib/tsan/sanitizer_common/sanitizer_flags.h | 67 + lib/tsan/sanitizer_common/sanitizer_flags.inc | 250 + lib/tsan/sanitizer_common/sanitizer_freebsd.h | 137 + lib/tsan/sanitizer_common/sanitizer_fuchsia.cpp | 531 ++ lib/tsan/sanitizer_common/sanitizer_fuchsia.h | 36 + lib/tsan/sanitizer_common/sanitizer_getauxval.h | 59 + lib/tsan/sanitizer_common/sanitizer_glibc_version.h | 26 + lib/tsan/sanitizer_common/sanitizer_hash.h | 43 + lib/tsan/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc | 1535 +++++ lib/tsan/sanitizer_common/sanitizer_interface_internal.h | 118 + lib/tsan/sanitizer_common/sanitizer_internal_defs.h | 459 ++ lib/tsan/sanitizer_common/sanitizer_lfstack.h | 72 + lib/tsan/sanitizer_common/sanitizer_libc.cpp | 280 + lib/tsan/sanitizer_common/sanitizer_libc.h | 85 + lib/tsan/sanitizer_common/sanitizer_libignore.cpp | 129 + lib/tsan/sanitizer_common/sanitizer_libignore.h | 115 + lib/tsan/sanitizer_common/sanitizer_linux.cpp | 2269 +++++++ lib/tsan/sanitizer_common/sanitizer_linux.h | 162 + lib/tsan/sanitizer_common/sanitizer_linux_libcdep.cpp | 846 +++ lib/tsan/sanitizer_common/sanitizer_linux_s390.cpp | 222 + lib/tsan/sanitizer_common/sanitizer_list.h | 166 + lib/tsan/sanitizer_common/sanitizer_local_address_space_view.h | 76 + lib/tsan/sanitizer_common/sanitizer_mac.cpp | 1228 ++++ lib/tsan/sanitizer_common/sanitizer_mac.h | 84 + lib/tsan/sanitizer_common/sanitizer_mac_libcdep.cpp | 29 + lib/tsan/sanitizer_common/sanitizer_malloc_mac.inc | 420 ++ lib/tsan/sanitizer_common/sanitizer_mutex.h | 223 + lib/tsan/sanitizer_common/sanitizer_netbsd.cpp | 343 ++ lib/tsan/sanitizer_common/sanitizer_openbsd.cpp | 115 + lib/tsan/sanitizer_common/sanitizer_persistent_allocator.cpp | 18 + lib/tsan/sanitizer_common/sanitizer_persistent_allocator.h | 71 + lib/tsan/sanitizer_common/sanitizer_placement_new.h | 24 + lib/tsan/sanitizer_common/sanitizer_platform.h | 364 ++ lib/tsan/sanitizer_common/sanitizer_platform_interceptors.h | 609 ++ lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.cpp | 531 ++ lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.h | 656 ++ lib/tsan/sanitizer_common/sanitizer_platform_limits_linux.cpp | 108 + lib/tsan/sanitizer_common/sanitizer_platform_limits_netbsd.cpp | 2586 ++++++++ lib/tsan/sanitizer_common/sanitizer_platform_limits_netbsd.h | 2422 ++++++++ lib/tsan/sanitizer_common/sanitizer_platform_limits_openbsd.cpp | 279 + lib/tsan/sanitizer_common/sanitizer_platform_limits_openbsd.h | 382 ++ lib/tsan/sanitizer_common/sanitizer_platform_limits_posix.cpp | 1275 ++++ lib/tsan/sanitizer_common/sanitizer_platform_limits_posix.h | 1453 +++++ lib/tsan/sanitizer_common/sanitizer_platform_limits_solaris.cpp | 366 ++ lib/tsan/sanitizer_common/sanitizer_platform_limits_solaris.h | 495 ++ lib/tsan/sanitizer_common/sanitizer_posix.cpp | 398 ++ lib/tsan/sanitizer_common/sanitizer_posix.h | 125 + lib/tsan/sanitizer_common/sanitizer_posix_libcdep.cpp | 509 ++ lib/tsan/sanitizer_common/sanitizer_printf.cpp | 358 ++ lib/tsan/sanitizer_common/sanitizer_procmaps.h | 100 + lib/tsan/sanitizer_common/sanitizer_procmaps_bsd.cpp | 139 + lib/tsan/sanitizer_common/sanitizer_procmaps_common.cpp | 174 + lib/tsan/sanitizer_common/sanitizer_procmaps_fuchsia.cpp | 80 + lib/tsan/sanitizer_common/sanitizer_procmaps_linux.cpp | 81 + lib/tsan/sanitizer_common/sanitizer_procmaps_mac.cpp | 379 ++ lib/tsan/sanitizer_common/sanitizer_procmaps_solaris.cpp | 67 + lib/tsan/sanitizer_common/sanitizer_ptrauth.h | 21 + lib/tsan/sanitizer_common/sanitizer_quarantine.h | 317 + lib/tsan/sanitizer_common/sanitizer_report_decorator.h | 48 + lib/tsan/sanitizer_common/sanitizer_ring_buffer.h | 161 + lib/tsan/sanitizer_common/sanitizer_rtems.cpp | 283 + lib/tsan/sanitizer_common/sanitizer_rtems.h | 20 + lib/tsan/sanitizer_common/sanitizer_signal_interceptors.inc | 86 + lib/tsan/sanitizer_common/sanitizer_solaris.cpp | 230 + lib/tsan/sanitizer_common/sanitizer_stackdepot.cpp | 149 + lib/tsan/sanitizer_common/sanitizer_stackdepot.h | 71 + lib/tsan/sanitizer_common/sanitizer_stackdepotbase.h | 177 + lib/tsan/sanitizer_common/sanitizer_stacktrace.cpp | 133 + lib/tsan/sanitizer_common/sanitizer_stacktrace.h | 176 + lib/tsan/sanitizer_common/sanitizer_stacktrace_libcdep.cpp | 159 + lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.cpp | 263 + lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.h | 71 + lib/tsan/sanitizer_common/sanitizer_stacktrace_sparc.cpp | 85 + lib/tsan/sanitizer_common/sanitizer_stoptheworld.h | 64 + lib/tsan/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp | 42 + lib/tsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp | 573 ++ lib/tsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp | 182 + lib/tsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp | 364 ++ lib/tsan/sanitizer_common/sanitizer_suppressions.cpp | 181 + lib/tsan/sanitizer_common/sanitizer_suppressions.h | 56 + lib/tsan/sanitizer_common/sanitizer_symbolizer.cpp | 135 + lib/tsan/sanitizer_common/sanitizer_symbolizer.h | 223 + lib/tsan/sanitizer_common/sanitizer_symbolizer_fuchsia.h | 42 + lib/tsan/sanitizer_common/sanitizer_symbolizer_internal.h | 165 + lib/tsan/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp | 209 + lib/tsan/sanitizer_common/sanitizer_symbolizer_libbacktrace.h | 49 + lib/tsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp | 554 ++ lib/tsan/sanitizer_common/sanitizer_symbolizer_mac.cpp | 249 + lib/tsan/sanitizer_common/sanitizer_symbolizer_mac.h | 48 + lib/tsan/sanitizer_common/sanitizer_symbolizer_markup.cpp | 146 + lib/tsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp | 492 ++ lib/tsan/sanitizer_common/sanitizer_symbolizer_report.cpp | 293 + lib/tsan/sanitizer_common/sanitizer_symbolizer_rtems.h | 40 + lib/tsan/sanitizer_common/sanitizer_symbolizer_win.cpp | 318 + lib/tsan/sanitizer_common/sanitizer_syscall_generic.inc | 38 + lib/tsan/sanitizer_common/sanitizer_syscall_linux_aarch64.inc | 137 + lib/tsan/sanitizer_common/sanitizer_syscall_linux_arm.inc | 137 + lib/tsan/sanitizer_common/sanitizer_syscall_linux_x86_64.inc | 90 + lib/tsan/sanitizer_common/sanitizer_syscalls_netbsd.inc | 3837 ++++++++++++ lib/tsan/sanitizer_common/sanitizer_termination.cpp | 94 + lib/tsan/sanitizer_common/sanitizer_thread_registry.cpp | 351 ++ lib/tsan/sanitizer_common/sanitizer_thread_registry.h | 160 + lib/tsan/sanitizer_common/sanitizer_tls_get_addr.cpp | 154 + lib/tsan/sanitizer_common/sanitizer_tls_get_addr.h | 62 + lib/tsan/sanitizer_common/sanitizer_type_traits.cpp | 20 + lib/tsan/sanitizer_common/sanitizer_type_traits.h | 62 + lib/tsan/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp | 180 + lib/tsan/sanitizer_common/sanitizer_unwind_win.cpp | 75 + lib/tsan/sanitizer_common/sanitizer_vector.h | 124 + lib/tsan/sanitizer_common/sanitizer_win.cpp | 1129 ++++ lib/tsan/sanitizer_common/sanitizer_win.h | 25 + lib/tsan/sanitizer_common/sanitizer_win_defs.h | 174 + lib/tsan/sanitizer_common/sanitizer_win_dll_thunk.h | 181 + lib/tsan/sanitizer_common/sanitizer_win_weak_interception.h | 32 + lib/tsan/tsan_clock.cpp | 655 ++ lib/tsan/tsan_clock.h | 283 + lib/tsan/tsan_debugging.cpp | 262 + lib/tsan/tsan_defs.h | 195 + lib/tsan/tsan_dense_alloc.h | 141 + lib/tsan/tsan_external.cpp | 124 + lib/tsan/tsan_fd.cpp | 316 + lib/tsan/tsan_fd.h | 64 + lib/tsan/tsan_flags.cpp | 125 + lib/tsan/tsan_flags.h | 34 + lib/tsan/tsan_flags.inc | 85 + lib/tsan/tsan_ignoreset.cpp | 46 + lib/tsan/tsan_ignoreset.h | 37 + lib/tsan/tsan_interceptors.h | 76 + lib/tsan/tsan_interceptors_mac.cpp | 519 ++ lib/tsan/tsan_interceptors_mach_vm.cpp | 52 + lib/tsan/tsan_interceptors_posix.cpp | 2854 +++++++++ lib/tsan/tsan_interface.cpp | 160 + lib/tsan/tsan_interface.h | 422 ++ lib/tsan/tsan_interface_ann.cpp | 552 ++ lib/tsan/tsan_interface_ann.h | 32 + lib/tsan/tsan_interface_atomic.cpp | 955 +++ lib/tsan/tsan_interface_inl.h | 132 + lib/tsan/tsan_interface_java.cpp | 267 + lib/tsan/tsan_interface_java.h | 99 + lib/tsan/tsan_malloc_mac.cpp | 71 + lib/tsan/tsan_md5.cpp | 250 + lib/tsan/tsan_mman.cpp | 405 ++ lib/tsan/tsan_mman.h | 89 + lib/tsan/tsan_mutex.cpp | 289 + lib/tsan/tsan_mutex.h | 90 + lib/tsan/tsan_mutexset.cpp | 88 + lib/tsan/tsan_mutexset.h | 69 + lib/tsan/tsan_platform.h | 1028 ++++ lib/tsan/tsan_platform_linux.cpp | 517 ++ lib/tsan/tsan_platform_mac.cpp | 324 + lib/tsan/tsan_platform_posix.cpp | 167 + lib/tsan/tsan_ppc_regs.h | 96 + lib/tsan/tsan_preinit.cpp | 26 + lib/tsan/tsan_report.cpp | 486 ++ lib/tsan/tsan_report.h | 135 + lib/tsan/tsan_rtl.cpp | 1127 ++++ lib/tsan/tsan_rtl.h | 893 +++ lib/tsan/tsan_rtl_aarch64.S | 245 + lib/tsan/tsan_rtl_amd64.S | 366 ++ lib/tsan/tsan_rtl_mips64.S | 214 + lib/tsan/tsan_rtl_mutex.cpp | 562 ++ lib/tsan/tsan_rtl_ppc64.S | 288 + lib/tsan/tsan_rtl_proc.cpp | 60 + lib/tsan/tsan_rtl_report.cpp | 754 +++ lib/tsan/tsan_rtl_thread.cpp | 462 ++ lib/tsan/tsan_stack_trace.cpp | 63 + lib/tsan/tsan_stack_trace.h | 42 + lib/tsan/tsan_stat.cpp | 186 + lib/tsan/tsan_stat.h | 191 + lib/tsan/tsan_suppressions.cpp | 161 + lib/tsan/tsan_suppressions.h | 37 + lib/tsan/tsan_symbolize.cpp | 122 + lib/tsan/tsan_symbolize.h | 30 + lib/tsan/tsan_sync.cpp | 296 + lib/tsan/tsan_sync.h | 145 + lib/tsan/tsan_trace.h | 75 + lib/tsan/tsan_update_shadow_word_inl.h | 69 + lib/tsan/ubsan/ubsan_flags.h | 48 + lib/tsan/ubsan/ubsan_flags.inc | 28 + lib/tsan/ubsan/ubsan_init.h | 33 + lib/tsan/ubsan/ubsan_platform.h | 25 + src/Compilation.zig | 110 +- src/glibc.zig | 15 +- src/libcxx.zig | 18 +- src/libtsan.zig | 375 ++ src/libunwind.zig | 12 +- src/link.zig | 3 +- src/link/Coff.zig | 4 +- src/link/Elf.zig | 12 +- src/link/MachO.zig | 4 +- src/link/Wasm.zig | 2 +- src/main.zig | 10 + src/mingw.zig | 9 - src/musl.zig | 7 +- src/stage1.zig | 1 + src/stage1/all_types.hpp | 1 + src/stage1/codegen.cpp | 8 +- src/stage1/stage1.cpp | 1 + src/stage1/stage1.h | 1 + src/target.zig | 8 + src/zig_llvm.cpp | 12 +- src/zig_llvm.h | 2 +- 265 files changed, 82749 insertions(+), 79 deletions(-)