From owner-svn-src-all@freebsd.org Sun Apr 16 16:02:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D4CE6D41FD8; Sun, 16 Apr 2017 16:02:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D97D371; Sun, 16 Apr 2017 16:02:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GG2uwM097099; Sun, 16 Apr 2017 16:02:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG2sNJ097075; Sun, 16 Apr 2017 16:02:54 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161602.v3GG2sNJ097075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:02:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: 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... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:02:57 -0000 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= -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 + +#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 + +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 - $ - CFLAGS ${ASAN_CFLAGS} -DASAN_DLL_THUNK - DEFS ${ASAN_COMMON_DEFINITIONS} + OBJECT_LIBS AsanDllThunk + UbsanDllThunk + SancovDllThunk + SanitizerCommonDllThunk + SOURCES $ 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(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: + // + 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 ***