aboutsummaryrefslogtreecommitdiff
path: root/compiler-rt
AgeCommit message (Collapse)AuthorFilesLines
2015-08-14Merging r244101:Hans Wennborg2-3/+16
------------------------------------------------------------------------ r244101 | samsonov | 2015-08-05 12:35:46 -0700 (Wed, 05 Aug 2015) | 6 lines [UBSan] Fix UBSan-vptr false positive. Offset from vptr to the start of most-derived object can actually be positive in some virtual base class vtables. Patch by Stephan Bergmann! ------------------------------------------------------------------------ llvm-svn: 245114
2015-08-14Merging r244646:Daniel Sanders1-5/+5
------------------------------------------------------------------------ r244646 | dsanders | 2015-08-11 19:40:02 +0100 (Tue, 11 Aug 2015) | 5 lines [ubsan][mips] Revise r243384 to avoid special casing big-endian mips. Account for the case when uptr is 32-bit instead of trying to fix this case using the little endian path. ------------------------------------------------------------------------ llvm-svn: 245111
2015-08-14Merging r243384:Daniel Sanders1-4/+5
------------------------------------------------------------------------ r243384 | slthakur | 2015-07-28 06:51:51 +0100 (Tue, 28 Jul 2015) | 9 lines [UBSan][MIPS] Fix cast-overflow tests for mips big endian This fixes the bug https://llvm.org/bugs/show_bug.cgi?id=24152 The float value resides in the first 4 bytes of ValueHandle for both mips and mipsel. Reviewers: dsanders, samsonov Subscibers: rsmith, hans, mohit.bhakkad, jaydeep, llvm-commits Differential: http://reviews.llvm.org/D11448 ------------------------------------------------------------------------ llvm-svn: 245110
2015-08-12Merging r244002:Hans Wennborg2-4/+4
------------------------------------------------------------------------ r244002 | tbrethou | 2015-08-04 20:58:00 -0700 (Tue, 04 Aug 2015) | 2 lines Update references to new lists.llvm.org mailing lists. ------------------------------------------------------------------------ llvm-svn: 244771
2015-08-05Merging r243686:Hans Wennborg5-7/+7
------------------------------------------------------------------------ r243686 | dsanders | 2015-07-30 14:00:48 -0700 (Thu, 30 Jul 2015) | 14 lines [Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap Summary: Using u64 as type for offset changes its value, changing starting address for map in file. This patch solves Bug 24151, which raises issue while mapping file in mips32. Patch by Mohit Bhakkad Reviewers: dsanders, kcc Subscribers: hans, llvm-commits, samsonov, nitesh.jain, sagar, bhushan, jaydeep Differential Revision: http://reviews.llvm.org/D11588 ------------------------------------------------------------------------ llvm-svn: 244114
2015-07-30Merging r243615:Hans Wennborg2-4/+3
------------------------------------------------------------------------ r243615 | nico | 2015-07-29 20:41:05 -0700 (Wed, 29 Jul 2015) | 1 line Revert r243604, it (very likely) caused PR24312. ------------------------------------------------------------------------ llvm-svn: 243617
2015-07-30Merging r243604:Hans Wennborg2-3/+4
------------------------------------------------------------------------ r243604 | hans | 2015-07-29 18:45:17 -0700 (Wed, 29 Jul 2015) | 13 lines [CMake] Pass -march=i686 when targeting i686 (PR24222) Clang will not define __i686__, even when the target triple is i686, without -march=i686. With this patch, the compiler-rt build will successfully detect that Clang can target i686. The open_memstream.cc test is a little funny. Before my patch, it was invoked with "-m32 -m64". To make it work after my -march change, I had to add '-march=x86-64'. Differential Revision: http://reviews.llvm.org/D11618 ------------------------------------------------------------------------ llvm-svn: 243608
2015-07-27Merging r243170:Hans Wennborg2-1/+9
------------------------------------------------------------------------ r243170 | samsonov | 2015-07-24 15:01:07 -0700 (Fri, 24 Jul 2015) | 14 lines [CMake] Workaround for PR24222: don't fail if we can't target COMPILER_RT_TEST_TARGET_TRIPLE unless it was explicitly set. Summary: Although we assume that we can always target host triple, relax this check to avoid failing at configure-time for cases when we are not able to correctly infer/verify host triple for some reasons. See http://llvm.org/bugs/show_bug.cgi?id=24222 for more details. Reviewers: hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11496 ------------------------------------------------------------------------ llvm-svn: 243278
2015-07-23Merging r242539 and r242540:Hans Wennborg5-2/+101
------------------------------------------------------------------------ r242539 | rnk | 2015-07-17 09:23:05 -0700 (Fri, 17 Jul 2015) | 14 lines compiler-rt: add support for mingw-w64 in builtins The is so that we can avoid using libgcc and use compiler-rt with mingw-w64. Related driver patch http://reviews.llvm.org/D11077 I have tested this with mingw-w64 and everything seems to be in order. I also sent this patch to the mingw-w64 mailing list for them to look at. Patch by Martell Malone. Differential Revision: http://reviews.llvm.org/D11085 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r242540 | rnk | 2015-07-17 09:31:59 -0700 (Fri, 17 Jul 2015) | 1 line Add missing chkstk.S files from r242539 ------------------------------------------------------------------------ llvm-svn: 243059
2015-07-21Merging r242647 and r242651:Hans Wennborg1-3/+7
------------------------------------------------------------------------ r242647 | eugenis | 2015-07-19 12:57:13 -0700 (Sun, 19 Jul 2015) | 5 lines [sanitizer] De-flake one test. signal_segv_handler.cc occasionally fails due to a suspected kernel bug. Increasing the mapped region size seems to make the test pass reliably. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r242651 | dvyukov | 2015-07-19 14:44:49 -0700 (Sun, 19 Jul 2015) | 6 lines asan: fix a test Page size is not necessary 4096. Use sysconf to obtain page size. ------------------------------------------------------------------------ llvm-svn: 242848
2015-07-17Merging r242449:Hans Wennborg1-1/+1
------------------------------------------------------------------------ r242449 | samsonov | 2015-07-16 14:46:58 -0700 (Thu, 16 Jul 2015) | 1 line [ASan] PR24150: restrict test case to i386. ------------------------------------------------------------------------ llvm-svn: 242563
2015-07-16Merging r242444:Hans Wennborg1-2/+1
------------------------------------------------------------------------ r242444 | samsonov | 2015-07-16 14:20:05 -0700 (Thu, 16 Jul 2015) | 3 lines [CMake] One more attempt to fix PR24144. This time, exclude ExternalProject from build using set_target_properties. ------------------------------------------------------------------------ llvm-svn: 242445
2015-07-16Merging r242424:Hans Wennborg1-0/+2
------------------------------------------------------------------------ r242424 | samsonov | 2015-07-16 10:53:01 -0700 (Thu, 16 Jul 2015) | 11 lines [CMake] Workaround for PR24144: avoid installing libcxx_tsan and libcxx_msan by default "ninja install" command. Summary: Exclude external libc++ builds from "all" target, so that they are only build on demand, and are not installed together with LLVM/Clang. Reviewers: hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11252 ------------------------------------------------------------------------ llvm-svn: 242425
2015-07-16Merging r242350:Hans Wennborg1-0/+1
------------------------------------------------------------------------ r242350 | samsonov | 2015-07-15 15:50:39 -0700 (Wed, 15 Jul 2015) | 1 line [probile] Fix memory leak introduced in r241824. ------------------------------------------------------------------------ llvm-svn: 242405
2015-07-14[Sanitizer] Fix fopencookie() interceptor to work with null hook functions.Alexey Samsonov2-7/+15
llvm-svn: 242193
2015-07-13profile: Autoconf build system support for r241824Justin Bogner2-2/+2
r241824 didn't update the autoconf build system to handle the new file in the profile library. llvm-svn: 242013
2015-07-13sanitizer_common: Only use _ReadWriteBarrier when targeting MSVC cl.exe.Peter Collingbourne1-1/+1
Fixes check-ubsan when self hosting on Windows. llvm-svn: 242003
2015-07-13sanitizer_common: Fix implementation of bit count operations on 64-bit Windows.Peter Collingbourne1-11/+9
llvm-svn: 242002
2015-07-10Temporarily disable check-sanitizer tests on 64-bit Windows.Peter Collingbourne1-1/+3
llvm-svn: 241940
2015-07-10[TSan] Fix dl_iterate_phdr callback for the case when info->dlpi_name is ↵Alexey Samsonov2-4/+10
overwritten by user. llvm-svn: 241876
2015-07-09Add support for generating profiles in a given directory.Diego Novillo9-27/+92
When the file is initialized, this patch checks whether the path specifies a directory. If so, it creates the directory tree before truncating the file. Use default.profdata instead of pgo-data for default indexed profile name. llvm-svn: 241824
2015-07-08UBSan: Simplify logic for locating the RTTI object.Peter Collingbourne1-7/+16
The image-relative complete object locator contains a reference to itself, which we can use to compute the image base without using VirtualQuery. Spotted by David Majnemer. llvm-svn: 241758
2015-07-08[asan] relax the test case to allow either 'malloc' or ↵Kostya Serebryany1-1/+1
'__interceptor_malloc' ; PR22681 llvm-svn: 241755
2015-07-08CFI: Get check-cfi passing on Windows.Peter Collingbourne19-455/+570
Specifically: - Start using %expect_crash. - Provide an implementation of __ubsan::getDynamicTypeInfoFromVtable for the Microsoft C++ ABI. This is all that is needed for CFI diagnostics; UBSan's -fsanitize=vptr also requires an implementation of __ubsan::checkDynamicType. - Build the sanitizer runtimes against the release version of the C runtime, even in debug builds. - Accommodate demangling differences in tests. Differential Revision: http://reviews.llvm.org/D11029 llvm-svn: 241745
2015-07-07[asan] Add missing $ASAN_OPTIONS to some test casesKuba Brecka9-9/+9
Since http://reviews.llvm.org/D10294, ASan test cases now respect default env. options via `ASAN_OPTION=$ASAN_OPTIONS:additional_options=xxx`. This patch adds this to a few test cases where it's still missing. Differential Revision: http://reviews.llvm.org/D10988 llvm-svn: 241571
2015-07-06[asan] Add OS X 10.11's new dyld interposition supportKuba Brecka2-4/+40
On OS X 10.11 (which is currently a public beta), the dynamic linker has been improved so that it doesn't require the use of DYLD_INSERT_LIBRARIES in order for interposition/wrappers to work. This patch adds support of this behavior into ASan – we no longer need to re-exec in case the env. variable is not set. Reviewed at http://reviews.llvm.org/D10924 llvm-svn: 241487
2015-07-06[asan] Fix an OS X startup crash when an empty section is presentKuba Brecka2-0/+13
On OS X, when the main instrumented binary contains a custom section with zero length, ASan will crash (assert failure) early in the initialization. Reviewed at http://reviews.llvm.org/D10944 llvm-svn: 241474
2015-07-05Enable this test for PPC64.Jay Foad1-1/+1
llvm-svn: 241400
2015-07-02UBSan: Enable runtime library tests on Windows, and get most tests passing.Peter Collingbourne21-59/+105
Specifically: - Disable int128 tests on Windows, as MSVC cl.exe does not support int128, so we might not have been able to build the runtime with int128 support. - XFAIL the vptr tests as we lack Microsoft ABI support. - XFAIL enum.cpp as UBSan fails to add the correct instrumentation code for some reason. - Modify certain tests that build executables multiple times to use unique names for each executable. This works around a race condition observed on Windows. - Implement IsAccessibleMemoryRange for Windows to fix the last misaligned.cpp test. - Introduce a substitution for testing crashes on Windows using KillTheDoctor. Differential Revision: http://reviews.llvm.org/D10864 llvm-svn: 241303
2015-07-02[sanitizer] add #ifdefs around slow unwinder to fix OS X debug buildKuba Brecka1-0/+4
A recent change in slow unwinder causes the OS X build to fail when using COMPILER_RT_DEBUG=On. Let's fix this by #ifdef'ing it with #if SANITIZER_CAN_SLOW_UNWIND. See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150622/284294.html Reviewed at http://reviews.llvm.org/D10870 llvm-svn: 241261
2015-07-02Add declaration of _ReadWriteBarrier. Fixes build of asan tests on Windows.Peter Collingbourne1-0/+5
llvm-svn: 241227
2015-07-02Re-apply r241217 with build fixes:Peter Collingbourne7-24/+63
- Disable building of the interceptor library on 64-bit Windows. - Mangle names in /alternatename directive for 32-bit Windows. llvm-svn: 241224
2015-07-02Revert r241217, it breaks the build on Windows.Nico Weber6-48/+23
llvm-svn: 241219
2015-07-02ubsan: Port runtime library to (32- and 64-bit) Windows.Peter Collingbourne6-23/+48
Differential Revision: http://reviews.llvm.org/D10856 llvm-svn: 241217
2015-06-30[asan] Suppress read_binary_name_regtest.c test failure on unsupported hosts.Evgeniy Stepanov1-2/+4
read_binary_name_regtest.c requires seccomp kernel headers. Make the test pass if <linux/seccomp.h> is missing. llvm-svn: 241119
2015-06-30Revert part of r240623 (Enable memory sanitizer for PPC64) because theJay Foad1-2/+1
buildbots are still failing in check-ubsan. llvm-svn: 241113
2015-06-30tsan: fix handling of condition variable destructionDmitry Vyukov2-2/+55
POSIX states that "It shall be safe to destroy an initialized condition variable upon which no threads are currently blocked", and later clarifies "A condition variable can be destroyed immediately after all the threads that are blocked on it are awakened) (in examples section). Tsan reported such destruction as a data race. Fixes https://llvm.org/bugs/show_bug.cgi?id=23616 Reviewed in http://reviews.llvm.org/D10693 llvm-svn: 241082
2015-06-30[ASan] Add a regression test for r240960 (https://crbug.com/502974)Alexander Potapenko1-0/+48
The test simulates a sandbox that prevents the program from calling readlink(). ASan is supposed to still be able to print the executable name regardless of that. llvm-svn: 241072
2015-06-29[asan] Fix SanitizerCommon.PthreadDestructorIterations test on Android L.Evgeniy Stepanov8-28/+37
On Android L, TSD destructors run 8 times instead of 4. Back to 4 times on the current master branch (as well as on K). llvm-svn: 240992
2015-06-29[asan] Re-enable clang_gcc_abi test at higher opt levels.Evgeniy Stepanov1-5/+5
PR23971 is fixed. llvm-svn: 240975
2015-06-29sanitizer_common: fix and re-enable signal_segv_handler testDmitry Vyukov1-2/+3
struct sigaction was not initialized. As the result if SA_RESETHAND is set in sa_flags, then the handler is reset after first invocation leading to crash. Initialize struct sigaction to zero. Reviewed in http://reviews.llvm.org/D10803 llvm-svn: 240965
2015-06-29[libsanitizer] Replace ReadBinaryName() with ReadBinaryNameCached(),Alexander Potapenko4-3/+16
which caches the executable name upon the first invocation. This is necessary because Google Chrome (and potentially other programs) restrict the access to /proc/self/exe on linux. This change should fix https://code.google.com/p/chromium/issues/detail?id=502974 llvm-svn: 240960
2015-06-29tsan: implement suppressions for top frame onlyDmitry Vyukov4-13/+83
The new suppression type is called "race_top" and is matched only against top frame in report stacks. This is required for situations when we want to suppress a race in a "thread pool" or "event loop" implementation. If we simply use "race:ThreadPool::Execute" suppression, that can suppress everything in the program. Reviewed in http://reviews.llvm.org/D10686 llvm-svn: 240949
2015-06-29tsan: fix flaky testDmitry Vyukov1-4/+24
See the comment for explanation. llvm-svn: 240943
2015-06-27[msan] Fix infinite recursion when _Unwind_Backtrace calls memcpyJay Foad1-1/+2
Summary: On PPC64, half the msan tests fail with an infinite recursion through GetStackTrace like this: #0 __msan::GetStackTrace #1 __msan_memcpy #2 ?? () from /lib64/libgcc_s.so.1 #3 ?? () from /lib64/libgcc_s.so.1 #4 _Unwind_Backtrace #5 __sanitizer::BufferedStackTrace::SlowUnwindStack #6 __sanitizer::BufferedStackTrace::Unwind #7 __msan::GetStackTrace #8 __interceptor_calloc #9 _dl_allocate_tls #10 pthread_create@@GLIBC_2.17 #11 __interceptor_pthread_create #12 main The problem is that we call _Unwind_Backtrace to get a stack trace; but _Unwind_Backtrace calls memcpy, which we intercept and try to get another stack trace. This patch fixes it in __msan_memcpy by skipping the stack trace if IsInSymbolizer(). This works because GetStackTrace already creates a SymbolizerScope to "block reports from our interceptors during _Unwind_Backtrace". Reviewers: samsonov, wschmidt, eugenis Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10762 llvm-svn: 240878
2015-06-26[asan] Disable 3 tests on Android.Evgeniy Stepanov3-1/+8
Different reasons for failing; see source file comments. llvm-svn: 240858
2015-06-26[asan] Add -pie to uninstrumented executables on interface_test.ccEvgeniy Stepanov1-2/+2
This helps Android (which only support PIE) and does not hurt anything else. llvm-svn: 240857
2015-06-26[asan] Enable 2 tests on Android.Evgeniy Stepanov2-8/+0
Due to bionic improvements and "recent" sized-delete changes in clang. llvm-svn: 240856
2015-06-26[asan] Disable -O1,-O2,-O3 in clang_gcc_abi.cc test.Evgeniy Stepanov1-3/+4
A workaround for PR23971. Fixes the test on Android. llvm-svn: 240855
2015-06-26[asan] Disable glibc-specific code chunk on Android.Evgeniy Stepanov1-1/+1
Fixes quarantine_size_mb.cc test on the Android bot. llvm-svn: 240854