svn commit: r317021 - in vendor/compiler-rt/dist: . cmake cmake/Modules include include/sanitizer include/xray lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/arm lib/builtins/x8...

Dimitry Andric dim at FreeBSD.org
Sun Apr 16 16:02:57 UTC 2017


Author: dim
Date: Sun Apr 16 16:02:53 2017
New Revision: 317021
URL: https://svnweb.freebsd.org/changeset/base/317021

Log:
  Vendor import of compiler-rt trunk r300422:
  https://llvm.org/svn/llvm-project/compiler-rt/trunk@300422

Added:
  vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h   (contents, props changed)
  vendor/compiler-rt/dist/include/xray/xray_log_interface.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/asan/asan_interface.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/asan/asan_win_weak_interception.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/builtins/arm/addsf3.S   (contents, props changed)
  vendor/compiler-rt/dist/lib/builtins/ffssi2.c   (contents, props changed)
  vendor/compiler-rt/dist/lib/builtins/os_version_check.c   (contents, props changed)
  vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/lsan/lsan_linux.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/lsan/lsan_malloc_mac.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/lsan/weak_symbols.txt   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interface.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interface_posix.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_sections.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_defs.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh   (contents, props changed)
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_quarantine_test.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_external.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/ubsan/ubsan_interface.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dll_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/ubsan/ubsan_win_weak_interception.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/tests/unit/fdr_logging_test.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_fdr_log_records.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_fdr_logging_impl.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_log_interface.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_mips.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_mips64.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_powerpc64.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_powerpc64.inc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips.S   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips64.S   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_powerpc64.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_powerpc64_asm.S   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_tsc.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_utils.cc   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_utils.h   (contents, props changed)
  vendor/compiler-rt/dist/lib/xray/xray_x86_64.inc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Darwin/scribble.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/thread_local_quarantine_pthread_join.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/asan-sigbus.cpp   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/fread_fwrite.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_heap_allocation.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/interface_symbols_windows.c   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/non-executable-pc.cpp   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/realloc.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/asan/TestCases/strtok.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/CMakeLists.txt   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/TestCases/
  vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/
  vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/lit.local.cfg
  vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/os_version_check_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/os_version_check_test_no_core_foundation.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_idivmod_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_uidivmod_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_uldivmod_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/Unit/ffssi2_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/Unit/lit.cfg
  vendor/compiler-rt/dist/test/builtins/Unit/lit.site.cfg.in   (contents, props changed)
  vendor/compiler-rt/dist/test/builtins/lit.cfg
  vendor/compiler-rt/dist/test/builtins/lit.site.cfg.in   (contents, props changed)
  vendor/compiler-rt/dist/test/cfi/bad-split.cpp   (contents, props changed)
  vendor/compiler-rt/dist/test/interception/TestCases/
  vendor/compiler-rt/dist/test/interception/TestCases/Windows/
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/disabler_in_tsd_destructor.c   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/fork.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/fork_threaded.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/guard-page.c   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/lit.local.cfg
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_dynamic.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_static.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_static.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/msan/alloca.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/msan/fread_fwrite.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/msan/getloadavg.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/msan/wcsncpy.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/profile/Linux/instrprof-dir.c   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/deepbind.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/iconv_test.c   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/fpe.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/weak_hook_test.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-init.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/symbolize_stack.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/scudo/threads.cpp   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/Darwin/debug_external.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/Darwin/external.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-after-null.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/main_tid.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/workerthreads.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/xpc-cancel.mm
  vendor/compiler-rt/dist/test/tsan/Linux/pie_no_aslr.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/atomic_hle.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/custom_mutex.h   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/custom_mutex0.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/custom_mutex1.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/tsan/custom_mutex2.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/nullability.c   (contents, props changed)
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/arg1-logger.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-mode.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-thread-order.cc   (contents, props changed)
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/pic_test.cc   (contents, props changed)
  vendor/compiler-rt/dist/unittests/lit_unittest_cfg_utils.py   (contents, props changed)
Deleted:
  vendor/compiler-rt/dist/lib/asan/asan_globals_win.h
  vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h
  vendor/compiler-rt/dist/lib/xray/xray_emulate_tsc.h
  vendor/compiler-rt/dist/lib/xray/xray_x86_64.h
  vendor/compiler-rt/dist/test/lsan/TestCases/cleanup_in_tsd_destructor.c
  vendor/compiler-rt/dist/test/lsan/TestCases/disabler_in_tsd_destructor.c
  vendor/compiler-rt/dist/test/lsan/TestCases/fork.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/fork_threaded.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/guard-page.c
  vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_dynamic.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_pthread_specific_static.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_static.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/fpe.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/weak_hook_test.cc
