<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>