Commit Graph

3321 Commits

Author SHA1 Message Date
Evgeniy Stepanov f4dcf77623 [asan] Fix printing of long reports to logcat on Android.
__android_log_write has an implicit message length limit.
Print one line at a time.

llvm-svn: 202250
2014-02-26 09:39:55 +00:00
Evgeniy Stepanov e23add20ae [sanitizer] Add a flag to enable/disable report colorization.
llvm-svn: 202249
2014-02-26 09:06:59 +00:00
Evgeniy Stepanov 3ff723f373 [asan] asan_device_setup: fix a typo in usage text
llvm-svn: 202246
2014-02-26 08:12:28 +00:00
Evgeniy Stepanov 84610ed7bf [asan] Remove .sh extension from asan_device_setup.
llvm-svn: 202245
2014-02-26 08:10:03 +00:00
Alexey Samsonov 10d0003a21 Revert r201783 until all FreeBSD fixes are submitted.
llvm-svn: 202244
2014-02-26 07:50:28 +00:00
Richard Trieu a170f08109 Remove 'tctx->name' from a logical statement since it is a pointer and always
is converted to a true value.  Detected by Clang's improved -Wbool-conversion

llvm-svn: 202223
2014-02-26 03:12:51 +00:00
Kostya Serebryany 67968cbf93 [sanitizer] minimal support for recursive locks indeadlock detector
llvm-svn: 202153
2014-02-25 14:02:01 +00:00
Alexey Samsonov 98aa08c0e9 Update sanitizers' bash scripts.
* Fix bash scripts to work on FreeBSD (patch by Viktor Kutuzov)
* Update locations of lit tests in check_lint script.

llvm-svn: 202145
2014-02-25 12:09:25 +00:00
Alexander Potapenko 2d4b60f9a3 [ASan] Don't set rpath when building ASan runtime libraries.
This should fix the issues with `make check-asan` on OS X.

llvm-svn: 202144
2014-02-25 11:54:25 +00:00
Kostya Serebryany 01be296dbb [sanitizer] support pthread_rwlock_rd* in deadlock detector
llvm-svn: 202132
2014-02-25 10:33:37 +00:00
Kostya Serebryany fd88edfddb [sanitizer] partially support pthread_rwlock_* (no rd* form yet)
llvm-svn: 202128
2014-02-25 09:33:10 +00:00
Kostya Serebryany a1a6391d19 [asan] Fix for size_t in Asan's new and delete operators on x64 FreeBSD in 32-bit mode, only for FreeBSD <= 9.2; patch by Viktor Kutuzov
llvm-svn: 202124
2014-02-25 08:45:59 +00:00
Alexey Samsonov 97c22f79e1 Enable UBSan on FreeBSD. Patch by Viktor Kutuzov.
llvm-svn: 202122
2014-02-25 08:29:36 +00:00
Kostya Serebryany 11f4f30fa7 [sanitizer] add support for try_lock in deadlock detector
llvm-svn: 202120
2014-02-25 08:24:15 +00:00
Kostya Serebryany 6d54611fd4 [sanitizer] fix epoch handling in deadlock detector (before the fix, we could have had edges from locks in the previous epoch to locks in the current epoch)
llvm-svn: 202118
2014-02-25 07:34:41 +00:00
Kostya Serebryany cc92c79531 [asan] simplify the code that compute the shadow offset; get rid of two internal flags that allowed to override it. The tests pass, but still this change might break asan on some platform not covered by tests. If you see this, please submit a fix with a test.
llvm-svn: 202033
2014-02-24 13:40:24 +00:00
Dmitry Vyukov a661a13c0f tsan: fix SIGRTMAX handling
llvm-svn: 202022
2014-02-24 11:28:59 +00:00
Kostya Serebryany cf5d8e4f29 AdjustStackSizeLinux() is used in Lsan, Tsan and Msan non-Linux-specific code so it seems it should have more generic name and moved to a common scope.
Renamed to AdjustStackSize.
Patch by Viktor Kutuzov.

llvm-svn: 202011
2014-02-24 08:53:26 +00:00
Kostya Serebryany 04f2bf0f07 [sanitizer] Interception macros for sanitizers on FreeBSD; patch by Viktor Kutuzov
llvm-svn: 202009
2014-02-24 08:37:41 +00:00
Dmitry Vyukov 249cd9af9c tsan: fix compiler warning
error: address of array 'tctx->name' will always evaluate to 'true'

llvm-svn: 202008
2014-02-24 08:19:53 +00:00
Reid Kleckner 324eee45a7 Revert "Replace __FUNCTION__ with __func__, the latter being standard C99/C++11."
This reverts commit r201910.

While __func__ may be standard in C++11, it was only recently added to
MSVC in 2013 CTP, and LLVM supports MSVC 2012.  __FUNCTION__ may not be
standard, but it's *very* portable.

llvm-svn: 201916
2014-02-22 00:37:45 +00:00
Joerg Sonnenberger b15779f307 Replace __FUNCTION__ with __func__, the latter being standard C99/C++11.
llvm-svn: 201910
2014-02-21 23:55:15 +00:00
Joerg Sonnenberger 938b0df72d Introduce CRT_HAS_128BIT, currently for all __LP64__ platforms.
Use it to enable the various functions for TI mode.

llvm-svn: 201909
2014-02-21 23:53:03 +00:00
Kostya Serebryany 0548c79859 [tsan] add coarse-grained lock around the DeadlockDetector. We can do better than that, but that's a start.
llvm-svn: 201861
2014-02-21 15:07:18 +00:00
Bob Wilson 96e99556ad Add an environment variable to override the default profile output file.
Also rename the default output file from "pgo-data" to "default.profdata".
The ".profdata" suffix is consistent with the name of the new llvm-profdata
tool.

