summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merging rr302639:release_40Renato Golin2017-05-161-2/+46
| | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r302639 | azanella | 2017-05-10 13:18:25 +0100 (Wed, 10 May 2017) | 11 lines [msan] Fix getmntent{_r} for empty /etc/fstab Some configuration (for instance default docker ubuntu images) uses a default empty and invalid /etc/fstab configuration file. It makes any call to getmntent return NULL and it leads to failures on Msan-aarch64{-with-call}-Test/MemorySanitizer.getmntent{_r}. This patch fixes it by creating a temporary file with some valid entries (although not valid for the system) to use along with setmntent/getmntent. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@303146 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r292729:Hans Wennborg2017-02-151-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r292729 | mgorny | 2017-01-21 13:55:00 -0800 (Sat, 21 Jan 2017) | 17 lines [test] Fix page address logic in clear_cache_test Fix the logic used to calculate page boundaries in clear_cache_test to use correct masks -- e.g. -4096 rather than -4095. The latter gives incorrect result since: -4095 -> 0xfffff001 -4096 -> 0xfffff000 (== ~4095) The issue went unnoticed so far because the array alignment caused the last bit not to be set. However, on 32-bit x86 no such alignment is enforced and the wrong page address caused the test to fail. Furthermore, obtain the page size from the system instead of hardcoding 4096. Differential Revision: https://reviews.llvm.org/D28849 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@295218 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r292257:Hans Wennborg2017-02-152-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r292257 | mgorny | 2017-01-17 13:08:25 -0800 (Tue, 17 Jan 2017) | 17 lines [test] [builtins] Remove obsolete/UB tests in __fixuns?fdi based Remove the failing tests for __fixunssfdi() and __fixunsdfdi() that relied on undefined (and most likely obsolete in terms of compiler-rt implementation behavior). Both tests presumed that 0x1.p+64 would be converted to 0xFFFFFFFFFFFFFFFFLL, that is the largest value in uint64 range. However, the C/C++ standards do not specify the behavior for converting a floating-point value to an integer of smaller range, and in this case both libgcc and compiler-rt implementations return 0 instead. Since the current behavior is correct with regards to standards and there is no good way of expressing 0xFFFFFFFFFFFFFFFFLL in single- or double-precision float, I've removed the failing test altogether. Differential Revision: https://reviews.llvm.org/D28146 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@295217 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r294425:Hans Wennborg2017-02-152-0/+6
| | | | | | | | | | | | | ------------------------------------------------------------------------ r294425 | mgorny | 2017-02-08 00:43:44 -0800 (Wed, 08 Feb 2017) | 3 lines [test] Enable the strace_test only if strace is installed Differential Revision: https://reviews.llvm.org/D29628 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@295216 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r294806:Dimitry Andric2017-02-141-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r294806 | dim | 2017-02-11 00:48:40 +0100 (Sat, 11 Feb 2017) | 15 lines Remove struct_rtentry_sz on FreeBSD Summary: Since struct rtentry is an internal kernel-only structure on FreeBSD, and SIOCADDRT and SIOCDELRT are not supported anyway, stop including socketvar.h and attempting to get at the definition of struct rtentry, and move the line with struct_rtentry_sz to the SANIZER_LINUX block. Reviewers: kcc, kutuzov.viktor.84, emaste Reviewed By: kcc, emaste Subscribers: emaste, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D29832 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@295095 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r294886:Hans Wennborg2017-02-141-1/+1
| | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r294886 | weimingz | 2017-02-11 21:10:25 -0800 (Sat, 11 Feb 2017) | 9 lines [Builtin][ARM] Fix subsf3vfp for non-HF target Reviewers: rengolin, compnerd Reviewed By: compnerd Subscribers: hans, aemerson Differential Revision: https://reviews.llvm.org/D29869 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@295074 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r293536:Hans Wennborg2017-02-026-24/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r293536 | dim | 2017-01-30 11:06:13 -0800 (Mon, 30 Jan 2017) | 27 lines Recommit: Stop intercepting some malloc-related functions on FreeBSD and macOS Summary: In https://bugs.freebsd.org/215125 I was notified that some configure scripts attempt to test for the Linux-specific `mallinfo` and `mallopt` functions by compiling and linking small programs which references the functions, and observing whether that results in errors. FreeBSD and macOS do not have the `mallinfo` and `mallopt` functions, so normally these tests would fail, but when sanitizers are enabled, they incorrectly succeed, because the sanitizers define interceptors for these functions. This also applies to some other malloc-related functions, such as `memalign`, `pvalloc` and `cfree`. Fix this by not intercepting `mallinfo`, `mallopt`, `memalign`, `pvalloc` and `cfree` for FreeBSD and macOS, in all sanitizers. Also delete the non-functional `cfree` wrapper for Windows, to fix the test cases on that platform. Reviewers: emaste, kcc, rnk Subscribers: timurrrr, eugenis, hans, joerg, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D27654 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@293917 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r292517:Hans Wennborg2017-01-272-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r292517 | rserge | 2017-01-19 12:27:11 -0800 (Thu, 19 Jan 2017) | 14 lines [XRay][Arm] Enable back XRay testing on Arm32 and fix the failing tests Summary: Testing of XRay was occasionally disabled on 32-bit Arm targets (someone assumed that XRay was supported on 64-bit targets only). This patch should fix that problem. Also here the instruction&data cache incoherency problem is fixed, because it may be causing a test to fail. This patch is one of a series: see also - https://reviews.llvm.org/D28624 Reviewers: dberris, rengolin Reviewed By: rengolin Subscribers: llvm-commits, aemerson, rengolin, dberris, iid_iunknown Differential Revision: https://reviews.llvm.org/D28623 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@293296 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r293120:Hans Wennborg2017-01-261-1/+1
| | | | | | | | | | | | | ------------------------------------------------------------------------ r293120 | compnerd | 2017-01-25 16:37:55 -0800 (Wed, 25 Jan 2017) | 3 lines builtins: remove an errant ':' Thanks to Dave Lee for pointing this out! ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@293191 91177308-0d34-0410-b5e6-96231b3b80d8
* Creating release_40 branch off revision 291814Hans Wennborg2017-01-120-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@291819 91177308-0d34-0410-b5e6-96231b3b80d8
* ASAN activate/deactive controls thread_local_quarantine_size_kb option.Alex Shlyapnikov2017-01-125-18/+43
| | | | | | | | | | | | | | | Summary: Bypass quarantine altogether when quarantine size is set ot zero. Also, relax atomic load/store of quarantine parameters, the release/acquire semantics is an overkill here. Reviewers: eugenis Subscribers: kubabrecka, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D28586 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291791 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "[sancov] moving sancov rt to sancov/ directory"Mike Aizatsky2017-01-1223-56/+16
| | | | | | | | This reverts commit https://reviews.llvm.org/rL291734 Reason: mac breakage http://lab.llvm.org:8080/green//job/clang-stage1-configure-RA_build/28798/consoleFull#1657087648e9a0fee5-ebcc-4238-a641-c5aa112c323e git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291736 91177308-0d34-0410-b5e6-96231b3b80d8
* [sancov] there are windows tests that check linker symbolsMike Aizatsky2017-01-121-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291735 91177308-0d34-0410-b5e6-96231b3b80d8
* [sancov] moving sancov rt to sancov/ directoryMike Aizatsky2017-01-1223-14/+58
| | | | | | | | Subscribers: kubabrecka, mgorny Differential Revision: https://reviews.llvm.org/D28541 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291734 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "[CMake][compiler-rt] Mark libcxx build for tsan as standalone"Petr Hosek2017-01-121-1/+0
| | | | | | This reverts commit 08dbefb847bb765b387c67dc2dc2ef90a4927312. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291730 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake][compiler-rt] Mark libcxx build for tsan as standalonePetr Hosek2017-01-111-0/+1
| | | | | | | | This is to ensure that the libcxx build is properly configured. Differential Revision: https://reviews.llvm.org/D28579 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291722 91177308-0d34-0410-b5e6-96231b3b80d8
* Repoison the entire ASan chunk if it is not in active use.Alex Shlyapnikov2017-01-112-11/+38
| | | | | | | | | | | | | | | | | | Summary: Repoisoning just the minimal redzones might leave an unpoisoned gap of the size of the actual redzone minus minimal redzone size. After ASan activation the actual redzone might be bigger than the minimal size and ASan allocator assumes that the chunk returned by the common allocator is either entirely poisoned or entirely not poisoned (it's too expensive to check the entire chunk or always poison one). Reviewers: eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D28577 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291714 91177308-0d34-0410-b5e6-96231b3b80d8
* builtins: support building ARM builtins for a HF targetSaleem Abdulrasool2017-01-1135-7/+179
| | | | | | | | | | | | | | The `-target` impacts the CC for the builtins. HF targets (with either floating point ABI) always use AAPCS VFP for the builtins unless they are AEABI builtins, in which case they use AAPCS. Non-HF targets (with either floating point ABI) always use AAPCS for the builtins and AAPCS for the AEABI builtins. This introduces the thunks necessary to switch CC for the floating point operations. This is not currently enabled, and should be dependent on the target being used to build compiler-rt. However, as a stop-gap, a define can be added for ASFLAGS to get the thunks. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291677 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow-up for r291277: Add a return to silence GCC's "control reaches end of ↵Kuba Mracek2017-01-111-0/+1
| | | | | | non-void function" warning. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291639 91177308-0d34-0410-b5e6-96231b3b80d8
* [tsan] Implement a 'ignore_noninstrumented_modules' flag to better suppress ↵Kuba Mracek2017-01-116-45/+153
| | | | | | | | | | | | | | | | false positive races On Darwin, we currently use 'ignore_interceptors_accesses', which is a heavy-weight solution that simply turns of race detection in all interceptors. This was done to suppress false positives coming from system libraries (non-instrumented code), but it also silences a lot of real races. This patch implements an alternative approach that should allow us to enable interceptors and report races coming from them, but only if they are called directly from instrumented code. The patch matches the caller PC in each interceptors. For non-instrumented code, we call ThreadIgnoreBegin. The assumption here is that the number of instrumented modules is low. Most likely there's only one (the instrumented main executable) and all the other modules are system libraries (non-instrumented). Differential Revision: https://reviews.llvm.org/D28264 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291631 91177308-0d34-0410-b5e6-96231b3b80d8
* [PGO] Update the test cases after r291588.Rong Xu2017-01-101-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291594 91177308-0d34-0410-b5e6-96231b3b80d8
* builtins: repair __gtsf2 after SVN r291396Saleem Abdulrasool2017-01-101-0/+2
| | | | | | | The argument adjustment was accidentally removed, resulting in the use of stale register values. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291591 91177308-0d34-0410-b5e6-96231b3b80d8
* [scudo] Separate hardware CRC32 routinesKostya Kortchinsky2017-01-107-34/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: As raised in D28304, enabling SSE 4.2 for the whole Scudo tree leads to the emission of SSE 4.2 instructions everywhere, while the runtime checks only applied to the CRC32 computing function. This patch separates the CRC32 function taking advantage of the hardware into its own file, and only enabled -msse4.2 for that file, if detected to be supported by the compiler. Another consequence of removing SSE4.2 globally is realizing that memcpy were not being optimized, which turned out to be due to the -fno-builtin in SANITIZER_COMMON_CFLAGS. So we now explicitely enable builtins for Scudo. The resulting assembly looks good, with some CALLs are introduced instead of the CRC32 code being inlined. Reviewers: kcc, mgorny, alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28417 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291570 91177308-0d34-0410-b5e6-96231b3b80d8
* [XRay][AArch64] An attempt to fix test patching-unpatching.cc by flushing ↵Serge Rogatch2017-01-102-2/+7
| | | | | | | | | | | | | | the instruction cache after code modification Summary: This patch attempts to fix test patching-unpatching.cc . The new code flushes the instruction cache after modifying the program at runtime. Reviewers: dberris, rengolin, pelikan, rovka Subscribers: rovka, llvm-commits, iid_iunknown, aemerson Differential Revision: https://reviews.llvm.org/D27996 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291568 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Fix sigaction definition on 32-bit sparcMaxim Ostapenko2017-01-101-2/+5
| | | | | | | | | Patch by James Clarke. Differential Revision: https://reviews.llvm.org/D28309 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291561 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r291509, 291510 and 291511Diana Picus2017-01-105-43/+18
| | | | | | | | | | | | | | | | | | | | | | | Revert "ASAN activate/deactive controls thread_local_quarantine_size_kb option." Revert "Bypass quarantine when quarantine size is set ot zero." Revert "ASAN activate/deactive controls thread_local_quarantine_size_kb option." One of these commits broke some of the ARM / AArch64 buildbots: TEST 'AddressSanitizer-aarch64-linux :: TestCases/Posix/start-deactivated.cc' FAILED Command Output (stderr): -- /home/buildslave/buildslave/clang-cmake-aarch64-42vma/llvm/projects/compiler-rt/test/asan/TestCases/Posix/start-deactivated.cc:85:12: error: expected string not found in input // CHECK: WARNING: AddressSanitizer failed to allocate 0xfff{{.*}} bytes ^ <stdin>:1:1: note: scanning from here start-deactivated.cc.tmp: /home/buildslave/buildslave/clang-cmake-aarch64-42vma/llvm/projects/compiler-rt/test/asan/TestCases/Posix/start-deactivated.cc:40: void test_malloc_shadow(char *, size_t, bool): Assertion `(char *)__asan_region_is_poisoned(p - 1, sz + 1) == (expect_redzones ? p - 1 : nullptr)' failed. ^ <stdin>:2:1: note: possible intended match here Error: Aborted (core dumped) ^ git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291560 91177308-0d34-0410-b5e6-96231b3b80d8
* Make cmake link flag naming consistentFrancis Ricci2017-01-1016-90/+90
| | | | | | | | | | | | | | | | | | | Summary: The build system was inconsistent in its naming conventions for link flags. This patch changes all uses of LINKFLAGS to LINK_FLAGS, for consistency with cmake's LINK_FLAGS property. This patch should make it easier to search the source code for uses of link flags, as well as providing the benefit of improved style and consistency. Reviewers: compnerd, beanz Subscribers: kubabrecka, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D28506 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291539 91177308-0d34-0410-b5e6-96231b3b80d8
* ASAN activate/deactive controls thread_local_quarantine_size_kb option.Alex Shlyapnikov2017-01-092-3/+11
| | | | | | | | | | | | Summary: Also, bypass quarantine altogether when quarantine size is set ot zero. Reviewers: eugenis Subscribers: kubabrecka, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D28480 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291511 91177308-0d34-0410-b5e6-96231b3b80d8
* Bypass quarantine when quarantine size is set ot zero.Alex Shlyapnikov2017-01-091-2/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291510 91177308-0d34-0410-b5e6-96231b3b80d8
* ASAN activate/deactive controls thread_local_quarantine_size_kb option.Alex Shlyapnikov2017-01-093-14/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291509 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-config if availableMichal Gorny2017-01-091-2/+12
| | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config. Fallback to local reconstruction if llvm-config does not support this option. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291504 91177308-0d34-0410-b5e6-96231b3b80d8
* [compiler-rt] Include <dlfcn.h> unconditionallyKuba Mracek2017-01-091-3/+0
| | | | | | | | | | This fixes a build issue with musl-libc. Differential Revision: https://reviews.llvm.org/D21656 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291454 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable weak hooks on darwinFrancis Ricci2017-01-0912-3/+58
| | | | | | | | | | | | | | | | Summary: By default, darwin requires a definition for weak interface functions at link time. Adding the '-U' link flag with each weak function allows these weak interface functions to be used without definitions, which mirrors behavior on linux and windows. Reviewers: compnerd, eugenis Subscribers: kubabrecka, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D28203 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291417 91177308-0d34-0410-b5e6-96231b3b80d8
* [Builtins] [ARM] Adding Thumb1 support for fcmpWeiming Zhao2017-01-082-9/+121
| | | | | | | | | | | | Summary: Mainly translate IT block into cmp/branch for functions in comparesf2.S Reviewers: rengolin, compnerd Subscribers: aemerson, llvm-commits Differential Revision: https://reviews.llvm.org/D28016 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291396 91177308-0d34-0410-b5e6-96231b3b80d8
* tsan: Introducing a function to flush the shadow memory from third-party ↵Dmitry Vyukov2017-01-073-0/+7
| | | | | | | | | | | | | | libraries As discussed with Dmitry (https://goo.gl/SA4izd), I would like to introduce a function to be called from a third-party library to flush the shadow memory. In particular, we ran some experiments with our tool Archer (an OpenMP data race detector based on Tsan, https://github.com/PRUNER/archer) and flushing the memory at the end of an outer parallel region, slightly increase the runtime overhead, but reduce the memory overhead of about 30%. This feature would come very handy in case of very large OpenMP applications that may cause an "out of memory" exception when checked with Tsan. Reviewed in: https://reviews.llvm.org/D28443 Author: Simone Atzeni (simoatze) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291346 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow-up for r291277: Redirect otool output to stderr.Kuba Mracek2017-01-071-1/+1
| | | | | | | | Tests need to output everything into a single stream, or FileCheck is sometimes confused (buffering can cause stdout/stderr to be interleaved randomly). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291339 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Enable weak hooks on darwin"Francis Ricci2017-01-079-42/+1
| | | | | | | | Reverts accidental upload. This reverts commit 421408c0f2cc811bcf9a945be6e95e46f76cb358. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291316 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable weak hooks on darwinFrancis Ricci2017-01-079-1/+42
| | | | | | | | | | | | | | | | Summary: By default, darwin requires a definition for weak interface functions at link time. Adding the '-U' link flag with each weak function allows these weak interface functions to be used without definitions, which mirrors behavior on linux and windows. Reviewers: compnerd, eugenis Subscribers: kubabrecka, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D28203 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291314 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide default implementations for sanitizer interface functionsFrancis Ricci2017-01-072-0/+18
| | | | | | | | | | | | | | Summary: Adds a few default implementations for weak interface functions on platforms where weak hooks are not supported. Reviewers: eugenis, samsonov, timurrrr Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28201 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291313 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow-up for r291277: Increase buffer size in uuid.cc testcase.Kuba Mracek2017-01-061-1/+1
| | | | | | | | 2048 should be enough for everyone. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291305 91177308-0d34-0410-b5e6-96231b3b80d8
* Ensure that only one compiler-rt component is created for lsanFrancis Ricci2017-01-061-2/+1
| | | | | | | | | | | | | | | | Summary: The lsan cmake configuration failed when targeting more than one architecture, because it would attempt to create multiple components with the same name. Ensure that only one lsan component is ever created. Reviewers: beanz, bogner Subscribers: dberris, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D28151 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291294 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Use architecture/slice information when symbolizing fat Mach-O ↵Kuba Mracek2017-01-0612-36/+184
| | | | | | | | | | | | files on Darwin This patch starts passing architecture information about a module to llvm-symbolizer and into text reports. This fixes the longstanding x86_64/x86_64h mismatch issue on Darwin. Differential Revision: https://reviews.llvm.org/D27390 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291287 91177308-0d34-0410-b5e6-96231b3b80d8
* [asan] Teach asan_symbolize.py to use :arch with atos and llvm-symbolizer on ↵Kuba Mracek2017-01-061-26/+51
| | | | | | | | | | | | Darwin This patch teaches asan_symbolize.py to read an architecture suffix on module names (e.g. ":x86_64") and pass that option to atos and llvm-symbolizer. Differential Revision: https://reviews.llvm.org/D27378 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291280 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Add a 'print_module_map' flag which prints modules with UUIDs on ↵Kuba Mracek2017-01-0612-11/+123
| | | | | | | | | | | | Darwin This patch add a new sanitizer flag, print_module_map, which enables printing a module map when the process exits, or after each report (for TSan). The output format is very similar to what Crash Reporter produces on Darwin (e.g. the format of module UUIDs). This enables users to use the existing symbol servers to offline symbolicate and aggregate reports. Differential Revision: https://reviews.llvm.org/D27400 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291277 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Track which modules are instrumented in LoadedModule objectsKuba Mracek2017-01-064-17/+42
| | | | | | | | | | This patch adds tracking which modules are instrumented and which are not. On macOS, instrumented modules link against the ASan/TSan/... dylib, so we can just check if such a load command exists or not. Differential Revision: https://reviews.llvm.org/D28263 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291268 91177308-0d34-0410-b5e6-96231b3b80d8
* [sancov] introducing SANCOV_OPTIONSMike Aizatsky2017-01-066-4/+169
| | | | | | | Reintroducing https://reviews.llvm.org/rL291068 Define options function everywhere but linux. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291267 91177308-0d34-0410-b5e6-96231b3b80d8
* [builtins] Implement __floattitf() & __floatuntitf()Michal Gorny2017-01-065-0/+596
| | | | | | | | | | | | | | | | Implement the missing __floattitf() and __floatuntitf() functions, to convert 128-bit (unsigned) integers to quad-precision floating-point types. This is needed e.g. on AArch64 where 'long double' is a quad-precision type. The code is based on the existing code for __floattixf() and __floatuntixf(), updated to account for different bit field lengths of quad-precision float. The tests are also copied, with the rounding tests adjusted for longer significand. Differential Revision: https://reviews.llvm.org/D27898 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291259 91177308-0d34-0410-b5e6-96231b3b80d8
* [ubsan] Minimize size of data for type_mismatch (Redo of D19668)Filipe Cabecinhas2017-01-062-9/+10
| | | | | | | | | | | | Summary: This is the compiler-rt side of D28242. Reviewers: kcc, vitalybuka, pgousseau, gbedwell Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D28244 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291237 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Disable appending -msse4.2 flag implicitlyMichal Gorny2017-01-062-2/+0
| | | | | | | | | | | | | | | | | | | | | | | Disable the code appending -msse4.2 flag implicitly when the compiler supports it. The compiler support for this flags do not indicate that the underlying CPU will support SSE4.2, and passing it may result in SSE4.2 code being emitted *implicitly*. If the target platform supports SSE4.2 appropriately, the relevant bits should be already enabled via -march= or equivalent. In this case passing -msse4.2 is redundant. If a runtime detection is desired (which seems to be a case with SCUDO), then (as gcc manpage points out) the specific SSE4.2 needs to be isolated into a separate file, the -msse4.2 flag can be forced only for that file and the function defined in that file can only be called when the CPU is determined to support SSE4.2. This fixes SIGILL on SCUDO when it is compiled using gcc-5.4. Differential Revision: https://reviews.llvm.org/D28304 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291217 91177308-0d34-0410-b5e6-96231b3b80d8
* Improved ASAN allocator and quarantine stats.Evgeniy Stepanov2017-01-055-56/+100
| | | | | | | | | | | | | | Summary: Improved ASAN allocator and quarantine stats. Reviewers: eugenis Patch by Alex Shlyapnikov. Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D28333 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291183 91177308-0d34-0410-b5e6-96231b3b80d8