Modified:
  vendor/compiler-rt/dist/CMakeLists.txt
  vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake
  vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake
  vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake
  vendor/compiler-rt/dist/cmake/base-config-ix.cmake
  vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake
  vendor/compiler-rt/dist/cmake/config-ix.cmake
  vendor/compiler-rt/dist/include/CMakeLists.txt
  vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h
  vendor/compiler-rt/dist/include/xray/xray_interface.h
  vendor/compiler-rt/dist/include/xray/xray_records.h
  vendor/compiler-rt/dist/lib/asan/CMakeLists.txt
  vendor/compiler-rt/dist/lib/asan/asan.syms.extra
  vendor/compiler-rt/dist/lib/asan/asan_allocator.cc
  vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc
  vendor/compiler-rt/dist/lib/asan/asan_errors.cc
  vendor/compiler-rt/dist/lib/asan/asan_flags.cc
  vendor/compiler-rt/dist/lib/asan/asan_flags.inc
  vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc
  vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc
  vendor/compiler-rt/dist/lib/asan/asan_interface_internal.h
  vendor/compiler-rt/dist/lib/asan/asan_internal.h
  vendor/compiler-rt/dist/lib/asan/asan_linux.cc
  vendor/compiler-rt/dist/lib/asan/asan_mac.cc
  vendor/compiler-rt/dist/lib/asan/asan_malloc_win.cc
  vendor/compiler-rt/dist/lib/asan/asan_mapping.h
  vendor/compiler-rt/dist/lib/asan/asan_memory_profile.cc
  vendor/compiler-rt/dist/lib/asan/asan_posix.cc
  vendor/compiler-rt/dist/lib/asan/asan_report.cc
  vendor/compiler-rt/dist/lib/asan/asan_report.h
  vendor/compiler-rt/dist/lib/asan/asan_suppressions.cc
  vendor/compiler-rt/dist/lib/asan/asan_thread.cc
  vendor/compiler-rt/dist/lib/asan/asan_win.cc
  vendor/compiler-rt/dist/lib/asan/asan_win_dll_thunk.cc
  vendor/compiler-rt/dist/lib/asan/asan_win_dynamic_runtime_thunk.cc
  vendor/compiler-rt/dist/lib/asan/scripts/asan_symbolize.py
  vendor/compiler-rt/dist/lib/asan/tests/asan_interface_test.cc
  vendor/compiler-rt/dist/lib/asan/tests/asan_internal_interface_test.cc
  vendor/compiler-rt/dist/lib/asan/tests/asan_mac_test_helpers.mm
  vendor/compiler-rt/dist/lib/asan/tests/asan_mem_test.cc
  vendor/compiler-rt/dist/lib/asan/tests/asan_noinst_test.cc
  vendor/compiler-rt/dist/lib/asan/tests/asan_test.cc
  vendor/compiler-rt/dist/lib/asan/tests/asan_test_config.h
  vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt
  vendor/compiler-rt/dist/lib/builtins/README.txt
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmp.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmp.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_dcmp.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_idivmod.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_ldivmod.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memset.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uidivmod.S
  vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uldivmod.S
  vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S
  vendor/compiler-rt/dist/lib/builtins/arm/udivsi3.S
  vendor/compiler-rt/dist/lib/builtins/clear_cache.c
  vendor/compiler-rt/dist/lib/builtins/cpu_model.c
  vendor/compiler-rt/dist/lib/builtins/divtc3.c
  vendor/compiler-rt/dist/lib/builtins/int_lib.h
  vendor/compiler-rt/dist/lib/builtins/x86_64/floatdidf.c
  vendor/compiler-rt/dist/lib/builtins/x86_64/floatdisf.c
  vendor/compiler-rt/dist/lib/cfi/cfi.cc
  vendor/compiler-rt/dist/lib/esan/esan_interceptors.cpp
  vendor/compiler-rt/dist/lib/interception/interception_win.cc
  vendor/compiler-rt/dist/lib/interception/tests/interception_win_test.cc
  vendor/compiler-rt/dist/lib/lsan/CMakeLists.txt
  vendor/compiler-rt/dist/lib/lsan/lsan.cc
  vendor/compiler-rt/dist/lib/lsan/lsan.h
  vendor/compiler-rt/dist/lib/lsan/lsan_allocator.cc
  vendor/compiler-rt/dist/lib/lsan/lsan_allocator.h
  vendor/compiler-rt/dist/lib/lsan/lsan_common.cc
  vendor/compiler-rt/dist/lib/lsan/lsan_common.h
  vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc
  vendor/compiler-rt/dist/lib/lsan/lsan_flags.inc
  vendor/compiler-rt/dist/lib/lsan/lsan_interceptors.cc
  vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc
  vendor/compiler-rt/dist/lib/msan/msan_interceptors.cc
  vendor/compiler-rt/dist/lib/msan/tests/CMakeLists.txt
  vendor/compiler-rt/dist/lib/msan/tests/msan_test.cc
  vendor/compiler-rt/dist/lib/profile/InstrProfData.inc
  vendor/compiler-rt/dist/lib/profile/InstrProfilingFile.c
  vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c
  vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.h
  vendor/compiler-rt/dist/lib/profile/InstrProfilingValue.c
  vendor/compiler-rt/dist/lib/sanitizer_common/CMakeLists.txt
  vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_interface.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_local_cache.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.inc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_interface_internal.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_internal_defs.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_s390.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_list.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_malloc_mac.inc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mutex.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_interceptors.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_printf.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.h
  vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/scripts/sancov.py
  vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
  vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/CMakeLists.txt
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_test.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_list_test.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc
  vendor/compiler-rt/dist/lib/sanitizer_common/weak_symbols.txt
  vendor/compiler-rt/dist/lib/scudo/CMakeLists.txt
  vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp
  vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h
  vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp
  vendor/compiler-rt/dist/lib/scudo/scudo_flags.cpp
  vendor/compiler-rt/dist/lib/scudo/scudo_flags.inc
  vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp
  vendor/compiler-rt/dist/lib/scudo/scudo_utils.h
  vendor/compiler-rt/dist/lib/tsan/CMakeLists.txt
  vendor/compiler-rt/dist/lib/tsan/check_analyze.sh
  vendor/compiler-rt/dist/lib/tsan/go/tsan_go.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan.syms.extra
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_defs.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors_mac.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_ann.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_atomic.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_java.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch_mac.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_mac.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_mutex.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_report.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_thread.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.h
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_suppressions.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.cc
  vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.h
  vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt
  vendor/compiler-rt/dist/lib/ubsan/ubsan_diag.cc
  vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc
  vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.cc
  vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.h
  vendor/compiler-rt/dist/lib/ubsan/ubsan_init.cc
  vendor/compiler-rt/dist/lib/ubsan/ubsan_init.h
  vendor/compiler-rt/dist/lib/xray/CMakeLists.txt
  vendor/compiler-rt/dist/lib/xray/tests/CMakeLists.txt
  vendor/compiler-rt/dist/lib/xray/tests/unit/CMakeLists.txt
  vendor/compiler-rt/dist/lib/xray/tests/unit/buffer_queue_test.cc
  vendor/compiler-rt/dist/lib/xray/xray_AArch64.cc
  vendor/compiler-rt/dist/lib/xray/xray_arm.cc
  vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.cc
  vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.h
  vendor/compiler-rt/dist/lib/xray/xray_flags.cc
  vendor/compiler-rt/dist/lib/xray/xray_flags.h
  vendor/compiler-rt/dist/lib/xray/xray_flags.inc
  vendor/compiler-rt/dist/lib/xray/xray_init.cc
  vendor/compiler-rt/dist/lib/xray/xray_inmemory_log.cc
  vendor/compiler-rt/dist/lib/xray/xray_interface.cc
  vendor/compiler-rt/dist/lib/xray/xray_interface_internal.h
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_AArch64.S
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_arm.S
  vendor/compiler-rt/dist/lib/xray/xray_trampoline_x86_64.S
  vendor/compiler-rt/dist/lib/xray/xray_x86_64.cc
  vendor/compiler-rt/dist/test/CMakeLists.txt
  vendor/compiler-rt/dist/test/asan/CMakeLists.txt
  vendor/compiler-rt/dist/test/asan/TestCases/Darwin/interface_symbols_darwin.c
  vendor/compiler-rt/dist/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-darwin.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-sandbox.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/asan_dlopen_test.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/clang_gcc_abi.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/coverage-missing.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/interface_symbols_linux.c
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/memmem_test.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/print_memory_profile_test.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/release_to_os_test.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/swapcontext_annotation.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/closed-fds.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-maybe-open-file.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-sandboxing.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/deep_call_stack.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error-torture.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/stack-use-after-return.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Posix/start-deactivated.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_host.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memchr.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memcpy.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memset.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_noreturn.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_poison_unpoison.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_stack_use_after_return.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/fuse-lld.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_memcpy.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_strlen.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_array_left_oob.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_array_right_oob.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_use_after_return.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/tls_init.cc
  vendor/compiler-rt/dist/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc
  vendor/compiler-rt/dist/test/asan/TestCases/invalid-pointer-pairs.cc
  vendor/compiler-rt/dist/test/asan/TestCases/stack-buffer-overflow-with-position.cc
  vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-1.c
  vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-2.c
  vendor/compiler-rt/dist/test/asan/TestCases/strcspn-1.c
  vendor/compiler-rt/dist/test/asan/TestCases/strcspn-2.c
  vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-1.c
  vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-2.c
  vendor/compiler-rt/dist/test/asan/TestCases/strspn-1.c
  vendor/compiler-rt/dist/test/asan/TestCases/strspn-2.c
  vendor/compiler-rt/dist/test/asan/TestCases/strstr-1.c
  vendor/compiler-rt/dist/test/asan/TestCases/strstr-2.c
  vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-inlined.cc
  vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope.cc
  vendor/compiler-rt/dist/test/asan/Unit/lit.site.cfg.in
  vendor/compiler-rt/dist/test/asan/lit.cfg
  vendor/compiler-rt/dist/test/builtins/Unit/absvdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/absvsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/absvti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/adddf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/addsf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/addtf3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/addvdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/addvsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/addvti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmple_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmple_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_drsub_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_frsub_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/arm/call_apsr.S
  vendor/compiler-rt/dist/test/builtins/Unit/ashldi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ashlti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ashrdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ashrti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/bswapdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/bswapsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/clear_cache_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/clzdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/clzsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/clzti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/cmpdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/cmpti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/comparedf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/comparesf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/cpu_model_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ctzdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ctzsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ctzti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divdc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divdf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divmodsi4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divsc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divsf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divtc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divtf3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/divxc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/enable_execute_stack_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/eqdf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/eqsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/eqtf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/extebdsfdf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/extenddftf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/extendhfsf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/extendsftf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ffsdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ffsti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixdfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixdfsivfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixdfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixsfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixsfsivfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixsfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixtfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixtfsi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixtfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfsi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfsivfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunssfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunssfsi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunssfsivfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunssfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunstfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunstfsi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunstfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfsi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixxfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/fixxfti_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatdidf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatdisf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatditf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatdixf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatsidfvfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatsisfvfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatsitf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floattidf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floattisf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floattitf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floattixf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatundidf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatundisf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatunditf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatundixf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatunsitf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatunssidfvfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatunssisfvfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatuntidf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatuntisf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatuntitf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/floatuntixf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gcc_personality_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gedf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gesf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/getf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gtdf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gtsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/gttf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ledf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/lesf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/letf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/lshrdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/lshrti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ltdf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ltsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/lttf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/moddi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/modsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/modti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/muldc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/muldf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/muldi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulodi4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulosi4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/muloti4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulsc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulsf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/multc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/multf3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/multi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulvdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulvsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulvti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/mulxc3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/nedf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negdf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negvdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negvsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/negvti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/nesf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/netf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/paritydi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/paritysi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/parityti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/popcountdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/popcountsi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/popcountti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/powidf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/powisf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/powitf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/powixf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/fixtfdi_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/floatditf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/floatunditf_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/qadd_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/qdiv_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/qmul_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ppc/qsub_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subdf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subsf3vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subtf3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subvdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subvsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/subvti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/trampoline_setup_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/truncdfhf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/truncdfsf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/truncdfsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/truncsfhf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/trunctfdf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/trunctfsf2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ucmpdi2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/ucmpti2_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivdi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivmoddi4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivmodsi4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivmodti4_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/udivti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/umoddi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/umodsi3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/umodti3_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/unorddf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/unordsf2vfp_test.c
  vendor/compiler-rt/dist/test/builtins/Unit/unordtf2_test.c
  vendor/compiler-rt/dist/test/cfi/CMakeLists.txt
  vendor/compiler-rt/dist/test/esan/TestCases/workingset-samples.cpp
  vendor/compiler-rt/dist/test/lit.common.cfg
  vendor/compiler-rt/dist/test/lit.common.configured.in
  vendor/compiler-rt/dist/test/lsan/TestCases/disabler.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/do_leak_check_override.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/high_allocator_contention.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/large_allocation_leak.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/leak_check_at_exit.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/link_turned_off.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/pointer_to_self.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/print_suppressions.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/recoverable_leak_check.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/register_root_region.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/stale_stack_leak.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_default.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_file.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/swapcontext.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_after_return.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_initialized.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_uninitialized.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_poisoned_asan.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_registers.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks_threaded.cc
  vendor/compiler-rt/dist/test/lsan/TestCases/use_unaligned.cc
  vendor/compiler-rt/dist/test/lsan/lit.common.cfg
  vendor/compiler-rt/dist/test/msan/Linux/sendmsg.cc
  vendor/compiler-rt/dist/test/msan/ioctl.cc
  vendor/compiler-rt/dist/test/msan/ioctl_custom.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/corelimit.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc
  vendor/compiler-rt/dist/test/sanitizer_common/TestCases/symbolize_pc.cc
  vendor/compiler-rt/dist/test/sanitizer_common/lit.common.cfg
  vendor/compiler-rt/dist/test/sanitizer_common/print_address.h
  vendor/compiler-rt/dist/test/scudo/alignment.cpp
  vendor/compiler-rt/dist/test/scudo/double-free.cpp
  vendor/compiler-rt/dist/test/scudo/interface.cpp
  vendor/compiler-rt/dist/test/scudo/lit.cfg
  vendor/compiler-rt/dist/test/scudo/malloc.cpp
  vendor/compiler-rt/dist/test/scudo/memalign.cpp
  vendor/compiler-rt/dist/test/scudo/mismatch.cpp
  vendor/compiler-rt/dist/test/scudo/options.cpp
  vendor/compiler-rt/dist/test/scudo/overflow.cpp
  vendor/compiler-rt/dist/test/scudo/preinit.cpp
  vendor/compiler-rt/dist/test/scudo/quarantine.cpp
  vendor/compiler-rt/dist/test/scudo/random_shuffle.cpp
  vendor/compiler-rt/dist/test/scudo/realloc.cpp
  vendor/compiler-rt/dist/test/scudo/secondary.cpp
  vendor/compiler-rt/dist/test/scudo/sized-delete.cpp
  vendor/compiler-rt/dist/test/scudo/sizes.cpp
  vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_main.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_once_deadlock.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-after.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-blocks.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-data.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-fd.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-destructor.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-leave.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-stress.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-cleanup.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-once.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-semaphore-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-serial-queue-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel2.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event2.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration2.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-serial.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-suspend.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/gcd-target-queue-norace.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/ignore-noninstrumented.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/ignored-interceptors.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-call-once.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-future.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-stress.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/lit.local.cfg
  vendor/compiler-rt/dist/test/tsan/Darwin/norace-objcxx-run-time.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/objc-double-property.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/objc-simple.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/xpc-race.mm
  vendor/compiler-rt/dist/test/tsan/Darwin/xpc.mm
  vendor/compiler-rt/dist/test/tsan/Linux/user_malloc.cc
  vendor/compiler-rt/dist/test/tsan/Unit/lit.site.cfg.in
  vendor/compiler-rt/dist/test/tsan/fd_socket_connect_norace.cc
  vendor/compiler-rt/dist/test/tsan/fd_socket_norace.cc
  vendor/compiler-rt/dist/test/tsan/lit.cfg
  vendor/compiler-rt/dist/test/ubsan/TestCases/Integer/summary.cpp
  vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/vla.c
  vendor/compiler-rt/dist/test/xray/CMakeLists.txt
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/argv0-log-file-name.cc
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/fixedsize-logging.cc
  vendor/compiler-rt/dist/test/xray/TestCases/Linux/optional-inmemory-log.cc
  vendor/compiler-rt/dist/test/xray/Unit/lit.site.cfg.in
  vendor/compiler-rt/dist/test/xray/lit.cfg
  vendor/compiler-rt/dist/unittests/lit.common.unit.cfg

