<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 2, 2017 at 12:55 AM, Maxim Ostapenko via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On 02/02/17 01:53, Artem Belevich via llvm-commits wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
After this change SanitizerCommon-lsan-i386-Linu<wbr>x::sem_init_glibc.cc has been 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>
<br>
Any ideas what's wrong? It's an Ubuntu 16.04 x64 box, tests are run on Release+asserts build of clang.<br>
</blockquote>
<br>
I looked at the test and it seems that it relies on sanitizer common interceptor to pick the oldest version of sem_init function from Glibc.<br>
But LSan actually doesn't intercept sem_init, thus the new implementation is called. This can be observed via gdb:<br>
<br>
a.out: /home/max/src/llvm/projects/co<wbr>mpiler-rt/test/sanitizer_commo<wbr>n/TestCases/Linux/sem_init_<wbr>glibc.cc:52: 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 /home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#2  0xf7cdfbc6 in abort () from /home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#3  0xf7cd7787 in __assert_fail_base () from /home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#4  0xf7cd7837 in __assert_fail () from /home/max/install/glibc-2.24-3<wbr>2bit/lib/libc.so.6<br>
#5  0x0806ebc9 in main () at /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 /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></blockquote><div><br></div><div>let's start from 1) and filling a bug for 2)</div><div> </div><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 GET_SEM_VALUE(V) accordingly.<br>
<br>
-Maxim<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
--Artem<br>
<br>
<br>
On Mon, Jan 30, 2017 at 11:15 PM, 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>
    Author: chefmax<br>
    Date: Tue Jan 31 01:15:37 2017<br>
    New Revision: 293610<br>
<br>
    URL: <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>
    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>> 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>
<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/sanitiz<wbr>er_common/sanitizer_stopthewor<wbr>ld_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/Te<wbr>stCases/do_leak_check_override<wbr>.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/high_allocator_content<wbr>ion.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/large_allocation_leak.<wbr>cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/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/Te<wbr>stCases/print_suppressions.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/recoverable_leak_check<wbr>.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/register_root_region.<wbr>cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/stale_stack_leak.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/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/Te<wbr>stCases/use_globals_initialize<wbr>d.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_uninitiali<wbr>zed.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/Te<wbr>stCases/use_stacks_threaded.cc<br>
        compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_dynamic.cc<br>
           compiler-rt/trunk/test/lsan/T<wbr>estCases/use_tls_pthread_speci<wbr>fic_dynamic.cc<br>
           compiler-rt/trunk/test/lsan/T<wbr>estCases/use_tls_pthread_speci<wbr>fic_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/saniti<wbr>zer_common/TestCases/Posix/<wbr>sanitizer_set_death_callback_<wbr>test.cc<br>
        compiler-rt/trunk/test/sanitiz<wbr>er_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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/cmake/config<wbr>-ix.cmake (original)<br>
    +++ compiler-rt/trunk/cmake/config<wbr>-ix.cmake Tue Jan 31 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} ${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} ${ARM64})<br>
     set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64})<br>
     set(ALL_PROFILE_SUPPORTED_<wbr>ARCH ${X86} ${X86_64} ${ARM32} ${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>
    ==============================<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__) || 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> 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>
    ==============================<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 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 to high<br>
    false negative<br>
    +// ratio on large leaks. But we still want to have it for 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>
    +// To enable LeakSanitizer on new architecture, one need 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 && 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>
    ==============================<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: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_flags.inc<br>
    (original)<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+ - 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 effect if "<br>
<br>
    Modified: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.cc<br>
    (original)<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 *), 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 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 = SYSCALL(clone),<br>
    +                        *                %ebx = flags,<br>
    +                        *                %ecx = child_stack,<br>
    +                        *                %edx = 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    $_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)), "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: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_linux.h<br>
    (original)<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 signum);<br>
     #if defined(__x86_64__) || defined(__mips__) ||<br>
    defined(__aarch64__) \<br>
    -  || defined(__powerpc64__) || defined(__s390__)<br>
    +  || defined(__powerpc64__) || defined(__s390__) || 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/sanitize<wbr>r_common/sanitizer_stoptheworl<wbr>d_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>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stoptheworl<wbr>d_linux_libcdep.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stoptheworl<wbr>d_linux_libcdep.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -16,7 +16,7 @@<br>
