<div dir="ltr">Thank you! My buildbot is back to green now. :-)<div><br></div><div>--Artem</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 3, 2017 at 4:10 AM, Maxim Ostapenko <span dir="ltr"><<a href="mailto:chefmax7@gmail.com" target="_blank">chefmax7@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 02/02/17 21:27, Kostya Serebryany wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
On Thu, Feb 2, 2017 at 12:55 AM, Maxim Ostapenko via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a> <mailto:<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llv<wbr>m.org</a>>> wrote:<br>
<br>
Hi,<br>
<br>
On 02/02/17 01:53, Artem Belevich via llvm-commits wrote:<br>
<br>
Hi,<br>
<br>
After this change<br>
SanitizerCommon-lsan-i386-Linu<wbr>x::sem_init_glibc.cc has been<br>
consistently failing on my build bot:<br>
<a href="http://lab.llvm.org:8011/builders/clang-cuda-build/builds/4293" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/build<wbr>ers/clang-cuda-build/builds/<wbr>4293</a><br>
<<a href="http://lab.llvm.org:8011/builders/clang-cuda-build/builds/4293" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/buil<wbr>ders/clang-cuda-build/builds/<wbr>4293</a>><br>
<br>
Any ideas what's wrong? It's an Ubuntu 16.04 x64 box, tests<br>
are run on Release+asserts build of clang.<br>
<br>
<br>
I looked at the test and it seems that it relies on sanitizer<br>
common interceptor to pick the oldest version of sem_init function<br>
from Glibc.<br>
But LSan actually doesn't intercept sem_init, thus the new<br>
implementation is called. This can be observed via gdb:<br>
<br>
a.out:<br>
/home/max/src/llvm/projects/co<wbr>mpiler-rt/test/sanitizer_commo<wbr>n/TestCases/Linux/sem_init_<wbr>glibc.cc:52:<br>
int main(): Assertion `GET_SEM_VALUE(a) == 42' failed.<br>
<br>
Program received signal SIGABRT, Aborted.<br>
0xf7fda440 in __kernel_vsyscall ()<br>
(gdb) bt<br>
#0 0xf7fda440 in __kernel_vsyscall ()<br>
#1 0xf7cde570 in raise () from<br>
/home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#2 0xf7cdfbc6 in abort () from<br>
/home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#3 0xf7cd7787 in __assert_fail_base () from<br>
/home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#4 0xf7cd7837 in __assert_fail () from<br>
/home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#5 0x0806ebc9 in main () at<br>
/home/max/src/llvm/projects/co<wbr>mpiler-rt/test/sanitizer_commo<wbr>n/TestCases/Linux/sem_init_<wbr>glibc.cc:52<br>
(gdb) frame 5<br>
#5 0x0806ebc9 in main () at<br>
/home/max/src/llvm/projects/co<wbr>mpiler-rt/test/sanitizer_commo<wbr>n/TestCases/Linux/sem_init_<wbr>glibc.cc:52<br>
52 assert(GET_SEM_VALUE(a) == 42);<br>
(gdb) p a<br>
$1 = 84<br>
<br>
Thus I see 2 options how to get rid of this failure:<br>
1) Disable the test on LSan x86<br>
<br>
<br>
let's start from 1) and filling a bug for 2)<br>
</blockquote>
<br>
Done via r294001. I'll open a bug a bit later.<br>
<br>
-Maxim<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) Check Glibc version at runtime and adjust corresponding<br>
GET_SEM_VALUE(V) accordingly.<br>
<br>
-Maxim<br>
<br>
<br>
--Artem<br>
<br>
<br>
On Mon, Jan 30, 2017 at 11:15 PM, Maxim Ostapenko via<br>
llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<mailto:<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llv<wbr>m.org</a>><br>
<mailto:<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llv<wbr>m.org</a><br>
<mailto:<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llv<wbr>m.org</a>>>> wrote:<br>
<br>
Author: chefmax<br>
Date: Tue Jan 31 01:15:37 2017<br>
New Revision: 293610<br>
<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project?rev=293610&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=293610&view=rev</a><br>
<<a href="http://llvm.org/viewvc/llvm-project?rev=293610&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject?rev=293610&view=rev</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project?rev=293610&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject?rev=293610&view=rev</a><br>
<<a href="http://llvm.org/viewvc/llvm-project?rev=293610&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject?rev=293610&view=rev</a>>><br>
Log:<br>
[lsan] Renable LSan for x86 Linux<br>
<br>
The missed clang part was committed at<br>
<a href="https://reviews.llvm.org/rL293609" rel="noreferrer" target="_blank">https://reviews.llvm.org/rL293<wbr>609</a><br>
<<a href="https://reviews.llvm.org/rL293609" rel="noreferrer" target="_blank">https://reviews.llvm.org/rL29<wbr>3609</a>><br>
<<a href="https://reviews.llvm.org/rL293609" rel="noreferrer" target="_blank">https://reviews.llvm.org/rL29<wbr>3609</a><br>
<<a href="https://reviews.llvm.org/rL293609" rel="noreferrer" target="_blank">https://reviews.llvm.org/rL29<wbr>3609</a>>> thus<br>
we can reenable LSan for x86 Linux.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D28609" rel="noreferrer" target="_blank">https://reviews.llvm.org/D2860<wbr>9</a><br>
<<a href="https://reviews.llvm.org/D28609" rel="noreferrer" target="_blank">https://reviews.llvm.org/D286<wbr>09</a>><br>
<<a href="https://reviews.llvm.org/D28609" rel="noreferrer" target="_blank">https://reviews.llvm.org/D286<wbr>09</a><br>
<<a href="https://reviews.llvm.org/D28609" rel="noreferrer" target="_blank">https://reviews.llvm.org/D286<wbr>09</a>>><br>
<br>
Modified:<br>
compiler-rt/trunk/cmake/config<wbr>-ix.cmake<br>
compiler-rt/trunk/lib/lsan/lsa<wbr>n_allocator.cc<br>
compiler-rt/trunk/lib/lsan/lsa<wbr>n_common.h<br>
compiler-rt/trunk/lib/lsan/lsa<wbr>n_interceptors.cc<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_flags.inc<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.cc<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.h<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stoptheworl<wbr>d_linux_libcdep.cc<br>
compiler-rt/trunk/test/asan/li<wbr>t.cfg<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/do_leak_check_overrid<wbr>e.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/high_allocator_conten<wbr>tion.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/large_allocation_leak<wbr>.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/leak_check_at_exit.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/link_turned_off.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/pointer_to_self.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/print_suppressions.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/recoverable_leak_chec<wbr>k.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/register_root_region.<wbr>cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/stale_stack_leak.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/suppressions_default.<wbr>cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_file.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_after_return.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/use_globals_initializ<wbr>ed.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/use_globals_uninitial<wbr>ized.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_poisoned_asan.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_registers.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks.cc<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/use_stacks_threaded.c<wbr>c<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_dynamic.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_dynamic.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_static.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_static.cc<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_unaligned.cc<br>
compiler-rt/trunk/test/sanitiz<wbr>er_common/TestCases/Posix/<wbr>sanitizer_set_death_callback_<wbr>test.cc<br>
compiler-rt/trunk/test/saniti<wbr>zer_common/TestCases/corelimit<wbr>.cc<br>
compiler-rt/trunk/test/sanitiz<wbr>er_common/lit.common.cfg<br>
compiler-rt/trunk/test/sanitiz<wbr>er_common/print_address.h<br>
<br>
Modified: compiler-rt/trunk/cmake/config<wbr>-ix.cmake<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/cmake/<wbr>config-ix.cmake?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/cmake<wbr>/config-ix.cmake?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/cmak<wbr>e/config-ix.cmake?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/cmake<wbr>/config-ix.cmake?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a>><wbr>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/cmake/config<wbr>-ix.cmake (original)<br>
+++ compiler-rt/trunk/cmake/config<wbr>-ix.cmake Tue Jan 31<br>
01:15:37 2017<br>
@@ -164,7 +164,7 @@ set(ALL_SANITIZER_COMMON_SUPPO<wbr>RTED_ARCH<br>
set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32}<br>
${ARM64}<br>
${MIPS32} ${MIPS64} ${PPC64} ${S390X})<br>
set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})<br>
-set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})<br>
+set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64}<br>
${ARM64})<br>
set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}<br>
${PPC64})<br>
set(ALL_PROFILE_SUPPORTED_<wbr>ARCH ${X86} ${X86_64} ${ARM32}<br>
${ARM64}<br>
${PPC64}<br>
${MIPS32} ${MIPS64} ${S390X})<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsa<wbr>n_allocator.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/ls<wbr>an/lsan_allocator.cc?rev=29361<wbr>0&r1=293609&r2=293610&view=<wbr>diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_allocator.cc?rev=2936<wbr>10&r1=293609&r2=293610&view=<wbr>diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>lsan/lsan_allocator.cc?rev=293<wbr>610&r1=293609&r2=293610&view=<wbr>diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_allocator.cc?rev=2936<wbr>10&r1=293609&r2=293610&view=<wbr>diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/lsan/lsa<wbr>n_allocator.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsa<wbr>n_allocator.cc Tue Jan 31<br>
01:15:37 2017<br>
@@ -28,12 +28,21 @@ namespace __lsan {<br>
struct ChunkMetadata {<br>
u8 allocated : 8; // Must be first.<br>
ChunkTag tag : 2;<br>
+#if SANITIZER_WORDSIZE == 64<br>
uptr requested_size : 54;<br>
+#else<br>
+ uptr requested_size : 32;<br>
+ uptr padding : 22;<br>
+#endif<br>
u32 stack_trace_id;<br>
};<br>
<br>
-#if defined(__mips64) || defined(__aarch64__)<br>
+#if defined(__mips64) || defined(__aarch64__) ||<br>
defined(__i386__)<br>
+#if defined(__i386__)<br>
+static const uptr kMaxAllowedMallocSize = 1UL << 30;<br>
+#else<br>
static const uptr kMaxAllowedMallocSize = 4UL << 30;<br>
+#endif<br>
static const uptr kRegionSizeLog = 20;<br>
static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >><br>
kRegionSizeLog;<br>
typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12><br>
ByteMap;<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsa<wbr>n_common.h<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/ls<wbr>an/lsan_common.h?rev=293610&r1<wbr>=293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_common.h?rev=293610&r<wbr>1=293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>lsan/lsan_common.h?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_common.h?rev=293610&r<wbr>1=293609&r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/lsan/lsa<wbr>n_common.h (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsa<wbr>n_common.h Tue Jan 31<br>
01:15:37 2017<br>
@@ -22,9 +22,19 @@<br>
#include "sanitizer_common/sanitizer_st<wbr>optheworld.h"<br>
#include "sanitizer_common/sanitizer_sy<wbr>mbolizer.h"<br>
<br>
+// LeakSanitizer relies on some Glibc's internals (e.g. TLS<br>
machinery) thus<br>
+// supported for Linux only. Also, LSan doesn't like 32 bit<br>
architectures<br>
+// because of "small" (4 bytes) pointer size that leads<br>
to high<br>
false negative<br>
+// ratio on large leaks. But we still want to have it for<br>
some 32<br>
bit arches<br>
+// (e.g. x86), see<br>
<a href="https://github.com/google/sanitizers/issues/403" rel="noreferrer" target="_blank">https://github.com/google/sani<wbr>tizers/issues/403</a><br>
<<a href="https://github.com/google/sanitizers/issues/403" rel="noreferrer" target="_blank">https://github.com/google/san<wbr>itizers/issues/403</a>><br>
<<a href="https://github.com/google/sanitizers/issues/403" rel="noreferrer" target="_blank">https://github.com/google/san<wbr>itizers/issues/403</a><br>
<<a href="https://github.com/google/sanitizers/issues/403" rel="noreferrer" target="_blank">https://github.com/google/san<wbr>itizers/issues/403</a>>>.<br>
+// To enable LeakSanitizer on new architecture, one need<br>
to implement<br>
+// internal_clone function as well as (probably) adjust TLS<br>
machinery for<br>
+// new architecture inside sanitizer library.<br>
#if (SANITIZER_LINUX && !SANITIZER_ANDROID) &&<br>
(SANITIZER_WORDSIZE == 64) \<br>
&& (defined(__x86_64__) || defined(__mips64) || defined(__aarch64__))<br>
#define CAN_SANITIZE_LEAKS 1<br>
+#elif SANITIZER_LINUX && !SANITIZER_ANDROID &&<br>
defined(__i386__)<br>
+#define CAN_SANITIZE_LEAKS 1<br>
#else<br>
#define CAN_SANITIZE_LEAKS 0<br>
#endif<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsa<wbr>n_interceptors.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/ls<wbr>an/lsan_interceptors.cc?rev=29<wbr>3610&r1=293609&r2=293610&view=<wbr>diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_interceptors.cc?rev=2<wbr>93610&r1=293609&r2=293610&view<wbr>=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>lsan/lsan_interceptors.cc?rev=<wbr>293610&r1=293609&r2=293610&vie<wbr>w=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/l<wbr>san/lsan_interceptors.cc?rev=2<wbr>93610&r1=293609&r2=293610&view<wbr>=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/lsan/lsa<wbr>n_interceptors.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsa<wbr>n_interceptors.cc Tue Jan 31<br>
01:15:37 2017<br>
@@ -27,6 +27,8 @@<br>
#include "lsan_common.h"<br>
#include "lsan_thread.h"<br>
<br>
+#include <stddef.h><br>
+<br>
using namespace __lsan;<br>
<br>
extern "C" {<br>
@@ -186,13 +188,13 @@ INTERCEPTOR(void, cfree, void *p) ALIAS(<br>
return Allocate(stack, size, 1, kAlwaysClearMemory);<br>
<br>
INTERCEPTOR_ATTRIBUTE<br>
-void *operator new(uptr size) { OPERATOR_NEW_BODY; }<br>
+void *operator new(size_t size) { OPERATOR_NEW_BODY; }<br>
INTERCEPTOR_ATTRIBUTE<br>
-void *operator new[](uptr size) { OPERATOR_NEW_BODY; }<br>
+void *operator new[](size_t size) { OPERATOR_NEW_BODY; }<br>
INTERCEPTOR_ATTRIBUTE<br>
-void *operator new(uptr size, std::nothrow_t const&) {<br>
OPERATOR_NEW_BODY; }<br>
+void *operator new(size_t size, std::nothrow_t const&) {<br>
OPERATOR_NEW_BODY; }<br>
INTERCEPTOR_ATTRIBUTE<br>
-void *operator new[](uptr size, std::nothrow_t const&) {<br>
OPERATOR_NEW_BODY; }<br>
+void *operator new[](size_t size, std::nothrow_t const&) {<br>
OPERATOR_NEW_BODY; }<br>
<br>
#define OPERATOR_DELETE_BODY \<br>
ENSURE_LSAN_INITED; \<br>
<br>
Modified:<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_flags.inc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_flags<wbr>.inc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_flag<wbr>s.inc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_fla<wbr>gs.inc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_flag<wbr>s.inc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_flags.inc<br>
(original)<br>
+++<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_flags.inc Tue<br>
Jan 31 01:15:37 2017<br>
@@ -62,7 +62,8 @@ COMMON_FLAG(<br>
COMMON_FLAG(<br>
int, verbosity, 0,<br>
"Verbosity level (0 - silent, 1 - a bit of output, 2+<br>
- more<br>
output).")<br>
-COMMON_FLAG(bool, detect_leaks, true, "Enable memory leak<br>
detection.")<br>
+COMMON_FLAG(bool, detect_leaks, SANITIZER_WORDSIZE == 64,<br>
+ "Enable memory leak detection.")<br>
COMMON_FLAG(<br>
bool, leak_check_at_exit, true,<br>
"Invoke leak checking in an atexit handler. Has no<br>
effect if "<br>
<br>
Modified:<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_linux<wbr>.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_linu<wbr>x.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_lin<wbr>ux.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_linu<wbr>x.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.cc Tue<br>
Jan 31 01:15:37 2017<br>
@@ -1175,6 +1175,71 @@ uptr internal_clone(int (*fn)(void<br>
*), v<br>
"r0", "r29", "r27", "r28");<br>
return res;<br>
}<br>
+#elif defined(__i386__) && SANITIZER_LINUX<br>
+uptr internal_clone(int (*fn)(void *), void *child_stack, int<br>
flags, void *arg,<br>
+ int *parent_tidptr, void *newtls, int<br>
*child_tidptr) {<br>
+ int res;<br>
+ if (!fn || !child_stack)<br>
+ return -EINVAL;<br>
+ CHECK_EQ(0, (uptr)child_stack % 16);<br>
+ child_stack = (char *)child_stack - 7 * sizeof(unsigned<br>
int);<br>
+ ((unsigned int *)child_stack)[0] = (uptr)flags;<br>
+ ((unsigned int *)child_stack)[1] = (uptr)0;<br>
+ ((unsigned int *)child_stack)[2] = (uptr)fn;<br>
+ ((unsigned int *)child_stack)[3] = (uptr)arg;<br>
+ __asm__ __volatile__(<br>
+ /* %eax = syscall(%eax =<br>
SYSCALL(clone),<br>
+ * %ebx = flags,<br>
+ * %ecx = child_stack,<br>
+ * %edx =<br>
parent_tidptr,<br>
+ * %esi = new_tls,<br>
+ * %edi = child_tidptr)<br>
+ */<br>
+<br>
+ /* Obtain flags */<br>
+ "movl (%%ecx), %%ebx\n"<br>
+ /* Do the system call */<br>
+ "pushl %%ebx\n"<br>
+ "pushl %%esi\n"<br>
+ "pushl %%edi\n"<br>
+ /* Remember the flag value. */<br>
+ "movl %%ebx, (%%ecx)\n"<br>
+ "int $0x80\n"<br>
+ "popl %%edi\n"<br>
+ "popl %%esi\n"<br>
+ "popl %%ebx\n"<br>
+<br>
+ /* if (%eax != 0)<br>
+ * return;<br>
+ */<br>
+<br>
+ "test %%eax,%%eax\n"<br>
+ "jnz 1f\n"<br>
+<br>
+ /* terminate the stack frame */<br>
+ "xorl %%ebp,%%ebp\n"<br>
+ /* Call FN. */<br>
+ "call *%%ebx\n"<br>
+#ifdef PIC<br>
+ "call here\n"<br>
+ "here:\n"<br>
+ "popl %%ebx\n"<br>
+ "addl<br>
$_GLOBAL_OFFSET_TABLE_+[.-here<wbr>],<br>
%%ebx\n"<br>
+#endif<br>
+ /* Call exit */<br>
+ "movl %%eax, %%ebx\n"<br>
+ "movl %2, %%eax\n"<br>
+ "int $0x80\n"<br>
+ "1:\n"<br>
+ : "=a" (res)<br>
+ : "a"(SYSCALL(clone)),<br>
"i"(SYSCALL(exit)),<br>
+ "c"(child_stack),<br>
+ "d"(parent_tidptr),<br>
+ "S"(newtls),<br>
+ "D"(child_tidptr)<br>
+ : "memory");<br>
+ return res;<br>
+}<br>
#endif // defined(__x86_64__) && SANITIZER_LINUX<br>
<br>
#if SANITIZER_ANDROID<br>
<br>
Modified:<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.h<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_linux<wbr>.h?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_linu<wbr>x.h?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_lin<wbr>ux.h?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_linu<wbr>x.h?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.h<br>
(original)<br>
+++<br>
compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.h Tue<br>
Jan 31 01:15:37 2017<br>
@@ -48,7 +48,7 @@ int internal_sigaction_syscall(int signu<br>
#endif<br>
void internal_sigdelset(__sanitizer<wbr>_sigset_t *set, int<br>
signum);<br>
#if defined(__x86_64__) || defined(__mips__) ||<br>
defined(__aarch64__) \<br>
- || defined(__powerpc64__) || defined(__s390__)<br>
+ || defined(__powerpc64__) || defined(__s390__) ||<br>
defined(__i386__)<br>
uptr internal_clone(int (*fn)(void *), void *child_stack, int<br>
flags, void *arg,<br>
int *parent_tidptr, void *newtls, int<br>
*child_tidptr);<br>
#endif<br>
<br>
Modified:<br>
compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_stopthewor<wbr>ld_linux_libcdep.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_stopt<wbr>heworld_linux_libcdep.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_stop<wbr>theworld_linux_libcdep.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_sto<wbr>ptheworld_linux_libcdep.cc?rev<wbr>=293610&r1=293609&r2=293610&<wbr>view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/lib/s<wbr>anitizer_common/sanitizer_stop<wbr>theworld_linux_libcdep.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
---<br>
compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_stopthewor<wbr>ld_linux_libcdep.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_stopthewor<wbr>ld_linux_libcdep.cc<br>
Tue Jan 31 01:15:37 2017<br>
@@ -16,7 +16,7 @@<br>
<br>
#if SANITIZER_LINUX && (defined(__x86_64__) ||<br>
defined(__mips__) || \<br>
defined(__aarch64__) ||<br>
defined(__powerpc64__) || \<br>
- defined(__s390__))<br>
+ defined(__s390__) ||<br>
defined(__i386__))<br>
<br>
#include "sanitizer_stoptheworld.h"<br>
<br>
@@ -528,4 +528,4 @@ uptr SuspendedThreadsList::Register<wbr>Count<br>
<br>
#endif // SANITIZER_LINUX && (defined(__x86_64__) ||<br>
defined(__mips__)<br>
// || defined(__aarch64__) || defined(__powerpc64__)<br>
- // || defined(__s390__)<br>
+ // || defined(__s390__) || defined(__i386__)<br>
<br>
Modified: compiler-rt/trunk/test/asan/li<wbr>t.cfg<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>asan/lit.cfg?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>asan/lit.cfg?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/asan/lit.cfg?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>asan/lit.cfg?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/test/asan/li<wbr>t.cfg (original)<br>
+++ compiler-rt/trunk/test/asan/li<wbr>t.cfg Tue Jan 31<br>
01:15:37 2017<br>
@@ -205,7 +205,7 @@ if config.target_arch != 'arm' and confi<br>
config.available_features.<wbr>add('stable-runtime')<br>
<br>
# Turn on leak detection on 64-bit Linux.<br>
-if config.host_os == 'Linux' and config.target_arch ==<br>
'x86_64':<br>
+if config.host_os == 'Linux' and (config.target_arch ==<br>
'x86_64'<br>
or config.target_arch == 'i386'):<br>
config.available_features.<wbr>add('leak-detection')<br>
<br>
# Set LD_LIBRARY_PATH to pick dynamic runtime up properly.<br>
<br>
Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/disabler.cc?<wbr>rev=293610&r1=293609&r2=293610<wbr>&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/disabler.cc?<wbr>rev=293610&r1=293609&r2=293610<wbr>&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/disabler.cc?<wbr>rev=293610&r1=293609&r2=293610<wbr>&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/disabler.cc?<wbr>rev=293610&r1=293609&r2=293610<wbr>&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc<br>
(original)<br>
+++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc Tue<br>
Jan 31<br>
01:15:37 2017<br>
@@ -1,5 +1,5 @@<br>
// Test for ScopedDisabler.<br>
-// RUN:<br>
LSAN_BASE="report_objects=1:u<wbr>se_registers=0:use_stacks=0:us<wbr>e_globals=0:use_tls=0"<br>
+// RUN:<br>
LSAN_BASE="detect_leaks=1:rep<wbr>ort_objects=1:use_registers=0:<wbr>use_stacks=0:use_globals=0:<wbr>use_tls=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |<br>
FileCheck %s<br>
<br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/do_leak_check_overrid<wbr>e.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/do_leak_check_<wbr>override.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/do_leak_check_<wbr>override.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/do_leak_check_<wbr>override.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/do_leak_check_<wbr>override.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
---<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/do_leak_check_overrid<wbr>e.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/do_leak_check_overrid<wbr>e.cc<br>
Tue Jan 31 01:15:37 2017<br>
@@ -1,7 +1,7 @@<br>
// Test for __lsan_do_leak_check(). We test it by making<br>
the leak<br>
check run<br>
// before global destructors, which also tests<br>
compatibility with<br>
HeapChecker's<br>
// "normal" mode (LSan runs in "strict" mode by default).<br>
-// RUN: LSAN_BASE="use_stacks=0:use_re<wbr>gisters=0"<br>
+// RUN:<br>
LSAN_BASE="detect_leaks=1:use_<wbr>stacks=0:use_registers=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck<br>
--check-prefix=CHECK-strict %s<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |<br>
FileCheck<br>
--check-prefix=CHECK-normal %s<br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/high_allocator_conten<wbr>tion.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/high_allocator_<wbr>contention.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/high_allocator_<wbr>contention.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/high_allocator<wbr>_contention.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/high_allocator_<wbr>contention.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
---<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/high_allocator_conten<wbr>tion.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/test/lsan/T<wbr>estCases/high_allocator_conten<wbr>tion.cc<br>
Tue Jan 31 01:15:37 2017<br>
@@ -1,6 +1,6 @@<br>
// A benchmark that executes malloc/free pairs in parallel.<br>
// Usage: ./a.out number_of_threads<br>
total_number_of_allocations<br>
-// RUN: LSAN_BASE="use_ld_allocations=<wbr>0"<br>
+// RUN: LSAN_BASE="detect_leaks=1:use_<wbr>ld_allocations=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 5 1000000 2>&1<br>
#include <assert.h><br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/large_allocation_leak.<wbr>cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/large_allocatio<wbr>n_leak.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/large_allocatio<wbr>n_leak.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/large_allocati<wbr>on_leak.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/large_allocatio<wbr>n_leak.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
---<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/large_allocation_leak.<wbr>cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/large_allocation_leak.<wbr>cc<br>
Tue Jan 31 01:15:37 2017<br>
@@ -1,8 +1,12 @@<br>
// Test that LargeMmapAllocator's chunks aren't reachable via<br>
some internal data structure.<br>
-// RUN:<br>
LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
+// RUN:<br>
LSAN_BASE="detect_leaks=1:rep<wbr>ort_objects=1:use_stacks=0:use<wbr>_registers=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |<br>
FileCheck %s<br>
<br>
+// For 32 bit LSan it's pretty likely that large chunks are<br>
"reachable" from some<br>
+// internal data structures (e.g. Glibc global data).<br>
+// UNSUPPORTED: x86<br>
+<br>
#include <stdio.h><br>
#include <stdlib.h><br>
#include "sanitizer_common/print_addres<wbr>s.h"<br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/leak_check_at_exit.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/leak_check_at_<wbr>exit.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/leak_check_at_<wbr>exit.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/leak_check_at_<wbr>exit.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/leak_check_at_<wbr>exit.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
---<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/leak_check_at_exit.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/leak_check_at_exit.cc<br>
Tue Jan 31 01:15:37 2017<br>
@@ -1,5 +1,5 @@<br>
// Test for the leak_check_at_exit flag.<br>
-// RUN: LSAN_BASE="use_stacks=0:use_re<wbr>gisters=0"<br>
+// RUN:<br>
LSAN_BASE="detect_leaks=1:use_<wbr>stacks=0:use_registers=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |<br>
FileCheck<br>
%s --check-prefix=CHECK-do<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |<br>
FileCheck %s<br>
--check-prefix=CHECK-do<br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/link_turned_off.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/link_turned_<wbr>off.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/link_turned_<wbr>off.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/link_turned_<wbr>off.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/link_turned_<wbr>off.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>>><br>
=============================<wbr>==============================<wbr>===================<br>
--- compiler-rt/trunk/test/lsan/Te<wbr>stCases/link_turned_off.cc<br>
(original)<br>
+++<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/link_turned_off.cc Tue<br>
Jan 31 01:15:37 2017<br>
@@ -1,5 +1,5 @@<br>
// Test for disabling LSan at link-time.<br>
-// RUN: LSAN_BASE="use_stacks=0:use_re<wbr>gisters=0"<br>
+// RUN:<br>
LSAN_BASE="detect_leaks=1:use_<wbr>stacks=0:use_registers=0"<br>
// RUN: %clangxx_lsan %s -o %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE %run %t<br>
// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |<br>
FileCheck %s<br>
<br>
Modified:<br>
compiler-rt/trunk/test/lsan/Te<wbr>stCases/pointer_to_self.cc<br>
URL:<br>
<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/<wbr>lsan/TestCases/pointer_to_<wbr>self.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/pointer_to_<wbr>self.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/test<wbr>/lsan/TestCases/pointer_to_<wbr>self.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a><br>
<<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-p<wbr>roject/compiler-rt/trunk/test/<wbr>lsan/TestCases/pointer_to_<wbr>self.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>>></blockquote>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--Artem Belevich</div></div>
</div>