diff options
author | Kuba Brecka <kuba.brecka@gmail.com> | 2016-06-26 08:14:01 +0000 |
---|---|---|
committer | Kuba Brecka <kuba.brecka@gmail.com> | 2016-06-26 08:14:01 +0000 |
commit | 30ad0c941a87a15d35e6cfe81b090db86de2142b (patch) | |
tree | 85b5b3eb87f9ce16e39ddabac6be0208784b9ee3 /llvm/lib/Transforms/IPO/LoopExtractor.cpp | |
parent | 9d08642c64c90c132fbb4870027e58d7596c4255 (diff) | |
download | bcm5719-llvm-30ad0c941a87a15d35e6cfe81b090db86de2142b.tar.gz bcm5719-llvm-30ad0c941a87a15d35e6cfe81b090db86de2142b.zip |
[tsan] Intercept libcxx __release_shared to avoid false positive with weak_ptrs and destructors in C++
There is a "well-known" TSan false positive when using C++ weak_ptr/shared_ptr and code in destructors, e.g. described at <https://llvm.org/bugs/show_bug.cgi?id=22324>. The "standard" solution is to build and use a TSan-instrumented version of libcxx, which is not trivial for end-users. This patch tries a different approach (on OS X): It adds an interceptor for the specific function in libc++.dylib, which implements the atomic operation that needs to be visible to TSan.
Differential Revision: http://reviews.llvm.org/D21609
llvm-svn: 273806
Diffstat (limited to 'llvm/lib/Transforms/IPO/LoopExtractor.cpp')
0 files changed, 0 insertions, 0 deletions