Modified: vendor/compiler-rt/dist/CMakeLists.txt
==============================================================================
--- vendor/compiler-rt/dist/CMakeLists.txt	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/CMakeLists.txt	Sun Apr 16 16:02:53 2017	(r317021)
@@ -14,16 +14,6 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR
 endif()
 
 cmake_minimum_required(VERSION 3.4.3)
-# FIXME:
-# The OLD behavior (pre 3.2) for this policy is to not set the value of the 
-# CMAKE_EXE_LINKER_FLAGS variable in the generated test project. The NEW behavior
-# for this policy is to set the value of the CMAKE_EXE_LINKER_FLAGS variable 
-# in the test project to the same as it is in the calling project. The new 
-# behavior cause the compiler_rt test to fail during try_compile: see
-# projects/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:121 such that
-# CAN_TARGET_${arch} is not set properly. This results in COMPILER_RT_SUPPORTED_ARCH
-# not being updated properly leading to poblems.
-cmake_policy(SET CMP0056 OLD)
 
 # Add path for custom compiler-rt modules.
 list(INSERT CMAKE_MODULE_PATH 0
@@ -134,7 +124,7 @@ if(NOT WIN32)
 endif()
 append_list_if(COMPILER_RT_HAS_FNO_BUILTIN_FLAG -fno-builtin SANITIZER_COMMON_CFLAGS)
 append_list_if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions SANITIZER_COMMON_CFLAGS)
-if(NOT COMPILER_RT_DEBUG)
+if(NOT COMPILER_RT_DEBUG AND NOT APPLE)
   append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS)
 endif()
 append_list_if(COMPILER_RT_HAS_FUNWIND_TABLES_FLAG -funwind-tables SANITIZER_COMMON_CFLAGS)
@@ -142,9 +132,16 @@ append_list_if(COMPILER_RT_HAS_FNO_STACK
 append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS)
 append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANITIZER_COMMON_CFLAGS)
 append_list_if(COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -fvisibility-inlines-hidden SANITIZER_COMMON_CFLAGS)
-append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections SANITIZER_COMMON_CFLAGS)
 append_list_if(COMPILER_RT_HAS_FNO_LTO_FLAG -fno-lto SANITIZER_COMMON_CFLAGS)
 
+# The following is a workaround for powerpc64le. This is the only architecture
+# that requires -fno-function-sections to work properly. If lacking, the ASan
+# Linux test function-sections-are-bad.cc fails with the following error:
+# 'undefined symbol: __sanitizer_unaligned_load32'.
+if(DEFINED TARGET_powerpc64le_CFLAGS)
+  append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections TARGET_powerpc64le_CFLAGS)
+endif()
+
 if(MSVC)
   # Replace the /M[DT][d] flags with /MT, and strip any definitions of _DEBUG,
   # which cause definition mismatches at link time.
@@ -246,12 +243,12 @@ else()
 endif()
 
 set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld)
-if(EXISTS ${COMPILER_RT_LLD_PATH}/)
-  set(COMPILER_RT_HAS_LLD_SOURCES TRUE)
+if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD)
+  set(COMPILER_RT_HAS_LLD TRUE)
 else()
-  set(COMPILER_RT_HAS_LLD_SOURCES FALSE)
+  set(COMPILER_RT_HAS_LLD FALSE)
 endif()
-pythonize_bool(COMPILER_RT_HAS_LLD_SOURCES)
+pythonize_bool(COMPILER_RT_HAS_LLD)
 
 add_subdirectory(lib)
 

Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -110,6 +110,13 @@ function(add_compiler_rt_runtime name ty
     "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
     ${ARGN})
   set(libnames)
