lib/tsan/interception/interception.h | 216 +++-- lib/tsan/interception/interception_linux.cpp | 16 +- lib/tsan/interception/interception_linux.h | 18 +- lib/tsan/interception/interception_mac.cpp | 4 +- lib/tsan/interception/interception_mac.h | 4 +- lib/tsan/interception/interception_type_test.cpp | 6 +- lib/tsan/interception/interception_win.cpp | 118 ++- lib/tsan/interception/interception_win.h | 5 + lib/tsan/sanitizer_common/sancov_flags.inc | 2 +- lib/tsan/sanitizer_common/sanitizer_addrhashmap.h | 46 +- lib/tsan/sanitizer_common/sanitizer_allocator.cpp | 89 +- lib/tsan/sanitizer_common/sanitizer_allocator.h | 18 +- lib/tsan/sanitizer_common/sanitizer_allocator_bytemap.h | 107 --- lib/tsan/sanitizer_common/sanitizer_allocator_combined.h | 18 +- lib/tsan/sanitizer_common/sanitizer_allocator_dlsym.h | 79 ++ lib/tsan/sanitizer_common/sanitizer_allocator_interface.h | 4 + lib/tsan/sanitizer_common/sanitizer_allocator_internal.h | 3 +- lib/tsan/sanitizer_common/sanitizer_allocator_primary32.h | 23 +- lib/tsan/sanitizer_common/sanitizer_allocator_primary64.h | 29 +- lib/tsan/sanitizer_common/sanitizer_allocator_report.cpp | 3 +- lib/tsan/sanitizer_common/sanitizer_allocator_secondary.h | 18 +- lib/tsan/sanitizer_common/sanitizer_allocator_size_class_map.h | 8 +- lib/tsan/sanitizer_common/sanitizer_allocator_stats.h | 27 +- lib/tsan/sanitizer_common/sanitizer_array_ref.h | 123 +++ lib/tsan/sanitizer_common/sanitizer_asm.h | 57 +- lib/tsan/sanitizer_common/sanitizer_atomic_clang.h | 17 +- lib/tsan/sanitizer_common/sanitizer_atomic_clang_mips.h | 2 +- lib/tsan/sanitizer_common/sanitizer_chained_origin_depot.cpp | 148 +++ lib/tsan/sanitizer_common/sanitizer_chained_origin_depot.h | 46 + lib/tsan/sanitizer_common/sanitizer_common.cpp | 78 +- lib/tsan/sanitizer_common/sanitizer_common.h | 150 +-- lib/tsan/sanitizer_common/sanitizer_common_interceptors.inc | 1614 +++++++++++++++++--------------- lib/tsan/sanitizer_common/sanitizer_common_interceptors_format.inc | 26 +- lib/tsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc | 10 +- lib/tsan/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc | 244 +++++ lib/tsan/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc | 4 +- lib/tsan/sanitizer_common/sanitizer_common_interface.inc | 10 + lib/tsan/sanitizer_common/sanitizer_common_interface_posix.inc | 2 + lib/tsan/sanitizer_common/sanitizer_common_libcdep.cpp | 99 +- lib/tsan/sanitizer_common/sanitizer_common_nolibc.cpp | 3 +- lib/tsan/sanitizer_common/sanitizer_common_syscalls.inc | 1579 ++++++++++++++++++------------- lib/tsan/sanitizer_common/sanitizer_coverage_interface.inc | 10 + lib/tsan/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp | 20 + lib/tsan/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp | 26 + lib/tsan/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp | 23 + lib/tsan/sanitizer_common/sanitizer_deadlock_detector.h | 2 +- lib/tsan/sanitizer_common/sanitizer_dense_map.h | 705 ++++++++++++++ lib/tsan/sanitizer_common/sanitizer_dense_map_info.h | 282 ++++++ lib/tsan/sanitizer_common/sanitizer_errno.h | 2 +- lib/tsan/sanitizer_common/sanitizer_errno_codes.h | 1 + lib/tsan/sanitizer_common/sanitizer_file.cpp | 20 + lib/tsan/sanitizer_common/sanitizer_file.h | 5 +- lib/tsan/sanitizer_common/sanitizer_flag_parser.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_flag_parser.h | 4 +- lib/tsan/sanitizer_common/sanitizer_flags.inc | 20 +- lib/tsan/sanitizer_common/sanitizer_flat_map.h | 162 ++++ lib/tsan/sanitizer_common/sanitizer_fuchsia.cpp | 116 +-- lib/tsan/sanitizer_common/sanitizer_hash.h | 24 + lib/tsan/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc | 4 +- lib/tsan/sanitizer_common/sanitizer_interface_internal.h | 211 +++-- lib/tsan/sanitizer_common/sanitizer_internal_defs.h | 91 +- lib/tsan/sanitizer_common/sanitizer_leb128.h | 87 ++ lib/tsan/sanitizer_common/sanitizer_libc.cpp | 27 +- lib/tsan/sanitizer_common/sanitizer_libc.h | 29 +- lib/tsan/sanitizer_common/sanitizer_libignore.cpp | 12 +- lib/tsan/sanitizer_common/sanitizer_libignore.h | 2 +- lib/tsan/sanitizer_common/sanitizer_linux.cpp | 510 ++++++---- lib/tsan/sanitizer_common/sanitizer_linux.h | 29 +- lib/tsan/sanitizer_common/sanitizer_linux_libcdep.cpp | 139 ++- lib/tsan/sanitizer_common/sanitizer_linux_s390.cpp | 14 +- lib/tsan/sanitizer_common/sanitizer_local_address_space_view.h | 2 +- lib/tsan/sanitizer_common/sanitizer_lzw.h | 159 ++++ lib/tsan/sanitizer_common/sanitizer_mac.cpp | 439 ++++----- lib/tsan/sanitizer_common/sanitizer_mac.h | 21 +- lib/tsan/sanitizer_common/sanitizer_mac_libcdep.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_mallinfo.h | 38 + lib/tsan/sanitizer_common/sanitizer_malloc_mac.inc | 22 +- lib/tsan/sanitizer_common/sanitizer_mutex.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_mutex.h | 281 +++--- lib/tsan/sanitizer_common/sanitizer_openbsd.cpp | 0 lib/tsan/sanitizer_common/sanitizer_persistent_allocator.cpp | 18 - lib/tsan/sanitizer_common/sanitizer_persistent_allocator.h | 71 -- lib/tsan/sanitizer_common/sanitizer_platform.h | 400 ++++---- lib/tsan/sanitizer_common/sanitizer_platform_interceptors.h | 87 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.cpp | 40 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.h | 238 +++-- lib/tsan/sanitizer_common/sanitizer_platform_limits_linux.cpp | 63 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_netbsd.cpp | 5 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_netbsd.h | 5 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_posix.cpp | 154 ++- lib/tsan/sanitizer_common/sanitizer_platform_limits_posix.h | 151 ++- lib/tsan/sanitizer_common/sanitizer_platform_limits_solaris.cpp | 3 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_solaris.h | 3 +- lib/tsan/sanitizer_common/sanitizer_posix.cpp | 30 +- lib/tsan/sanitizer_common/sanitizer_posix.h | 12 +- lib/tsan/sanitizer_common/sanitizer_posix_libcdep.cpp | 10 +- lib/tsan/sanitizer_common/sanitizer_printf.cpp | 37 +- lib/tsan/sanitizer_common/sanitizer_procmaps.h | 42 +- lib/tsan/sanitizer_common/sanitizer_procmaps_bsd.cpp | 16 + lib/tsan/sanitizer_common/sanitizer_procmaps_common.cpp | 28 +- lib/tsan/sanitizer_common/sanitizer_procmaps_mac.cpp | 108 ++- lib/tsan/sanitizer_common/sanitizer_procmaps_solaris.cpp | 50 +- lib/tsan/sanitizer_common/sanitizer_quarantine.h | 29 +- lib/tsan/sanitizer_common/sanitizer_range.cpp | 62 ++ lib/tsan/sanitizer_common/sanitizer_range.h | 40 + lib/tsan/sanitizer_common/sanitizer_redefine_builtins.h | 52 + lib/tsan/sanitizer_common/sanitizer_ring_buffer.h | 13 +- lib/tsan/sanitizer_common/sanitizer_signal_interceptors.inc | 15 +- lib/tsan/sanitizer_common/sanitizer_solaris.cpp | 22 - lib/tsan/sanitizer_common/sanitizer_solaris.h | 56 ++ lib/tsan/sanitizer_common/sanitizer_stack_store.cpp | 379 ++++++++ lib/tsan/sanitizer_common/sanitizer_stack_store.h | 121 +++ lib/tsan/sanitizer_common/sanitizer_stackdepot.cpp | 255 +++-- lib/tsan/sanitizer_common/sanitizer_stackdepot.h | 39 +- lib/tsan/sanitizer_common/sanitizer_stackdepotbase.h | 173 ++-- lib/tsan/sanitizer_common/sanitizer_stacktrace.cpp | 16 +- lib/tsan/sanitizer_common/sanitizer_stacktrace.h | 19 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_libcdep.cpp | 15 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.cpp | 87 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.h | 9 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_sparc.cpp | 8 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_fuchsia.h | 20 + lib/tsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp | 14 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp | 19 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp | 2 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_win.cpp | 175 ++++ lib/tsan/sanitizer_common/sanitizer_suppressions.cpp | 1 + lib/tsan/sanitizer_common/sanitizer_symbolizer.cpp | 20 +- lib/tsan/sanitizer_common/sanitizer_symbolizer.h | 13 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_internal.h | 17 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp | 91 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_mac.cpp | 81 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_mac.h | 5 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_markup.cpp | 6 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp | 133 +-- lib/tsan/sanitizer_common/sanitizer_symbolizer_report.cpp | 17 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_win.cpp | 18 +- lib/tsan/sanitizer_common/sanitizer_syscall_generic.inc | 5 +- lib/tsan/sanitizer_common/sanitizer_syscalls_netbsd.inc | 4 +- lib/tsan/sanitizer_common/sanitizer_thread_arg_retval.cpp | 94 ++ lib/tsan/sanitizer_common/sanitizer_thread_arg_retval.h | 116 +++ lib/tsan/sanitizer_common/sanitizer_thread_registry.cpp | 80 +- lib/tsan/sanitizer_common/sanitizer_thread_registry.h | 20 +- lib/tsan/sanitizer_common/sanitizer_thread_safety.h | 45 +- lib/tsan/sanitizer_common/sanitizer_tls_get_addr.cpp | 53 +- lib/tsan/sanitizer_common/sanitizer_tls_get_addr.h | 26 +- lib/tsan/sanitizer_common/sanitizer_type_traits.h | 79 ++ lib/tsan/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp | 8 +- lib/tsan/sanitizer_common/sanitizer_unwind_win.cpp | 27 +- lib/tsan/sanitizer_common/sanitizer_vector.h | 4 +- lib/tsan/sanitizer_common/sanitizer_win.cpp | 98 +- lib/tsan/sanitizer_common/sanitizer_win_dll_thunk.cpp | 101 ++ lib/tsan/sanitizer_common/sanitizer_win_dll_thunk.h | 2 +- lib/tsan/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp | 26 + lib/tsan/sanitizer_common/sanitizer_win_weak_interception.cpp | 94 ++ lib/tsan/tsan_clock.cpp | 625 ------------- lib/tsan/tsan_clock.h | 293 ------ lib/tsan/tsan_debugging.cpp | 12 +- lib/tsan/tsan_defs.h | 100 +- lib/tsan/tsan_dense_alloc.h | 134 ++- lib/tsan/tsan_dispatch_defs.h | 73 ++ lib/tsan/tsan_external.cpp | 40 +- lib/tsan/tsan_fd.cpp | 113 ++- lib/tsan/tsan_fd.h | 3 +- lib/tsan/tsan_flags.cpp | 19 +- lib/tsan/tsan_flags.inc | 25 +- lib/tsan/tsan_ignoreset.cpp | 12 +- lib/tsan/tsan_ignoreset.h | 13 +- lib/tsan/tsan_ilist.h | 189 ++++ lib/tsan/tsan_interceptors.h | 110 ++- lib/tsan/tsan_interceptors_mac.cpp | 11 +- lib/tsan/tsan_interceptors_memintrinsics.cpp | 43 + lib/tsan/tsan_interceptors_posix.cpp | 1056 ++++++++++++--------- lib/tsan/tsan_interface.cpp | 99 +- lib/tsan/tsan_interface.h | 22 +- lib/tsan/tsan_interface.inc | 190 ++++ lib/tsan/tsan_interface_ann.cpp | 169 +--- lib/tsan/tsan_interface_atomic.cpp | 336 +++---- lib/tsan/tsan_interface_inl.h | 133 --- lib/tsan/tsan_interface_java.cpp | 294 +++--- lib/tsan/tsan_malloc_mac.cpp | 30 +- lib/tsan/tsan_mman.cpp | 135 ++- lib/tsan/tsan_mman.h | 53 +- lib/tsan/tsan_mutexset.cpp | 48 +- lib/tsan/tsan_mutexset.h | 60 +- lib/tsan/tsan_new_delete.cpp | 199 ++++ lib/tsan/tsan_platform.h | 1409 +++++++++++----------------- lib/tsan/tsan_platform_linux.cpp | 157 ++-- lib/tsan/tsan_platform_mac.cpp | 279 +++--- lib/tsan/tsan_platform_posix.cpp | 51 +- lib/tsan/tsan_platform_windows.cpp | 33 + lib/tsan/tsan_report.cpp | 108 +-- lib/tsan/tsan_report.h | 43 +- lib/tsan/tsan_rtl.cpp | 1350 +++++++++++++------------- lib/tsan/tsan_rtl.h | 805 ++++++++-------- lib/tsan/tsan_rtl_aarch64.S | 37 +- lib/tsan/tsan_rtl_access.cpp | 744 +++++++++++++++ lib/tsan/tsan_rtl_amd64.S | 164 +--- lib/tsan/tsan_rtl_mutex.cpp | 707 +++++++------- lib/tsan/tsan_rtl_proc.cpp | 1 - lib/tsan/tsan_rtl_report.cpp | 678 ++++++++------ lib/tsan/tsan_rtl_thread.cpp | 453 ++++----- lib/tsan/tsan_shadow.h | 193 ++++ lib/tsan/tsan_spinlock_defs_mac.h | 45 + lib/tsan/tsan_stack_trace.cpp | 12 +- lib/tsan/tsan_suppressions.cpp | 5 +- lib/tsan/tsan_symbolize.cpp | 3 +- lib/tsan/tsan_sync.cpp | 132 ++- lib/tsan/tsan_sync.h | 80 +- lib/tsan/tsan_trace.h | 217 ++++- lib/tsan/tsan_update_shadow_word_inl.h | 59 -- lib/tsan/tsan_vector_clock.cpp | 126 +++ lib/tsan/tsan_vector_clock.h | 51 + src/Compilation.zig | 9 +- src/libcxx.zig | 2 + src/libtsan.zig | 99 +- 217 files changed, 15837 insertions(+), 9977 deletions(-)