summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan
Commit message (Collapse)AuthorAgeFilesLines
...
* [CMake] Simplify code for detecting/setting compiler flagsAlexey Samsonov2014-02-181-6/+2
| | | | llvm-svn: 201543
* [sanitizer] simplify DeadlockDetectorTLSKostya Serebryany2014-02-172-2/+4
| | | | llvm-svn: 201505
* Move TSan lit-tests under test/tsanAlexey Samsonov2014-02-14154-5050/+8
| | | | llvm-svn: 201414
* [tsan] rudimentary support for deadlock detector in tsan (nothing really ↵Kostya Serebryany2014-02-147-10/+72
| | | | | | works yet except for a single tiny test). Also rename tsan's DeadlockDetector to InternalDeadlockDetector llvm-svn: 201407
* [sanitizer] Use mmap to zero-fill large shadow regions.Evgeniy Stepanov2014-02-141-1/+1
| | | | | | | | | | This is covered by existing ASan test. This does not change anything for TSan by default (but provides a flag to change the threshold size). Based on a patch by florent.bruneau here:   https://code.google.com/p/address-sanitizer/issues/detail?id=256 llvm-svn: 201400
* Move shared configs for lit test suites to test/ and unittests/ directoriesAlexey Samsonov2014-02-142-2/+2
| | | | llvm-svn: 201399
* [TSan] Kill tsan_symbolize_addr2line_linux.ccAlexey Samsonov2014-02-124-204/+1
| | | | llvm-svn: 201219
* [Sanitizer] Teach external symbolizer to work with addr2line if ↵Alexey Samsonov2014-02-122-1/+7
| | | | | | llvm-symbolizer is unavailable. Allow this mode in TSan. llvm-svn: 201218
* [Sanitizer] Build sanitizer_common with -Wframe-larger-than=512 flagAlexey Samsonov2014-02-121-3/+4
| | | | llvm-svn: 201213
* [sanitizer] Use system unwinder in signal handlers on Android.Evgeniy Stepanov2014-02-111-2/+2
| | | | | | | | | | Because of the way Bionic sets up signal stack frames, libc unwinder is unable to step through it, resulting in broken SEGV stack traces. Luckily, libcorkscrew.so on Android implements an unwinder that can start with a signal context, thus sidestepping the issue. llvm-svn: 201151
* [TSan] Fix mismatched mangled names in operator delete interceptorsAlexey Samsonov2014-02-101-2/+2
| | | | llvm-svn: 201069
* Stick to C++98 for this.Nick Lewycky2014-02-081-4/+4
| | | | llvm-svn: 201015
* Update these declarations of operator delete (and delete[]) to have noexcept,Nick Lewycky2014-02-081-4/+4
| | | | | | | as required per core issue 1552 and warned about with -Wimplicit-exception-spec-mismatch. llvm-svn: 201014
* tsan: improve the testDmitry Vyukov2014-02-071-2/+9
| | | | | | | remove TSAN_OPTIONS from the test, so that it runs in the presubmit script add a CHECK, so that it can run with FileCheck as well llvm-svn: 200972
* tsan: run user OnInitialize callback laterDmitry Vyukov2014-02-071-1/+2
| | | | | | | when global and thread state are initialized, this allows to do more things in the callback. llvm-svn: 200966
* [TSan] Add a regression test for ↵Alexander Potapenko2014-02-061-0/+28
| | | | | | https://code.google.com/p/thread-sanitizer/issues/detail?id=47 llvm-svn: 200923
* [TSan] Don't flush all file streams on program shutdown to avoid deadlocks ↵Alexander Potapenko2014-02-061-1/+6
| | | | | | | | on file stream locks. This should fix https://code.google.com/p/thread-sanitizer/issues/detail?id=47. llvm-svn: 200922
* tsan: simplify Go build scriptDmitry Vyukov2014-02-061-4/+1
| | | | | | we don't use assembly files llvm-svn: 200916
* tsan: remove unused functionsDmitry Vyukov2014-02-061-18/+0
| | | | llvm-svn: 200915
* tsan: fix windows alignment checkDmitry Vyukov2014-02-051-1/+3
| | | | llvm-svn: 200838
* tsan: deflake flaky testDmitry Vyukov2014-02-051-0/+2
| | | | llvm-svn: 200833
* tsan: ensure proper alignment of mmaps on windowsDmitry Vyukov2014-02-053-4/+8
| | | | llvm-svn: 200832
* tsan: add windows native build scriptDmitry Vyukov2014-02-041-0/+4
| | | | llvm-svn: 200780
* tsan: fix windows buildDmitry Vyukov2014-02-041-5/+6
| | | | llvm-svn: 200779
* tsan: update Go public interfaceDmitry Vyukov2014-02-042-8/+7
| | | | | | in preparation for https://codereview.appspot.com/55100044 llvm-svn: 200766
* tsan: fix darwin Go buildDmitry Vyukov2014-02-041-5/+6
| | | | llvm-svn: 200755
* tsan: update public Go interfaceDmitry Vyukov2014-02-042-23/+55
| | | | | | in preparation for https://codereview.appspot.com/55100044 llvm-svn: 200750
* tsan: add SANITIZER_INTERFACE_ATTRIBUTE to more callbacksDmitry Vyukov2014-02-042-1/+4
| | | | | | so that it's possible to override them from a dynamic library. llvm-svn: 200747
* tsan: relax check for errno spoiling moreDmitry Vyukov2014-02-041-1/+9
| | | | | | | | | | | | We do not detect errno spoiling for SIGTERM, because some SIGTERM handlers do spoil errno but reraise SIGTERM, tsan reports false positive in such case. It's difficult to properly detect this situation (reraise), because in async signal processing case (when handler is called directly from rtl_generic_sighandler) we have not yet received the reraised signal; and it looks too fragile to intercept all ways to reraise a signal. llvm-svn: 200742
* Make signal-related functions use __sanitizer_* structures instead of ↵Alexander Potapenko2014-01-311-1/+1
| | | | | | | | | | | __sanitizer_kernel_* ones. Also rename internal_sigaction() into internal_sigaction_norestorer(), as this function doesn't fully implement the sigaction() functionality on Linux. This change is a part of refactoring intended to have common signal handling behavior in all tools. llvm-svn: 200535
* tsan: remove interceptor statsDmitry Vyukov2014-01-283-703/+0
| | | | | | They seems to be unused, but cause maintenance pain. llvm-svn: 200308
* tsan: relax checking of errno spoiling in signal handlersDmitry Vyukov2014-01-283-25/+38
| | | | | | | allow SIGABRT to spoil errno, because some real programs reset SIGABRT handler in the handler, re-raise SIGABRT and return from the handler llvm-svn: 200304
* tsan: fix test for -O2Dmitry Vyukov2014-01-241-13/+17
| | | | | | otherwise races are suppressed due to "same stack" llvm-svn: 200015
* tsan: fix test for -O2Dmitry Vyukov2014-01-241-1/+2
| | | | llvm-svn: 200012
* tsan: fix signal handlingDmitry Vyukov2014-01-241-51/+67
| | | | | | | We left ignore_interceptors>0 when calling signal handlers from blocking interceptors, this leads to missing synchronization in such signal handler. llvm-svn: 200003
* tsan: fix test relying on assertDmitry Vyukov2014-01-241-0/+6
| | | | llvm-svn: 200002
* tsan: do not deadlock on forkDmitry Vyukov2014-01-2412-39/+356
| | | | | | | | | | | | | Currently correct programs can deadlock after fork, because atomic operations and async-signal-safe calls are not async-signal-safe under tsan. With this change: - if a single-threaded program forks, the child continues running with verification enabled (the tsan background thread is recreated as well) - if a multi-threaded program forks, then the child runs with verification disabled (memory accesses, atomic operations and interceptors are disabled); it's expected that it will exec soon anyway - if the child tries to create more threads after multi-threaded fork, the program aborts with error message - die_after_fork flag is added that allows to continue running, but all bets are off http://llvm-reviews.chandlerc.com/D2614 llvm-svn: 199993
* Sanitize printf functions.Alexey Samsonov2014-01-213-0/+54
| | | | | | | | | | Intercept and sanitize arguments passed to printf functions in ASan and TSan (don't do this in MSan for now). The checks are controlled by runtime flag (off by default for now). Patch http://llvm-reviews.chandlerc.com/D2480 by Yuri Gribov! llvm-svn: 199729
* [tsan] one more explicit memset in tsan rtl (to please gcc 4.8.2)Kostya Serebryany2014-01-141-1/+1
| | | | llvm-svn: 199216
* [tsan] reduce the size of stack frame in MapRodata to please gcc 4.8.2Kostya Serebryany2014-01-141-6/+5
| | | | llvm-svn: 199200
* [Sanitizer] Remove now unused symbolization functionality from ↵Alexey Samsonov2013-12-251-2/+0
| | | | | | MemoryMappingLayout llvm-svn: 198014
* [Sanitizer] Use different MemoryMappingLayout::DumpListOfModules on Linux ↵Alexey Samsonov2013-12-251-0/+3
| | | | | | | | and Mac. Make a unit test added in r198004 more robust. llvm-svn: 198012
* [TSan] fix Go buildAlexey Samsonov2013-12-251-1/+5
| | | | llvm-svn: 198005
* [Sanitizer] Replace Symbolizer::IsAvailable and ↵Alexey Samsonov2013-12-252-15/+2
| | | | | | | | Symbolizer::IsExternalAvailable with Symbolizer::CanReturnFileLineInfo. Remove now redundant checks in symbolizer initialization in TSan and MSan. llvm-svn: 198000
* tsan: fix false positive in pthread stack manupulationDmitry Vyukov2013-12-241-0/+4
| | | | | | pthread uses internal cache, we do not see synchronization in it llvm-svn: 197982
* tsan: remove in_rtl counterDmitry Vyukov2013-12-2423-188/+149
| | | | | | | | This is intended to address the following problem. Episodically we see CHECK-failures when recursive interceptors call back into user code. Effectively we are not "in_rtl" at this point, but it's very complicated and fragile to properly maintain in_rtl property. Instead get rid of it. It was used mostly for sanity CHECKs, which basically never uncover real problems. Instead introduce ignore_interceptors flag, which is used in very few narrow places to disable recursive interceptors (e.g. during runtime initialization). llvm-svn: 197979
* tsan: deflake another testDmitry Vyukov2013-12-241-1/+3
| | | | llvm-svn: 197965
* [Sanitizers] Rename Symbolizer::SymbolizeCode to Symbolizer::SymbolizePCTimur Iskhodzhanov2013-12-181-1/+1
| | | | llvm-svn: 197569
* [Sanitizer] Always initialize a Symbolizer (even if 'symbolize' is false).Alexey Samsonov2013-12-171-1/+1
| | | | | | | | | If 'symbolize' flag is not set, we still want to transform virtual address to module+offset pair in the call to Symbolizer::SymbolizeCode(). See https://code.google.com/p/address-sanitizer/issues/detail?id=251 for more details. llvm-svn: 197491
* [TSan] Move declarations of __tsan_atomic functions to a public headerAlexey Samsonov2013-12-113-219/+104
| | | | llvm-svn: 197015
OpenPOWER on IntegriCloud