+  # Until we support this some other way, build compiler-rt runtime without LTO
+  # to allow non-LTO projects to link with it.
+  if(COMPILER_RT_HAS_FNO_LTO_FLAG)
+    set(NO_LTO_FLAGS "-fno-lto")
+  else()
+    set(NO_LTO_FLAGS "")
+  endif()
   if(APPLE)
     foreach(os ${LIB_OS})
       if(type STREQUAL "STATIC")
@@ -121,7 +128,7 @@ function(add_compiler_rt_runtime name ty
       list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS)
       if(LIB_ARCHS_${libname})
         list(APPEND libnames ${libname})
-        set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${LIB_CFLAGS})
+        set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS})
         set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX})
         set(sources_${libname} ${LIB_SOURCES})
         format_object_libs(sources_${libname} ${os} ${LIB_OBJECT_LIBS})
@@ -149,7 +156,7 @@ function(add_compiler_rt_runtime name ty
       set(sources_${libname} ${LIB_SOURCES})
       format_object_libs(sources_${libname} ${arch} ${LIB_OBJECT_LIBS})
       set(libnames ${libnames} ${libname})
-      set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS})
+      set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS})
     endforeach()
   endif()
 
@@ -380,6 +387,7 @@ macro(add_custom_libcxx name prefix)
                -DCMAKE_BUILD_TYPE=Release
                -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
                -DLLVM_PATH=${LLVM_MAIN_SRC_DIR}
+               -DLIBCXX_STANDALONE_BUILD=On
     LOG_BUILD 1
     LOG_CONFIGURE 1
     LOG_INSTALL 1

Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -85,10 +85,12 @@ function(darwin_test_archs os valid_arch
     if(TEST_COMPILE_ONLY)
       try_compile_only(CAN_TARGET_${os}_${arch} -v -arch ${arch} ${DARWIN_${os}_CFLAGS})
     else()
+      set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
+      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${arch_linker_flags}")
       try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_C}
                   COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS}
-                  CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}"
                   OUTPUT_VARIABLE TEST_OUTPUT)
+      set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS})
     endif()
     if(${CAN_TARGET_${os}_${arch}})
       list(APPEND working_archs ${arch})

Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -138,15 +138,16 @@ macro(test_target_arch arch def)
     elseif(TEST_COMPILE_ONLY)
       try_compile_only(CAN_TARGET_${arch} ${TARGET_${arch}_CFLAGS})
     else()
-      set(argstring "${CMAKE_EXE_LINKER_FLAGS} ${argstring}")
       set(FLAG_NO_EXCEPTIONS "")
       if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG)
         set(FLAG_NO_EXCEPTIONS " -fno-exceptions ")
       endif()
+      set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
+      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${argstring}")
       try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE}
                   COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS} ${FLAG_NO_EXCEPTIONS}"
-                  OUTPUT_VARIABLE TARGET_${arch}_OUTPUT
-                  CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${argstring}")
+                  OUTPUT_VARIABLE TARGET_${arch}_OUTPUT)
+      set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS})
     endif()
   endif()
   if(${CAN_TARGET_${arch}})
@@ -225,7 +226,8 @@ macro(load_llvm_config)
     RESULT_VARIABLE HAD_ERROR
     OUTPUT_VARIABLE CONFIG_OUTPUT)
   if(NOT HAD_ERROR)
-    string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH)
+    string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH_FROM_LLVM_CONFIG)
+    file(TO_CMAKE_PATH ${LLVM_CMAKE_PATH_FROM_LLVM_CONFIG} LLVM_CMAKE_PATH)
   else()
     file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE)
     set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")

Modified: vendor/compiler-rt/dist/cmake/base-config-ix.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/base-config-ix.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/base-config-ix.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -172,6 +172,7 @@ macro(test_targets)
       else()
         test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft")
         test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard")
+        test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft")
       endif()
     elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch32")
       test_target_arch(aarch32 "" "-march=armv8-a")

Modified: vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -24,7 +24,7 @@ int foo(int x, int y) {
 
 
 set(ARM64 aarch64)
-set(ARM32 arm armhf)
+set(ARM32 arm armhf armv6m)
 set(X86 i386 i686)
 set(X86_64 x86_64)
 set(MIPS32 mips mipsel)

Modified: vendor/compiler-rt/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/config-ix.cmake	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/cmake/config-ix.cmake	Sun Apr 16 16:02:53 2017	(r317021)
@@ -31,6 +31,7 @@ check_cxx_compiler_flag(-fno-lto        
 check_cxx_compiler_flag("-Werror -msse3" COMPILER_RT_HAS_MSSE3_FLAG)
 check_cxx_compiler_flag("-Werror -msse4.2"   COMPILER_RT_HAS_MSSE4_2_FLAG)
 check_cxx_compiler_flag(--sysroot=.          COMPILER_RT_HAS_SYSROOT_FLAG)
+check_cxx_compiler_flag("-Werror -mcrc"      COMPILER_RT_HAS_MCRC_FLAG)
 
 if(NOT WIN32 AND NOT CYGWIN)
   # MinGW warns if -fvisibility-inlines-hidden is used.
@@ -163,7 +164,12 @@ set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH 
 set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
     ${MIPS32} ${MIPS64} ${PPC64} ${S390X})
 set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
-set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
+
+if(APPLE)
+  set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64})
+else()
+  set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64} ${ARM32})
+endif()
 set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64})
 set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC64}
     ${MIPS32} ${MIPS64} ${S390X})
@@ -173,8 +179,8 @@ set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X8
 set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64})
 set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64})
 set(ALL_ESAN_SUPPORTED_ARCH ${X86_64} ${MIPS64})
-set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32})
-set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64})
+set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64})
+set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} powerpc64le)
 
 if(APPLE)
   include(CompilerRTDarwinUtils)
@@ -199,7 +205,7 @@ if(APPLE)
     list(APPEND DARWIN_EMBEDDED_PLATFORMS ios)
     set(DARWIN_ios_MIN_VER_FLAG -miphoneos-version-min)
     set(DARWIN_ios_SANITIZER_MIN_VER_FLAG
-      ${DARWIN_ios_MIN_VER_FLAG}=7.0)
+      ${DARWIN_ios_MIN_VER_FLAG}=8.0)
   endif()
   if(COMPILER_RT_ENABLE_WATCHOS)
     list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos)