<br>
     #if SANITIZER_LINUX && (defined(__x86_64__) || defined(__mips__) || \<br>
                             defined(__aarch64__) ||<br>
    defined(__powerpc64__) || \<br>
    -                        defined(__s390__))<br>
    +                        defined(__s390__) || 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>
    ==============================<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 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 == 'x86_64':<br>
    +if config.host_os == 'Linux' and (config.target_arch == '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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/disabler.cc Tue Jan 31<br>
    01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test for ScopedDisabler.<br>
    -// RUN:<br>
    LSAN_BASE="report_objects=1:us<wbr>e_registers=0:use_stacks=0:use<wbr>_globals=0:use_tls=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_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 | FileCheck %s<br>
<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/do_leak_check_override<wbr>.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>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/do_leak_check_override<wbr>.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/do_leak_check_override<wbr>.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 the leak<br>
    check run<br>
     // before global destructors, which also tests 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: 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 | FileCheck<br>
    --check-prefix=CHECK-normal %s<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/high_allocator_content<wbr>ion.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>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/high_allocator_content<wbr>ion.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/high_allocator_content<wbr>ion.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 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/large_allocation_leak.<wbr>cc<br>
    (original)<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: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_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 | 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: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/leak_check_at_exit.cc<br>
    (original)<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: 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 | FileCheck<br>
    %s --check-prefix=CHECK-do<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s<br>
    --check-prefix=CHECK-do<br>
<br>
    Modified: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/link_turned_off.cc<br>
    (original)<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: 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 | FileCheck %s<br>
<br>
    Modified: 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>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/pointer_to_self.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/pointer_to_self.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,6 +1,6 @@<br>
     // Regression test: pointers to self should not confuse LSan into<br>
    thinking the<br>
     // object is indirectly leaked. Only external pointers count.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_registers=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/print_suppressions.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/print_suppressions.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/print_suppressi<wbr>ons.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/print_suppressions.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/print_suppressi<wbr>ons.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/print_suppressions.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/print_suppressions.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,6 +1,6 @@<br>
     // Print matched suppressions only if print_suppressions=1 AND at<br>
    least one is<br>
     // matched. Default is print_suppressions=true.<br>
    -// RUN: LSAN_BASE="use_registers=0:use<wbr>_stacks=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:use_<wbr>registers=0:use_stacks=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:print_<wbr>suppressions=0 %run %t 2>&1<br>
    | FileCheck %s --check-prefix=CHECK-dont-prin<wbr>t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s<br>
    --check-prefix=CHECK-dont-prin<wbr>t<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/recoverable_leak_check<wbr>.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.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/recoverable_<wbr>leak_check.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/recoverable_leak_check.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/recoverable_<wbr>leak_check.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/recoverable_leak_check<wbr>.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/recoverable_leak_check<wbr>.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test for on-demand leak checking.<br>
    -// RUN: LSAN_BASE="use_stacks=0:use_re<wbr>gisters=0"<br>
    +// RUN: 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 foo 2>&1 | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/register_root_region.<wbr>cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/register_root_region.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/register_root_<wbr>region.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/register_root_region.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/register_root_<wbr>region.cc?rev=293610&r1=293609<wbr>&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/register_root_region.<wbr>cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/register_root_region.<wbr>cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test for __lsan_(un)register_root_regio<wbr>n().<br>
    -// RUN: LSAN_BASE="use_stacks=0:use_re<wbr>gisters=0"<br>
    +// RUN: 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 | FileCheck %s<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/stale_stack_leak.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/stale_stack_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/stale_stack_<wbr>leak.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/stale_stack_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/stale_stack_<wbr>leak.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/stale_stack_leak.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/stale_stack_leak.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that out-of-scope local variables are ignored by LSan.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_registers=0:use_stacks=1"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_registers=0:<wbr>use_stacks=1"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE":exitc<wbr>ode=0" %run %t 2>&1 |<br>
    FileCheck --check-prefix=CHECK-sanity %s<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_default.<wbr>cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_default.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/suppressions_<wbr>default.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/suppressions_default.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/suppressions_<wbr>default.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_default.<wbr>cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_default.<wbr>cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,4 +1,4 @@<br>
    -// RUN: LSAN_BASE="use_registers=0:use<wbr>_stacks=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:use_<wbr>registers=0:use_stacks=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s<br>
<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_file.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_file.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/suppressions_<wbr>file.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/suppressions_file.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/suppressions_<wbr>file.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_file.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/suppressions_file.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,4 +1,4 @@<br>
    -// RUN: LSAN_BASE="use_registers=0:use<wbr>_stacks=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:use_<wbr>registers=0:use_stacks=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
<br>
     // RUN: rm -f %t.supp<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_after_return.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.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/use_after_retur<wbr>n.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.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/use_after_retur<wbr>n.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_after_return.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_after_return.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,6 +1,6 @@<br>
     // Test that fake stack (introduced by ASan's use-after-return<br>
    mode) is included<br>
     // in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_registers=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_registers=0"<br>
     // RUN: %clangxx_lsan %s -O2 -o %t<br>
     // RUN:<br>
    ASAN_OPTIONS=$ASAN_OPTIONS:det<wbr>ect_stack_use_after_return=1<br>
    LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=0" not %run %t 2>&1 | FileCheck %s<br>
     // RUN:<br>
    ASAN_OPTIONS=$ASAN_OPTIONS:det<wbr>ect_stack_use_after_return=1<br>
    LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=1" %run %t 2>&1<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_initialize<wbr>d.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.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/use_globals_<wbr>initialized.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/use_globals_initialized.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/use_globals_<wbr>initialized.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_initialize<wbr>d.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_initialize<wbr>d.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that initialized globals are included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_g<wbr>lobals=0" not %run %t 2>&1<br>
    | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_g<wbr>lobals=1" %run %t 2>&1<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_uninitiali<wbr>zed.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.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/use_globals_<wbr>uninitialized.cc?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.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/use_globals_<wbr>uninitialized.cc?rev=293610&<wbr>r1=293609&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_uninitiali<wbr>zed.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_globals_uninitiali<wbr>zed.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that uninitialized globals are included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_g<wbr>lobals=0" not %run %t 2>&1<br>
    | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_g<wbr>lobals=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_poisoned_asan.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.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/use_poisoned_<wbr>asan.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/use_poisoned_asan.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/use_poisoned_<wbr>asan.cc?rev=293610&r1=293609&<wbr>r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_poisoned_asan.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_poisoned_asan.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,6 +1,6 @@<br>
     // ASan-poisoned memory should be ignored if use_poisoned is false.<br>
     // REQUIRES: asan<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_p<wbr>oisoned=0" not %run %t 2>&1<br>
    | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_p<wbr>oisoned=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_registers.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.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/use_registers.<wbr>cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.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/use_registers.<wbr>cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_registers.cc (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_registers.cc Tue Jan<br>
    31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that registers of running threads are included in the<br>
    root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0"<br>
     // RUN: %clangxx_lsan -pthread %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_r<wbr>egisters=0" not %run %t<br>
    2>&1 | FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_r<wbr>egisters=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.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/use_stacks.cc?<wbr>rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.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/use_stacks.cc?<wbr>rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks.cc (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks.cc Tue Jan 31<br>
    01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that stack of main thread is included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_registers=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks_threaded.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.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/use_stacks_<wbr>threaded.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/use_stacks_threaded.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/use_stacks_<wbr>threaded.cc?rev=293610&r1=<wbr>293609&r2=293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks_threaded.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_stacks_threaded.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that stacks of non-main threads are included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_registers=0"<br>
    +// RUN: LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_registers=0"<br>
     // RUN: %clangxx_lsan -pthread %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_s<wbr>tacks=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_dynamic.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.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/use_tls_dynamic<wbr>.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.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/use_tls_dynamic<wbr>.cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    --- compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_dynamic.cc<br>
    (original)<br>
    +++ compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_dynamic.cc Tue<br>
    Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that dynamically allocated TLS space is included in the<br>
    root set.<br>
    -// RUN:<br>
    LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0:use<wbr>_ld_allocations=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0:use_ld_allocations<wbr>=0"<br>
     // RUN: %clangxx %s -DBUILD_DSO -fPIC -shared -o %t-so.so<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_t<wbr>ls=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_dynamic.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.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/use_tls_pthread<wbr>_specific_dynamic.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.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/use_tls_pthread<wbr>_specific_dynamic.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_dynamic.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_dynamic.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that dynamically allocated thread-specific storage is<br>
    included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_t<wbr>ls=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_t<wbr>ls=1" %run %t 2>&1<br>
<br>
    Modified:<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_static.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.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/use_tls_pthread<wbr>_specific_static.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.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/use_tls_pthread<wbr>_specific_static.cc?rev=<wbr>293610&r1=293609&r2=293610&<wbr>view=diff</a>><br>
    ==============================<wbr>==============================<wbr>==================<br>
    ---<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_static.cc<br>
    (original)<br>
    +++<br>
    compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_pthread_specif<wbr>ic_static.cc<br>
    Tue Jan 31 01:15:37 2017<br>
    @@ -1,5 +1,5 @@<br>
     // Test that statically allocated thread-specific storage is<br>
    included in the root set.<br>
    -// RUN: LSAN_BASE="report_objects=1:us<wbr>e_stacks=0:use_registers=0"<br>
    +// RUN:<br>
    LSAN_BASE="detect_leaks=1:repo<wbr>rt_objects=1:use_stacks=0:use_<wbr>registers=0"<br>
     // RUN: %clangxx_lsan %s -o %t<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_t<wbr>ls=0" not %run %t 2>&1 |<br>
    FileCheck %s<br>
     // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_t<wbr>ls=1" %run %t 2>&1<br>
<br>
    Modified: compiler-rt/trunk/test/lsan/Te<wbr>stCases/use_tls_static.cc<br>
    URL:<br>
    <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.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/use_tls_static.<wbr>cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a><br>
    <<a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.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/use_tls_static.<wbr>cc?rev=293610&r1=293609&r2=<wbr>293610&view=diff</a>></blockquote>
</blockquote></div><br></div></div>