summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan/rtl
Commit message (Collapse)AuthorAgeFilesLines
...
* [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: 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] 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: fix windows alignment checkDmitry Vyukov2014-02-051-1/+3
| | | | llvm-svn: 200838
* tsan: ensure proper alignment of mmaps on windowsDmitry Vyukov2014-02-052-2/+5
| | | | llvm-svn: 200832
* tsan: fix windows buildDmitry Vyukov2014-02-041-5/+6
| | | | llvm-svn: 200779
* tsan: fix darwin Go buildDmitry Vyukov2014-02-041-5/+6
| | | | llvm-svn: 200755
* 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-282-19/+25
| | | | | | | 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 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: do not deadlock on forkDmitry Vyukov2014-01-248-39/+222
| | | | | | | | | | | | | 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-212-0/+38
| | | | | | | | | | 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] 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-2413-149/+72
| | | | | | | | 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
* [Sanitizers] Rename Symbolizer::SymbolizeCode to Symbolizer::SymbolizePCTimur Iskhodzhanov2013-12-181-1/+1
| | | | llvm-svn: 197569
* [TSan] Move declarations of __tsan_atomic functions to a public headerAlexey Samsonov2013-12-112-219/+88
| | | | llvm-svn: 197015
* [TSan] Replace __tsan::OverrideFlags with __tsan::OnInitializeAlexey Samsonov2013-12-113-11/+3
| | | | llvm-svn: 197014
* [tsan] fix the old tsan Makefile to build the asm files with includesKostya Serebryany2013-12-051-0/+2
| | | | llvm-svn: 196495
* Revert r196490 and fix include paths in makefile-based buildAlexey Samsonov2013-12-051-1/+1
| | | | llvm-svn: 196492
* [tsan] fix the include path that is broken in configure/make build but works ↵Kostya Serebryany2013-12-051-1/+1
| | | | | | in cmake build (PR18144). This is a quick fix. Will need to fix the configure/make build properly llvm-svn: 196490
* [sanitizer] support toolchains that don't understand CFI directivesKostya Serebryany2013-12-052-126/+128
| | | | | | | | | | | | | | Summary: Support toolchains that don't understand CFI directives. Reviewers: dvyukov Reviewed By: dvyukov CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2336 llvm-svn: 196480
* [sanitizer] Intercept textdomain.Evgeniy Stepanov2013-12-022-0/+2
| | | | | | Patch by Alexander Taran. llvm-svn: 196098
* [sanitizer] Intercept times.Evgeniy Stepanov2013-11-282-0/+2
| | | | llvm-svn: 195918
* [sanitizer] Intercept iconv.Evgeniy Stepanov2013-11-282-0/+2
| | | | llvm-svn: 195917
* tsan: add support for passing file descriptors over UNIX domain socketsDmitry Vyukov2013-11-283-0/+37
| | | | | | | tsan was missing new fd's arrived from recvmsg(), and thus was reporting false positives due to missed synchronization on the fd's llvm-svn: 195914
* tsan: clarify "thread ended with ignores enabled" messageDmitry Vyukov2013-11-271-0/+2
| | | | llvm-svn: 195858
* [sanitizer] Intercept __xpg_strerror_r.Evgeniy Stepanov2013-11-272-0/+2
| | | | llvm-svn: 195839
* tsan: better diagnostics if thread finishes with ignores enabledDmitry Vyukov2013-11-2710-68/+181
| | | | | | | print thread creation stack and stacks where ignores were enabled. llvm-svn: 195836
* tsan: fix flags parsingDmitry Vyukov2013-11-271-6/+7
| | | | | | | | - running_on_valgrind was not parsed in some contexts - refactor code a bit - add comprehensive tests for flags parsing llvm-svn: 195831
* tsan: support synchronization by means of linux aioDmitry Vyukov2013-11-271-2/+42
| | | | | | http://llvm-reviews.chandlerc.com/D2269 llvm-svn: 195830
* tsan: filter out more bogus fd valuesDmitry Vyukov2013-11-251-1/+1
| | | | | | people do close(sysconf(_SC_OPEN_MAX)) after fork, where _SC_OPEN_MAX=1200000. llvm-svn: 195645
* tsan: fix handling of setjmpDmitry Vyukov2013-11-211-4/+8
| | | | | | | | It's incorrect to take address of setjmp, because it may not (ligally) present in libc. Fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59188 llvm-svn: 195345
* tsan: fix WTFAnnotateBenignRaceSized annotationDmitry Vyukov2013-11-191-1/+1
| | | | | | actually use the passed size llvm-svn: 195133
* tsan: add support for robust mutexesDmitry Vyukov2013-11-153-2/+19
| | | | llvm-svn: 194823
* tsan: add proper cfi directives to assembly codeDmitry Vyukov2013-11-151-2/+2
| | | | | | this allows gdb to unwind through our hacky call llvm-svn: 194803
* Reapply asan coverage changes 194702-194704.Bob Wilson2013-11-151-12/+0
| | | | | | | | I still don't know what is causing our bootstrapped LTO buildbots to fail, but llvm r194701 seems to be OK and I can't imagine that these changes could cause the problem. llvm-svn: 194790
* Speculatively revert asan coverage changes 194702-194704.Bob Wilson2013-11-151-0/+12
| | | | | | | | | Apple's bootstrapped LTO builds have been failing, and these changes (along with llvm 194701) are the only things on the blamelist. I will either reapply these changes or help debug the problem, depending on whether this fixes the buildbots. llvm-svn: 194779
* [asan] Poor man's coverage that works with ASan (compiler-rt part)Kostya Serebryany2013-11-141-12/+0
| | | | llvm-svn: 194702
* [Sanitizer] Specify a default value for each common runtime flagAlexey Samsonov2013-11-121-11/+6
| | | | llvm-svn: 194479
* [sanitizer] Avoid needless use of stringification (#symver) in ↵Evgeniy Stepanov2013-11-121-2/+2
| | | | | | | | INTERCEPT_FUNCTION_VER. This is a workaround for clang-format bug (PR17874). llvm-svn: 194468
* [sanitizer] Warn if interception fails.Evgeniy Stepanov2013-11-111-0/+1
| | | | | | This includes a clang-format pass over common interceptors. llvm-svn: 194372
* [Sanitizer] Make StackTrace::Unwind the only public way to unwind a stack trace.Alexey Samsonov2013-11-071-2/+2
| | | | llvm-svn: 194196
OpenPOWER on IntegriCloud