llvm-svn: 201808
2014-02-20 19:52:32 +00:00
Alexey Samsonov b106f2c0ac [FreeBSD] Enable building a few runtime libraries on FreeBSD.
Patch by Viktor Kutuzov!

llvm-svn: 201783
2014-02-20 13:14:05 +00:00
Alexey Samsonov 35a66d15d4 Move config for sanitizer_common tests under test/ for consistency
llvm-svn: 201779
2014-02-20 12:18:08 +00:00
Alexey Samsonov 11705b2f10 [CMake] break dependency between unit tests and runtimes in standalone build
llvm-svn: 201778
2014-02-20 12:03:56 +00:00
Evgeniy Stepanov 0f56a71859 [asan] Changes to asm instrumentation must be done through the generator script.
llvm-svn: 201766
2014-02-20 07:56:58 +00:00
Evgeniy Stepanov 8126e76a8a [asan] Do all calls to __asan_report_* through PLT.
This matters when runtime is built as a shared library. Even though calling
code is itself part of the same library, these symbols are public and can
(theoretically) be interposed.

It might be better to declare hidden aliases for asan_report_* and call them
directly, but
  (a) they are (noreturn), so performance does not matter, and
  (b) it may be potentially less portable.

llvm-svn: 201764
2014-02-20 07:54:29 +00:00
Kostya Serebryany b51f8d4990 [tsan] when printing a mutex, also print its address. Properly print the deadlock report.
llvm-svn: 201675
2014-02-19 14:17:25 +00:00
Evgeniy Stepanov cba008e9c5 [asan] A different way of detectinb stack overflow.
Instead of checking stack limits that are not well defined for the main thread,
we rely on siginfo::si_code and distance from SP.

llvm-svn: 201673
2014-02-19 13:40:41 +00:00
Alexey Samsonov cd8535a96d [CMake] Introduce COMPILER_RT_INCLUDE_TESTS option
llvm-svn: 201666
2014-02-19 11:18:47 +00:00
Evgeniy Stepanov 2274ba7716 [asan] Improve stack overflow detection.
There are more cases when those manifest as an access below SP.

llvm-svn: 201664
2014-02-19 11:02:46 +00:00
Evgeniy Stepanov caaaac8c30 [asan] Disable asm instrumentation and tests on Mac.
Move asm tests to their own file.

llvm-svn: 201653
2014-02-19 09:14:39 +00:00
Evgeniy Stepanov 182319f7ba [asan] Fix build on ARM.
llvm-svn: 201652
2014-02-19 09:01:14 +00:00
Evgeniy Stepanov 2169c6bba4 [asan] Added assembly functions for x86/amd64 asan.
These are runtime support functions for inline assembly instrumentation.
This is a re-submit of r201402.

Patch by Yuri Gorshenin.

llvm-svn: 201650
2014-02-19 08:30:39 +00:00
Alexey Samsonov de4ef2a066 [CMake] Rudimentary support for standalone CompilerRT build system.
This change allows to build compiler-rt libraries separately from
LLVM/Clang (path to LLVM build directory should be specified at
configure time). Running tests is not yet supported.

llvm-svn: 201647
2014-02-19 07:49:16 +00:00
Timur Iskhodzhanov cb9dc67a5e [ASan/Win] Add a couple more DLL thunks
llvm-svn: 201580
2014-02-18 15:31:29 +00:00
Kostya Serebryany 37ce26cb16 [sanitizer] when reporting a deadlock also report the lock cycle
llvm-svn: 201576
2014-02-18 14:56:19 +00:00
Alexey Samsonov 1181a104e6 [CMake] Rename several variables
llvm-svn: 201575
2014-02-18 14:28:53 +00:00
Kostya Serebryany bd86a29a2a [sanitizer] make sure the deadlock detector survives the change of epochs; add a test and a comment
llvm-svn: 201572
2014-02-18 13:41:49 +00:00
Kostya Serebryany aa416c39cd [tsan] in deadlock detector do not register locks on their creation and unregister them on destruction; added a relevant test
llvm-svn: 201568
2014-02-18 12:50:31 +00:00
Evgeniy Stepanov 65b959afad [asan] Stack overflow detection.
Report segmentation faults near or below stack bottom as stack-overflow
(not stack-buffer-overflow!).

llvm-svn: 201565
2014-02-18 11:49:52 +00:00
Evgeniy Stepanov 50bef914a6 [asan] Override default sigaltstack setting on Android.
Android libc always sets altstack on non-main threads, but it is too small for
our unwinder. With use_sigaltstack=1, override this setting with a larger one.

llvm-svn: 201557
2014-02-18 11:14:30 +00:00
Alexey Samsonov 63a4af7346 [CMake] Add top-level target for each compiler-rt library, and add 'compiler-rt' target encompassing them all.
llvm-svn: 201556
2014-02-18 09:33:45 +00:00
Alexey Samsonov 878a9a5de2 [CMake] Check for -fPIE and -ffreestanding flags for consistency
llvm-svn: 201549
2014-02-18 08:07:09 +00:00
Alexey Samsonov b73db72a17 [CMake] Simplify setting compile flag disabling RTTI
llvm-svn: 201547
2014-02-18 07:52:40 +00:00
Evgeniy Stepanov 2eea2850a4 [asan] Make __cxa_demangle non-weak symbol on Android.
This fixes global-demangle.cc test on Android.

https://code.google.com/p/address-sanitizer/issues/detail?id=264

llvm-svn: 201545
2014-02-18 07:34:52 +00:00
Alexey Samsonov 9a1ffce25a [CMake] Simplify code for detecting/setting compiler flags
llvm-svn: 201543
2014-02-18 07:26:58 +00:00