@@ -484,21 +490,21 @@ else()
 endif()
 
 if (PROFILE_SUPPORTED_ARCH AND NOT LLVM_USE_SANITIZER AND
-    OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows")
+    OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android")
   set(COMPILER_RT_HAS_PROFILE TRUE)
 else()
   set(COMPILER_RT_HAS_PROFILE FALSE)
 endif()
 
 if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND
-    OS_NAME MATCHES "Darwin|Linux|FreeBSD")
+    OS_NAME MATCHES "Darwin|Linux|FreeBSD|Android")
   set(COMPILER_RT_HAS_TSAN TRUE)
 else()
   set(COMPILER_RT_HAS_TSAN FALSE)
 endif()
 
 if (COMPILER_RT_HAS_SANITIZER_COMMON AND UBSAN_SUPPORTED_ARCH AND
-    OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows")
+    OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android")
   set(COMPILER_RT_HAS_UBSAN TRUE)
 else()
   set(COMPILER_RT_HAS_UBSAN FALSE)

Modified: vendor/compiler-rt/dist/include/CMakeLists.txt
==============================================================================
--- vendor/compiler-rt/dist/include/CMakeLists.txt	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/include/CMakeLists.txt	Sun Apr 16 16:02:53 2017	(r317021)
@@ -1,17 +1,23 @@
-set(SANITIZER_HEADERS
-  sanitizer/allocator_interface.h
-  sanitizer/asan_interface.h
-  sanitizer/common_interface_defs.h
-  sanitizer/coverage_interface.h
-  sanitizer/dfsan_interface.h
-  sanitizer/esan_interface.h
-  sanitizer/linux_syscall_hooks.h
-  sanitizer/lsan_interface.h
-  sanitizer/msan_interface.h
-  sanitizer/tsan_interface_atomic.h)
-
-set(XRAY_HEADERS
-  xray/xray_interface.h)
+if (COMPILER_RT_BUILD_SANITIZERS)
+  set(SANITIZER_HEADERS
+    sanitizer/allocator_interface.h
+    sanitizer/asan_interface.h
+    sanitizer/common_interface_defs.h
+    sanitizer/coverage_interface.h
+    sanitizer/dfsan_interface.h
+    sanitizer/esan_interface.h
+    sanitizer/linux_syscall_hooks.h
+    sanitizer/lsan_interface.h
+    sanitizer/msan_interface.h
+    sanitizer/tsan_interface.h
+    sanitizer/tsan_interface_atomic.h)
+endif(COMPILER_RT_BUILD_SANITIZERS)
+
+if (COMPILER_RT_BUILD_XRAY)
+  set(XRAY_HEADERS
+    xray/xray_interface.h
+    xray/xray_log_interface.h)
+endif(COMPILER_RT_BUILD_XRAY)
 
 set(COMPILER_RT_HEADERS
   ${SANITIZER_HEADERS}

Modified: vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h
==============================================================================
--- vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h	Sun Apr 16 16:02:53 2017	(r317021)
@@ -158,8 +158,10 @@ extern "C" {
   // Prints stack traces for all live heap allocations ordered by total
   // allocation size until `top_percent` of total live heap is shown.
   // `top_percent` should be between 1 and 100.
+  // At most `max_number_of_contexts` contexts (stack traces) is printed.
   // Experimental feature currently available only with asan on Linux/x86_64.
-  void __sanitizer_print_memory_profile(size_t top_percent);
+  void __sanitizer_print_memory_profile(size_t top_percent,
+                                        size_t max_number_of_contexts);
 
   // Fiber annotation interface.
   // Before switching to a different stack, one must call

Added: vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h	Sun Apr 16 16:02:53 2017	(r317021)
@@ -0,0 +1,121 @@
+//===-- tsan_interface.h ----------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file is a part of ThreadSanitizer (TSan), a race detector.
+//
+// Public interface header for TSan.
+//===----------------------------------------------------------------------===//
+#ifndef SANITIZER_TSAN_INTERFACE_H
+#define SANITIZER_TSAN_INTERFACE_H
+
+#include <sanitizer/common_interface_defs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// __tsan_release establishes a happens-before relation with a preceding
+// __tsan_acquire on the same address.
+void __tsan_acquire(void *addr);
+void __tsan_release(void *addr);
+
+// Annotations for custom mutexes.
+// The annotations allow to get better reports (with sets of locked mutexes),
+// detect more types of bugs (e.g. mutex misuses, races between lock/unlock and
+// destruction and potential deadlocks) and improve precision and performance
+// (by ignoring individual atomic operations in mutex code). However, the
+// downside is that annotated mutex code itself is not checked for correctness.
+
+// Mutex creation flags are passed to __tsan_mutex_create annotation.
+// If mutex has no constructor and __tsan_mutex_create is not called,
+// the flags may be passed to __tsan_mutex_pre_lock/__tsan_mutex_post_lock
+// annotations.
+
+// Mutex has static storage duration and no-op constructor and destructor.
+// This effectively makes tsan ignore destroy annotation.
+const unsigned __tsan_mutex_linker_init      = 1 << 0;
+// Mutex is write reentrant.
+const unsigned __tsan_mutex_write_reentrant  = 1 << 1;
+// Mutex is read reentrant.
+const unsigned __tsan_mutex_read_reentrant   = 1 << 2;
+
+// Mutex operation flags:
+
+// Denotes read lock operation.
+const unsigned __tsan_mutex_read_lock        = 1 << 3;
+// Denotes try lock operation.
+const unsigned __tsan_mutex_try_lock         = 1 << 4;
+// Denotes that a try lock operation has failed to acquire the mutex.
+const unsigned __tsan_mutex_try_lock_failed  = 1 << 5;
+// Denotes that the lock operation acquires multiple recursion levels.
+// Number of levels is passed in recursion parameter.
+// This is useful for annotation of e.g. Java builtin monitors,
+// for which wait operation releases all recursive acquisitions of the mutex.
+const unsigned __tsan_mutex_recursive_lock   = 1 << 6;
+// Denotes that the unlock operation releases all recursion levels.
+// Number of released levels is returned and later must be passed to
+// the corresponding __tsan_mutex_post_lock annotation.
+const unsigned __tsan_mutex_recursive_unlock = 1 << 7;
+
+// Annotate creation of a mutex.
+// Supported flags: mutex creation flags.
+void __tsan_mutex_create(void *addr, unsigned flags);
+
+// Annotate destruction of a mutex.
+// Supported flags: none.
+void __tsan_mutex_destroy(void *addr, unsigned flags);
+
+// Annotate start of lock operation.
+// Supported flags:
+//   - __tsan_mutex_read_lock
+//   - __tsan_mutex_try_lock
+//   - all mutex creation flags
+void __tsan_mutex_pre_lock(void *addr, unsigned flags);
+
+// Annotate end of lock operation.
+// Supported flags:
+//   - __tsan_mutex_read_lock (must match __tsan_mutex_pre_lock)
+//   - __tsan_mutex_try_lock (must match __tsan_mutex_pre_lock)
+//   - __tsan_mutex_try_lock_failed
+//   - __tsan_mutex_recursive_lock
+//   - all mutex creation flags
+void __tsan_mutex_post_lock(void *addr, unsigned flags, int recursion);
+
+// Annotate start of unlock operation.
+// Supported flags:
+//   - __tsan_mutex_read_lock
+//   - __tsan_mutex_recursive_unlock
+int __tsan_mutex_pre_unlock(void *addr, unsigned flags);
+
+// Annotate end of unlock operation.
+// Supported flags:
+//   - __tsan_mutex_read_lock (must match __tsan_mutex_pre_unlock)
+void __tsan_mutex_post_unlock(void *addr, unsigned flags);
+
+// Annotate start/end of notify/signal/broadcast operation.
+// Supported flags: none.
+void __tsan_mutex_pre_signal(void *addr, unsigned flags);
+void __tsan_mutex_post_signal(void *addr, unsigned flags);
+
+// Annotate start/end of a region of code where lock/unlock/signal operation
+// diverts to do something else unrelated to the mutex. This can be used to
+// annotate, for example, calls into cooperative scheduler or contention
+// profiling code.
+// These annotations must be called only from within
+// __tsan_mutex_pre/post_lock, __tsan_mutex_pre/post_unlock,
+// __tsan_mutex_pre/post_signal regions.
+// Supported flags: none.
+void __tsan_mutex_pre_divert(void *addr, unsigned flags);
+void __tsan_mutex_post_divert(void *addr, unsigned flags);
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
+#endif  // SANITIZER_TSAN_INTERFACE_H

Modified: vendor/compiler-rt/dist/include/xray/xray_interface.h
==============================================================================
--- vendor/compiler-rt/dist/include/xray/xray_interface.h	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/include/xray/xray_interface.h	Sun Apr 16 16:02:53 2017	(r317021)
@@ -18,7 +18,13 @@
 
 extern "C" {
 
-enum XRayEntryType { ENTRY = 0, EXIT = 1, TAIL = 2 };
+// Synchronize this with AsmPrinter::SledKind in LLVM.
+enum XRayEntryType {
+  ENTRY = 0,
+  EXIT = 1,
+  TAIL = 2,
+  LOG_ARGS_ENTRY = 3,
+};
 
 // Provide a function to invoke for when instrumentation points are hit. This is
 // a user-visible control surface that overrides the default implementation. The
@@ -60,6 +66,17 @@ extern XRayPatchingStatus __xray_patch()
 // Reverses the effect of __xray_patch(). See XRayPatchingStatus for possible
 // result values.
 extern XRayPatchingStatus __xray_unpatch();
+
+// Use XRay to log the first argument of each (instrumented) function call.
+// When this function exits, all threads will have observed the effect and
+// start logging their subsequent affected function calls (if patched).
+//
+// Returns 1 on success, 0 on error.
+extern int __xray_set_handler_arg1(void (*)(int32_t, XRayEntryType, uint64_t));
+
+// Disables the XRay handler used to log first arguments of function calls.
+// Returns 1 on success, 0 on error.
+extern int __xray_remove_handler_arg1();
 }
 
 #endif

Added: vendor/compiler-rt/dist/include/xray/xray_log_interface.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/compiler-rt/dist/include/xray/xray_log_interface.h	Sun Apr 16 16:02:53 2017	(r317021)
@@ -0,0 +1,60 @@
+//===-- xray_log_interface.h ----------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file is a part of XRay, a function call tracing system.
+//
+// APIs for installing a new logging implementation.
+//===----------------------------------------------------------------------===//
+#ifndef XRAY_XRAY_LOG_INTERFACE_H
+#define XRAY_XRAY_LOG_INTERFACE_H
+
+#include "xray/xray_interface.h"
+#include <stddef.h>
+
+extern "C" {
+
+enum XRayLogInitStatus {
+  XRAY_LOG_UNINITIALIZED = 0,
+  XRAY_LOG_INITIALIZING = 1,
+  XRAY_LOG_INITIALIZED = 2,
+  XRAY_LOG_FINALIZING = 3,
+  XRAY_LOG_FINALIZED = 4,
+};
+
+enum XRayLogFlushStatus {
+  XRAY_LOG_NOT_FLUSHING = 0,
+  XRAY_LOG_FLUSHING = 1,
+  XRAY_LOG_FLUSHED = 2,
+};
+
+struct XRayLogImpl {
+  XRayLogInitStatus (*log_init)(size_t, size_t, void *, size_t);
+  XRayLogInitStatus (*log_finalize)();
+  void (*handle_arg0)(int32_t, XRayEntryType);
+  XRayLogFlushStatus (*flush_log)();
+};
+
+void __xray_set_log_impl(XRayLogImpl Impl);
+XRayLogInitStatus __xray_log_init(size_t BufferSize, size_t MaxBuffers,
+                                  void *Args, size_t ArgsSize);
+XRayLogInitStatus __xray_log_finalize();
+XRayLogFlushStatus __xray_log_flushLog();
+
+} // extern "C"
+
+namespace __xray {
+// Options used by the LLVM XRay FDR implementation.
+struct FDRLoggingOptions {
+  bool ReportErrors = false;
+  int Fd = -1;
+};
+
+} // namespace __xray
+
+#endif // XRAY_XRAY_LOG_INTERFACE_H

Modified: vendor/compiler-rt/dist/include/xray/xray_records.h
==============================================================================
--- vendor/compiler-rt/dist/include/xray/xray_records.h	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/include/xray/xray_records.h	Sun Apr 16 16:02:53 2017	(r317021)
@@ -21,8 +21,17 @@ namespace __xray {
 
 enum FileTypes {
   NAIVE_LOG = 0,
+  FDR_LOG = 1,
 };
 
+// FDR mode use of the union field in the XRayFileHeader.
+struct alignas(16) FdrAdditionalHeaderData {
+  uint64_t ThreadBufferSize;
+};
+
+static_assert(sizeof(FdrAdditionalHeaderData) == 16,
+              "FdrAdditionalHeaderData != 16 bytes");
+
 // This data structure is used to describe the contents of the file. We use this
 // for versioning the supported XRay file formats.
 struct alignas(32) XRayFileHeader {
@@ -40,6 +49,16 @@ struct alignas(32) XRayFileHeader {
 
   // The frequency by which TSC increases per-second.
   alignas(8) uint64_t CycleFrequency = 0;
+
+  union {
+    char FreeForm[16];
+    // The current civiltime timestamp, as retrived from 'clock_gettime'. This
+    // allows readers of the file to determine when the file was created or
+    // written down.
+    struct timespec TS;
+
+    struct FdrAdditionalHeaderData FdrData;
+  };
 } __attribute__((packed));
 
 static_assert(sizeof(XRayFileHeader) == 32, "XRayFileHeader != 32 bytes");

Modified: vendor/compiler-rt/dist/lib/asan/CMakeLists.txt
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/CMakeLists.txt	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/CMakeLists.txt	Sun Apr 16 16:02:53 2017	(r317021)
@@ -36,6 +36,7 @@ set(ASAN_PREINIT_SOURCES
 include_directories(..)
 
 set(ASAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})
+
 append_rtti_flag(OFF ASAN_CFLAGS)
 
 set(ASAN_DYNAMIC_LINK_FLAGS)
@@ -107,6 +108,7 @@ add_compiler_rt_component(asan)
 
 if(APPLE)
   add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
+  add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS)
   add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
   add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
 
@@ -176,6 +178,21 @@ else()
       set(VERSION_SCRIPT_FLAG)
     endif()
 
+    set(ASAN_DYNAMIC_WEAK_INTERCEPTION)
+    if (MSVC)
+      add_compiler_rt_object_libraries(AsanWeakInterception
+        ${SANITIZER_COMMON_SUPPORTED_OS}
+        ARCHS ${arch}
+        SOURCES asan_win_weak_interception.cc
+        CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DYNAMIC
+        DEFS ${ASAN_COMMON_DEFINITIONS})
+      set(ASAN_DYNAMIC_WEAK_INTERCEPTION
+          AsanWeakInterception
+          UbsanWeakInterception
+          SancovWeakInterception
+          SanitizerCommonWeakInterception)
+    endif()
+
     add_compiler_rt_runtime(clang_rt.asan
       SHARED
       ARCHS ${arch}
@@ -187,6 +204,7 @@ else()
               # add_dependencies(clang_rt.asan-dynamic-${arch} clang_rt.asan-dynamic-${arch}-version-list)
               RTAsan_dynamic_version_script_dummy
               RTUbsan_cxx
+              ${ASAN_DYNAMIC_WEAK_INTERCEPTION}
       CFLAGS ${ASAN_DYNAMIC_CFLAGS}
       LINK_FLAGS ${ASAN_DYNAMIC_LINK_FLAGS}
                 ${VERSION_SCRIPT_FLAG}
@@ -205,28 +223,46 @@ else()
     endif()
 
     if (WIN32)
+      add_compiler_rt_object_libraries(AsanDllThunk
+        ${SANITIZER_COMMON_SUPPORTED_OS}
+        ARCHS ${arch}
+        SOURCES asan_globals_win.cc
+                asan_win_dll_thunk.cc
+        CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DLL_THUNK
+        DEFS ${ASAN_COMMON_DEFINITIONS})
+
       add_compiler_rt_runtime(clang_rt.asan_dll_thunk
         STATIC
         ARCHS ${arch}
-        SOURCES asan_win_dll_thunk.cc
-                asan_globals_win.cc
-                $<TARGET_OBJECTS:RTInterception.${arch}>
-        CFLAGS ${ASAN_CFLAGS} -DASAN_DLL_THUNK
-        DEFS ${ASAN_COMMON_DEFINITIONS}
+        OBJECT_LIBS AsanDllThunk
+                    UbsanDllThunk
+                    SancovDllThunk
+                    SanitizerCommonDllThunk
+        SOURCES $<TARGET_OBJECTS:RTInterception.${arch}>
         PARENT_TARGET asan)
 
-      set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DASAN_DYNAMIC_RUNTIME_THUNK")
+      set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DSANITIZER_DYNAMIC_RUNTIME_THUNK")
       if(MSVC)
         list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-Zl")
       elseif(CMAKE_C_COMPILER_ID MATCHES Clang)
         list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-nodefaultlibs")
       endif()
 
+      add_compiler_rt_object_libraries(AsanDynamicRuntimeThunk
+        ${SANITIZER_COMMON_SUPPORTED_OS}
+        ARCHS ${arch}
+        SOURCES asan_globals_win.cc
+                asan_win_dynamic_runtime_thunk.cc
+        CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS}
+        DEFS ${ASAN_COMMON_DEFINITIONS})
+
       add_compiler_rt_runtime(clang_rt.asan_dynamic_runtime_thunk
         STATIC
         ARCHS ${arch}
-        SOURCES asan_win_dynamic_runtime_thunk.cc
-                asan_globals_win.cc
+        OBJECT_LIBS AsanDynamicRuntimeThunk
+                    UbsanDynamicRuntimeThunk
+                    SancovDynamicRuntimeThunk
+                    SanitizerCommonDynamicRuntimeThunk
         CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS}
         DEFS ${ASAN_COMMON_DEFINITIONS}
         PARENT_TARGET asan)

Modified: vendor/compiler-rt/dist/lib/asan/asan.syms.extra
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan.syms.extra	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan.syms.extra	Sun Apr 16 16:02:53 2017	(r317021)
@@ -1,3 +1,4 @@
 __asan_*
 __lsan_*
 __ubsan_*
+__sancov_*

Modified: vendor/compiler-rt/dist/lib/asan/asan_allocator.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_allocator.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_allocator.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -523,6 +523,18 @@ struct Allocator {
     AsanThread *t = GetCurrentThread();
     m->free_tid = t ? t->tid() : 0;
     m->free_context_id = StackDepotPut(*stack);
+
+    Flags &fl = *flags();
+    if (fl.max_free_fill_size > 0) {
+      // We have to skip the chunk header, it contains free_context_id.
+      uptr scribble_start = (uptr)m + kChunkHeaderSize + kChunkHeader2Size;
+      if (m->UsedSize() >= kChunkHeader2Size) {  // Skip Header2 in user area.
+        uptr size_to_fill = m->UsedSize() - kChunkHeader2Size;
+        size_to_fill = Min(size_to_fill, (uptr)fl.max_free_fill_size);
+        REAL(memset)((void *)scribble_start, fl.free_fill_byte, size_to_fill);
+      }
+    }
+
     // Poison the region.
     PoisonShadow(m->Beg(),
                  RoundUpTo(m->UsedSize(), SHADOW_GRANULARITY),
@@ -554,7 +566,17 @@ struct Allocator {
     uptr chunk_beg = p - kChunkHeaderSize;
     AsanChunk *m = reinterpret_cast<AsanChunk *>(chunk_beg);
 
+    // On Windows, uninstrumented DLLs may allocate memory before ASan hooks
+    // malloc. Don't report an invalid free in this case.
+    if (SANITIZER_WINDOWS &&
+        !get_allocator().PointerIsMine(ptr)) {
+      if (!IsSystemHeapAddress(p))
+        ReportFreeNotMalloced(p, stack);
+      return;
+    }
+
     ASAN_FREE_HOOK(ptr);
+
     // Must mark the chunk as quarantined before any changes to its metadata.
     // Do not quarantine given chunk if we failed to set CHUNK_QUARANTINE flag.
     if (!AtomicallySetQuarantineFlagIfAllocated(m, ptr, stack)) return;
@@ -790,8 +812,12 @@ void *asan_realloc(void *p, uptr size, B
   if (!p)
     return instance.Allocate(size, 8, stack, FROM_MALLOC, true);
   if (size == 0) {
-    instance.Deallocate(p, 0, stack, FROM_MALLOC);
-    return nullptr;
+    if (flags()->allocator_frees_and_returns_null_on_realloc_zero) {
+      instance.Deallocate(p, 0, stack, FROM_MALLOC);
+      return nullptr;
+    }
+    // Allocate a size of 1 if we shouldn't free() on Realloc to 0
+    size = 1;
   }
   return instance.Reallocate(p, size, stack);
 }
@@ -958,15 +984,13 @@ uptr __sanitizer_get_allocated_size(cons
 
 #if !SANITIZER_SUPPORTS_WEAK_HOOKS
 // Provide default (no-op) implementation of malloc hooks.
-extern "C" {
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_malloc_hook(void *ptr, uptr size) {
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_malloc_hook,
+                             void *ptr, uptr size) {
   (void)ptr;
   (void)size;
 }
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_free_hook(void *ptr) {
+
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_free_hook, void *ptr) {
   (void)ptr;
 }
-} // extern "C"
 #endif

Modified: vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -252,6 +252,9 @@ static void PrintAccessAndVarIntersectio
     str.append("%c", var.name_pos[i]);
   }
   str.append("'");
+  if (var.line > 0) {
+    str.append(" (line %d)", var.line);
+  }
   if (pos_descr) {
     Decorator d;
     // FIXME: we may want to also print the size of the access here,

Modified: vendor/compiler-rt/dist/lib/asan/asan_errors.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_errors.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_errors.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -58,10 +58,22 @@ static void MaybeDumpRegisters(void *con
   SignalContext::DumpAllRegisters(context);
 }
 
+static void MaybeReportNonExecRegion(uptr pc) {
+#if SANITIZER_FREEBSD || SANITIZER_LINUX
+  MemoryMappingLayout proc_maps(/*cache_enabled*/ true);
+  uptr start, end, protection;
+  while (proc_maps.Next(&start, &end, nullptr, nullptr, 0, &protection)) {
+    if (pc >= start && pc < end &&
+        !(protection & MemoryMappingLayout::kProtectionExecute))
+      Report("Hint: PC is at a non-executable region. Maybe a wild jump?\n");
+  }
+#endif
+}
+
 void ErrorDeadlySignal::Print() {
   Decorator d;
   Printf("%s", d.Warning());
-  const char *description = DescribeSignalOrException(signo);
+  const char *description = __sanitizer::DescribeSignalOrException(signo);
   Report(
       "ERROR: AddressSanitizer: %s on unknown address %p (pc %p bp %p sp %p "
       "T%d)\n",
@@ -77,6 +89,7 @@ void ErrorDeadlySignal::Print() {
     if (addr < GetPageSizeCached())
       Report("Hint: address points to the zero page.\n");
   }
+  MaybeReportNonExecRegion(pc);
   scariness.Print();
   BufferedStackTrace stack;
   GetStackTraceWithPcBpAndContext(&stack, kStackTraceMax, pc, bp, context,

Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_flags.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_flags.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -61,7 +61,7 @@ void InitializeFlags() {
   {
     CommonFlags cf;
     cf.CopyFrom(*common_flags());
-    cf.detect_leaks = CAN_SANITIZE_LEAKS;
+    cf.detect_leaks = cf.detect_leaks && CAN_SANITIZE_LEAKS;
     cf.external_symbolizer_path = GetEnv("ASAN_SYMBOLIZER_PATH");
     cf.malloc_context_size = kDefaultMallocContextSize;
     cf.intercept_tls_get_addr = true;
@@ -95,6 +95,18 @@ void InitializeFlags() {
   RegisterCommonFlags(&ubsan_parser);
 #endif
 
+  if (SANITIZER_MAC) {
+    // Support macOS MallocScribble and MallocPreScribble:
+    // <https://developer.apple.com/library/content/documentation/Performance/
+    // Conceptual/ManagingMemory/Articles/MallocDebug.html>
+    if (GetEnv("MallocScribble")) {
+      f->max_free_fill_size = 0x1000;
+    }
+    if (GetEnv("MallocPreScribble")) {
+      f->malloc_fill_byte = 0xaa;
+    }
+  }
+
   // Override from ASan compile definition.
   const char *asan_compile_def = MaybeUseAsanDefaultOptionsCompileDefinition();
   asan_parser.ParseString(asan_compile_def);
@@ -186,9 +198,6 @@ void InitializeFlags() {
 
 }  // namespace __asan
 
-#if !SANITIZER_SUPPORTS_WEAK_HOOKS
-extern "C" {
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-const char* __asan_default_options() { return ""; }
-}  // extern "C"
-#endif
+SANITIZER_INTERFACE_WEAK_DEF(const char*, __asan_default_options, void) {
+  return "";
+}

Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.inc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_flags.inc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_flags.inc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -63,8 +63,14 @@ ASAN_FLAG(
     int, max_malloc_fill_size, 0x1000,  // By default, fill only the first 4K.
     "ASan allocator flag. max_malloc_fill_size is the maximal amount of "
     "bytes that will be filled with malloc_fill_byte on malloc.")
+ASAN_FLAG(
+    int, max_free_fill_size, 0,
+    "ASan allocator flag. max_free_fill_size is the maximal amount of "
+    "bytes that will be filled with free_fill_byte during free.")
 ASAN_FLAG(int, malloc_fill_byte, 0xbe,
           "Value used to fill the newly allocated memory.")
+ASAN_FLAG(int, free_fill_byte, 0x55,
+          "Value used to fill deallocated memory.")
 ASAN_FLAG(bool, allow_user_poisoning, true,
           "If set, user may manually mark memory regions as poisoned or "
           "unpoisoned.")
@@ -148,3 +154,10 @@ ASAN_FLAG(bool, halt_on_error, true,
           "(WARNING: USE AT YOUR OWN RISK!)")
 ASAN_FLAG(bool, use_odr_indicator, false,
           "Use special ODR indicator symbol for ODR violation detection")
+ASAN_FLAG(bool, allocator_frees_and_returns_null_on_realloc_zero, true,
+          "realloc(p, 0) is equivalent to free(p) by default (Same as the "
+          "POSIX standard). If set to false, realloc(p, 0) will return a "
+          "pointer to an allocated space which can not be used.")
+ASAN_FLAG(bool, verify_asan_link_order, true,
+          "Check position of ASan runtime in library list (needs to be disabled"
+          " when other library has to be preloaded system-wide)")

Modified: vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -29,7 +29,7 @@ static void call_on_globals(void (*hook)
   __asan_global *end = &__asan_globals_end;
   uptr bytediff = (uptr)end - (uptr)start;
   if (bytediff % sizeof(__asan_global) != 0) {
-#ifdef ASAN_DLL_THUNK
+#ifdef SANITIZER_DLL_THUNK
     __debugbreak();
 #else
     CHECK("corrupt asan global array");

Modified: vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc	Sun Apr 16 16:02:37 2017	(r317020)
+++ vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -228,9 +228,11 @@ DECLARE_REAL_AND_INTERCEPTOR(void, free,
 // Strict init-order checking is dlopen-hostile:
 // https://github.com/google/sanitizers/issues/178
 #define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag)                           \
-  if (flags()->strict_init_order) {                                            \
-    StopInitOrderChecking();                                                   \
-  }
+  do {                                                                         \
+    if (flags()->strict_init_order)                                            \
+      StopInitOrderChecking();                                                 \
+    CheckNoDeepBind(filename, flag);                                           \
+  } while (false)
 #define COMMON_INTERCEPTOR_ON_EXIT(ctx) OnExit()
 #define COMMON_INTERCEPTOR_LIBRARY_LOADED(filename, handle) \
   CoverageUpdateMapping()

Added: vendor/compiler-rt/dist/lib/asan/asan_interface.inc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/compiler-rt/dist/lib/asan/asan_interface.inc	Sun Apr 16 16:02:53 2017	(r317021)
@@ -0,0 +1,167 @@
+//===-- asan_interface.inc ------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+// Asan interface list.
+//===----------------------------------------------------------------------===//
+INTERFACE_FUNCTION(__asan_addr_is_in_fake_stack)
+INTERFACE_FUNCTION(__asan_address_is_poisoned)
+INTERFACE_FUNCTION(__asan_after_dynamic_init)
+INTERFACE_FUNCTION(__asan_alloca_poison)
+INTERFACE_FUNCTION(__asan_allocas_unpoison)
+INTERFACE_FUNCTION(__asan_before_dynamic_init)
+INTERFACE_FUNCTION(__asan_describe_address)
+INTERFACE_FUNCTION(__asan_exp_load1)
+INTERFACE_FUNCTION(__asan_exp_load2)
+INTERFACE_FUNCTION(__asan_exp_load4)
+INTERFACE_FUNCTION(__asan_exp_load8)
+INTERFACE_FUNCTION(__asan_exp_load16)
+INTERFACE_FUNCTION(__asan_exp_loadN)
+INTERFACE_FUNCTION(__asan_exp_store1)
+INTERFACE_FUNCTION(__asan_exp_store2)
+INTERFACE_FUNCTION(__asan_exp_store4)
+INTERFACE_FUNCTION(__asan_exp_store8)
+INTERFACE_FUNCTION(__asan_exp_store16)
+INTERFACE_FUNCTION(__asan_exp_storeN)
+INTERFACE_FUNCTION(__asan_get_alloc_stack)
+INTERFACE_FUNCTION(__asan_get_current_fake_stack)
+INTERFACE_FUNCTION(__asan_get_free_stack)
+INTERFACE_FUNCTION(__asan_get_report_access_size)
+INTERFACE_FUNCTION(__asan_get_report_access_type)
+INTERFACE_FUNCTION(__asan_get_report_address)
+INTERFACE_FUNCTION(__asan_get_report_bp)
+INTERFACE_FUNCTION(__asan_get_report_description)
+INTERFACE_FUNCTION(__asan_get_report_pc)
+INTERFACE_FUNCTION(__asan_get_report_sp)
+INTERFACE_FUNCTION(__asan_get_shadow_mapping)
+INTERFACE_FUNCTION(__asan_handle_no_return)
+INTERFACE_FUNCTION(__asan_init)
+INTERFACE_FUNCTION(__asan_load_cxx_array_cookie)
+INTERFACE_FUNCTION(__asan_load1)
+INTERFACE_FUNCTION(__asan_load2)
+INTERFACE_FUNCTION(__asan_load4)
+INTERFACE_FUNCTION(__asan_load8)
+INTERFACE_FUNCTION(__asan_load16)
+INTERFACE_FUNCTION(__asan_loadN)
+INTERFACE_FUNCTION(__asan_load1_noabort)
+INTERFACE_FUNCTION(__asan_load2_noabort)
+INTERFACE_FUNCTION(__asan_load4_noabort)
+INTERFACE_FUNCTION(__asan_load8_noabort)
+INTERFACE_FUNCTION(__asan_load16_noabort)
+INTERFACE_FUNCTION(__asan_loadN_noabort)
+INTERFACE_FUNCTION(__asan_locate_address)
+INTERFACE_FUNCTION(__asan_memcpy)
+INTERFACE_FUNCTION(__asan_memmove)
+INTERFACE_FUNCTION(__asan_memset)
+INTERFACE_FUNCTION(__asan_poison_cxx_array_cookie)
+INTERFACE_FUNCTION(__asan_poison_intra_object_redzone)
+INTERFACE_FUNCTION(__asan_poison_memory_region)
+INTERFACE_FUNCTION(__asan_poison_stack_memory)
+INTERFACE_FUNCTION(__asan_print_accumulated_stats)
+INTERFACE_FUNCTION(__asan_region_is_poisoned)
+INTERFACE_FUNCTION(__asan_register_globals)
+INTERFACE_FUNCTION(__asan_register_image_globals)
+INTERFACE_FUNCTION(__asan_report_error)
+INTERFACE_FUNCTION(__asan_report_exp_load1)
+INTERFACE_FUNCTION(__asan_report_exp_load2)
+INTERFACE_FUNCTION(__asan_report_exp_load4)
+INTERFACE_FUNCTION(__asan_report_exp_load8)
+INTERFACE_FUNCTION(__asan_report_exp_load16)
+INTERFACE_FUNCTION(__asan_report_exp_load_n)
+INTERFACE_FUNCTION(__asan_report_exp_store1)
+INTERFACE_FUNCTION(__asan_report_exp_store2)
+INTERFACE_FUNCTION(__asan_report_exp_store4)
+INTERFACE_FUNCTION(__asan_report_exp_store8)
+INTERFACE_FUNCTION(__asan_report_exp_store16)
+INTERFACE_FUNCTION(__asan_report_exp_store_n)
+INTERFACE_FUNCTION(__asan_report_load1)
+INTERFACE_FUNCTION(__asan_report_load2)
+INTERFACE_FUNCTION(__asan_report_load4)
+INTERFACE_FUNCTION(__asan_report_load8)
+INTERFACE_FUNCTION(__asan_report_load16)
+INTERFACE_FUNCTION(__asan_report_load_n)
+INTERFACE_FUNCTION(__asan_report_load1_noabort)
+INTERFACE_FUNCTION(__asan_report_load2_noabort)
+INTERFACE_FUNCTION(__asan_report_load4_noabort)
+INTERFACE_FUNCTION(__asan_report_load8_noabort)
+INTERFACE_FUNCTION(__asan_report_load16_noabort)
+INTERFACE_FUNCTION(__asan_report_load_n_noabort)
+INTERFACE_FUNCTION(__asan_report_present)
+INTERFACE_FUNCTION(__asan_report_store1)
+INTERFACE_FUNCTION(__asan_report_store2)
+INTERFACE_FUNCTION(__asan_report_store4)
+INTERFACE_FUNCTION(__asan_report_store8)
+INTERFACE_FUNCTION(__asan_report_store16)
+INTERFACE_FUNCTION(__asan_report_store_n)
+INTERFACE_FUNCTION(__asan_report_store1_noabort)
+INTERFACE_FUNCTION(__asan_report_store2_noabort)
+INTERFACE_FUNCTION(__asan_report_store4_noabort)
+INTERFACE_FUNCTION(__asan_report_store8_noabort)
+INTERFACE_FUNCTION(__asan_report_store16_noabort)
+INTERFACE_FUNCTION(__asan_report_store_n_noabort)
+INTERFACE_FUNCTION(__asan_set_death_callback)
+INTERFACE_FUNCTION(__asan_set_error_report_callback)
+INTERFACE_FUNCTION(__asan_set_shadow_00)
+INTERFACE_FUNCTION(__asan_set_shadow_f1)
+INTERFACE_FUNCTION(__asan_set_shadow_f2)
+INTERFACE_FUNCTION(__asan_set_shadow_f3)
+INTERFACE_FUNCTION(__asan_set_shadow_f5)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list