[compiler-rt] r293610 - [lsan] Renable LSan for x86 Linux

Maxim Ostapenko via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 3 04:10:14 PST 2017


On 02/02/17 21:27, Kostya Serebryany wrote:
>
>
> On Thu, Feb 2, 2017 at 12:55 AM, Maxim Ostapenko via llvm-commits 
> <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>
>     Hi,
>
>     On 02/02/17 01:53, Artem Belevich via llvm-commits wrote:
>
>         Hi,
>
>         After this change
>         SanitizerCommon-lsan-i386-Linux::sem_init_glibc.cc has been
>         consistently failing on my build bot:
>         http://lab.llvm.org:8011/builders/clang-cuda-build/builds/4293
>         <http://lab.llvm.org:8011/builders/clang-cuda-build/builds/4293>
>
>         Any ideas what's wrong? It's an Ubuntu 16.04 x64 box, tests
>         are run on Release+asserts build of clang.
>
>
>     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.
>     But LSan actually doesn't intercept sem_init, thus the new
>     implementation is called. This can be observed via gdb:
>
>     a.out:
>     /home/max/src/llvm/projects/compiler-rt/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc:52:
>     int main(): Assertion `GET_SEM_VALUE(a) == 42' failed.
>
>     Program received signal SIGABRT, Aborted.
>     0xf7fda440 in __kernel_vsyscall ()
>     (gdb) bt
>     #0  0xf7fda440 in __kernel_vsyscall ()
>     #1  0xf7cde570 in raise () from
>     /home/max/install/glibc-2.24-32bit/lib/libc.so.6
>     #2  0xf7cdfbc6 in abort () from
>     /home/max/install/glibc-2.24-32bit/lib/libc.so.6
>     #3  0xf7cd7787 in __assert_fail_base () from
>     /home/max/install/glibc-2.24-32bit/lib/libc.so.6
>     #4  0xf7cd7837 in __assert_fail () from
>     /home/max/install/glibc-2.24-32bit/lib/libc.so.6
>     #5  0x0806ebc9 in main () at
>     /home/max/src/llvm/projects/compiler-rt/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc:52
>     (gdb) frame 5
>     #5  0x0806ebc9 in main () at
>     /home/max/src/llvm/projects/compiler-rt/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc:52
>     52      assert(GET_SEM_VALUE(a) == 42);
>     (gdb) p a
>     $1 = 84
>
>     Thus I see 2 options how to get rid of this failure:
>     1) Disable the test on LSan x86
>
>
> let's start from 1) and filling a bug for 2)

Done via r294001. I'll open a bug a bit later.

-Maxim

>     2) Check Glibc version at runtime and adjust corresponding
>     GET_SEM_VALUE(V) accordingly.
>
>     -Maxim
>
>
>         --Artem
>
>
>         On Mon, Jan 30, 2017 at 11:15 PM, Maxim Ostapenko via
>         llvm-commits <llvm-commits at lists.llvm.org
>         <mailto:llvm-commits at lists.llvm.org>
>         <mailto:llvm-commits at lists.llvm.org
>         <mailto:llvm-commits at lists.llvm.org>>> wrote:
>
>             Author: chefmax
>             Date: Tue Jan 31 01:15:37 2017
>             New Revision: 293610
>
>             URL:
>         http://llvm.org/viewvc/llvm-project?rev=293610&view=rev
>         <http://llvm.org/viewvc/llvm-project?rev=293610&view=rev>
>             <http://llvm.org/viewvc/llvm-project?rev=293610&view=rev
>         <http://llvm.org/viewvc/llvm-project?rev=293610&view=rev>>
>             Log:
>             [lsan] Renable LSan for x86 Linux
>
>             The missed clang part was committed at
>         https://reviews.llvm.org/rL293609
>         <https://reviews.llvm.org/rL293609>
>             <https://reviews.llvm.org/rL293609
>         <https://reviews.llvm.org/rL293609>> thus
>             we can reenable LSan for x86 Linux.
>
>             Differential Revision: https://reviews.llvm.org/D28609
>         <https://reviews.llvm.org/D28609>
>             <https://reviews.llvm.org/D28609
>         <https://reviews.llvm.org/D28609>>
>
>             Modified:
>                 compiler-rt/trunk/cmake/config-ix.cmake
>                 compiler-rt/trunk/lib/lsan/lsan_allocator.cc
>                 compiler-rt/trunk/lib/lsan/lsan_common.h
>                 compiler-rt/trunk/lib/lsan/lsan_interceptors.cc
>                 compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc
>                 compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
>                 compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h
>                  
>          compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
>                 compiler-rt/trunk/test/asan/lit.cfg
>                 compiler-rt/trunk/test/lsan/TestCases/disabler.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc
>                 compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc
>                 compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc
>                 compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc
>                 compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_registers.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc
>                
>         compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc
>                  
>          compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
>                  
>          compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc
>                 compiler-rt/trunk/test/lsan/TestCases/use_unaligned.cc
>                  
>          compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc
>                
>         compiler-rt/trunk/test/sanitizer_common/TestCases/corelimit.cc
>                 compiler-rt/trunk/test/sanitizer_common/lit.common.cfg
>                 compiler-rt/trunk/test/sanitizer_common/print_address.h
>
>             Modified: compiler-rt/trunk/cmake/config-ix.cmake
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/cmake/config-ix.cmake (original)
>             +++ compiler-rt/trunk/cmake/config-ix.cmake Tue Jan 31
>         01:15:37 2017
>             @@ -164,7 +164,7 @@ set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH
>              set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32}
>         ${ARM64}
>                  ${MIPS32} ${MIPS64} ${PPC64} ${S390X})
>              set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
>             -set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
>             +set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64}
>         ${ARM64})
>              set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}
>         ${PPC64})
>              set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32}
>         ${ARM64}
>             ${PPC64}
>                  ${MIPS32} ${MIPS64} ${S390X})
>
>             Modified: compiler-rt/trunk/lib/lsan/lsan_allocator.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/lsan/lsan_allocator.cc (original)
>             +++ compiler-rt/trunk/lib/lsan/lsan_allocator.cc Tue Jan 31
>             01:15:37 2017
>             @@ -28,12 +28,21 @@ namespace __lsan {
>              struct ChunkMetadata {
>                u8 allocated : 8;  // Must be first.
>                ChunkTag tag : 2;
>             +#if SANITIZER_WORDSIZE == 64
>                uptr requested_size : 54;
>             +#else
>             +  uptr requested_size : 32;
>             +  uptr padding : 22;
>             +#endif
>                u32 stack_trace_id;
>              };
>
>             -#if defined(__mips64) || defined(__aarch64__)
>             +#if defined(__mips64) || defined(__aarch64__) ||
>         defined(__i386__)
>             +#if defined(__i386__)
>             +static const uptr kMaxAllowedMallocSize = 1UL << 30;
>             +#else
>              static const uptr kMaxAllowedMallocSize = 4UL << 30;
>             +#endif
>              static const uptr kRegionSizeLog = 20;
>              static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >>
>             kRegionSizeLog;
>              typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12>
>         ByteMap;
>
>             Modified: compiler-rt/trunk/lib/lsan/lsan_common.h
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/lsan/lsan_common.h (original)
>             +++ compiler-rt/trunk/lib/lsan/lsan_common.h Tue Jan 31
>         01:15:37 2017
>             @@ -22,9 +22,19 @@
>              #include "sanitizer_common/sanitizer_stoptheworld.h"
>              #include "sanitizer_common/sanitizer_symbolizer.h"
>
>             +// LeakSanitizer relies on some Glibc's internals (e.g. TLS
>             machinery) thus
>             +// supported for Linux only. Also, LSan doesn't like 32 bit
>             architectures
>             +// because of "small" (4 bytes) pointer size that leads
>         to high
>             false negative
>             +// ratio on large leaks. But we still want to have it for
>         some 32
>             bit arches
>             +// (e.g. x86), see
>         https://github.com/google/sanitizers/issues/403
>         <https://github.com/google/sanitizers/issues/403>
>             <https://github.com/google/sanitizers/issues/403
>         <https://github.com/google/sanitizers/issues/403>>.
>             +// To enable LeakSanitizer on new architecture, one need
>         to implement
>             +// internal_clone function as well as (probably) adjust TLS
>             machinery for
>             +// new architecture inside sanitizer library.
>              #if (SANITIZER_LINUX && !SANITIZER_ANDROID) &&
>             (SANITIZER_WORDSIZE == 64) \
>                   && (defined(__x86_64__) || defined(__mips64) ||   
>          defined(__aarch64__))
>              #define CAN_SANITIZE_LEAKS 1
>             +#elif SANITIZER_LINUX && !SANITIZER_ANDROID &&
>         defined(__i386__)
>             +#define CAN_SANITIZE_LEAKS 1
>              #else
>              #define CAN_SANITIZE_LEAKS 0
>              #endif
>
>             Modified: compiler-rt/trunk/lib/lsan/lsan_interceptors.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/lsan/lsan_interceptors.cc (original)
>             +++ compiler-rt/trunk/lib/lsan/lsan_interceptors.cc Tue Jan 31
>             01:15:37 2017
>             @@ -27,6 +27,8 @@
>              #include "lsan_common.h"
>              #include "lsan_thread.h"
>
>             +#include <stddef.h>
>             +
>              using namespace __lsan;
>
>              extern "C" {
>             @@ -186,13 +188,13 @@ INTERCEPTOR(void, cfree, void *p) ALIAS(
>                return Allocate(stack, size, 1, kAlwaysClearMemory);
>
>              INTERCEPTOR_ATTRIBUTE
>             -void *operator new(uptr size) { OPERATOR_NEW_BODY; }
>             +void *operator new(size_t size) { OPERATOR_NEW_BODY; }
>              INTERCEPTOR_ATTRIBUTE
>             -void *operator new[](uptr size) { OPERATOR_NEW_BODY; }
>             +void *operator new[](size_t size) { OPERATOR_NEW_BODY; }
>              INTERCEPTOR_ATTRIBUTE
>             -void *operator new(uptr size, std::nothrow_t const&) {
>             OPERATOR_NEW_BODY; }
>             +void *operator new(size_t size, std::nothrow_t const&) {
>             OPERATOR_NEW_BODY; }
>              INTERCEPTOR_ATTRIBUTE
>             -void *operator new[](uptr size, std::nothrow_t const&) {
>             OPERATOR_NEW_BODY; }
>             +void *operator new[](size_t size, std::nothrow_t const&) {
>             OPERATOR_NEW_BODY; }
>
>              #define OPERATOR_DELETE_BODY \
>                ENSURE_LSAN_INITED;        \
>
>             Modified:
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc
>             (original)
>             +++
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_flags.inc Tue
>             Jan 31 01:15:37 2017
>             @@ -62,7 +62,8 @@ COMMON_FLAG(
>              COMMON_FLAG(
>                  int, verbosity, 0,
>                  "Verbosity level (0 - silent, 1 - a bit of output, 2+
>         - more
>             output).")
>             -COMMON_FLAG(bool, detect_leaks, true, "Enable memory leak
>             detection.")
>             +COMMON_FLAG(bool, detect_leaks, SANITIZER_WORDSIZE == 64,
>             +            "Enable memory leak detection.")
>              COMMON_FLAG(
>                  bool, leak_check_at_exit, true,
>                  "Invoke leak checking in an atexit handler. Has no
>         effect if "
>
>             Modified:
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
>             (original)
>             +++
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1175,6 +1175,71 @@ uptr internal_clone(int (*fn)(void
>         *), v
>                             "r0", "r29", "r27", "r28");
>                return res;
>              }
>             +#elif defined(__i386__) && SANITIZER_LINUX
>             +uptr internal_clone(int (*fn)(void *), void *child_stack, int
>             flags, void *arg,
>             +                    int *parent_tidptr, void *newtls, int
>             *child_tidptr) {
>             +  int res;
>             +  if (!fn || !child_stack)
>             +    return -EINVAL;
>             +  CHECK_EQ(0, (uptr)child_stack % 16);
>             +  child_stack = (char *)child_stack - 7 * sizeof(unsigned
>         int);
>             +  ((unsigned int *)child_stack)[0] = (uptr)flags;
>             +  ((unsigned int *)child_stack)[1] = (uptr)0;
>             +  ((unsigned int *)child_stack)[2] = (uptr)fn;
>             +  ((unsigned int *)child_stack)[3] = (uptr)arg;
>             +  __asm__ __volatile__(
>             +                       /* %eax = syscall(%eax =
>         SYSCALL(clone),
>             +                        *                %ebx = flags,
>             +                        *                %ecx = child_stack,
>             +                        *                %edx =
>         parent_tidptr,
>             +                        *                %esi  = new_tls,
>             +                        *                %edi = child_tidptr)
>             +                        */
>             +
>             +                        /* Obtain flags */
>             +                        "movl    (%%ecx), %%ebx\n"
>             +                        /* Do the system call */
>             +                        "pushl   %%ebx\n"
>             +                        "pushl   %%esi\n"
>             +                        "pushl   %%edi\n"
>             +                        /* Remember the flag value.  */
>             +                        "movl    %%ebx, (%%ecx)\n"
>             +                        "int     $0x80\n"
>             +                        "popl    %%edi\n"
>             +                        "popl    %%esi\n"
>             +                        "popl    %%ebx\n"
>             +
>             +                        /* if (%eax != 0)
>             +                         *   return;
>             +                         */
>             +
>             +                        "test    %%eax,%%eax\n"
>             +                        "jnz    1f\n"
>             +
>             +                        /* terminate the stack frame */
>             +                        "xorl   %%ebp,%%ebp\n"
>             +                        /* Call FN. */
>             +                        "call    *%%ebx\n"
>             +#ifdef PIC
>             +                        "call    here\n"
>             +                        "here:\n"
>             +                        "popl    %%ebx\n"
>             +                        "addl
>         $_GLOBAL_OFFSET_TABLE_+[.-here],
>             %%ebx\n"
>             +#endif
>             +                        /* Call exit */
>             +                        "movl    %%eax, %%ebx\n"
>             +                        "movl    %2, %%eax\n"
>             +                        "int     $0x80\n"
>             +                        "1:\n"
>             +                       : "=a" (res)
>             +                       : "a"(SYSCALL(clone)),
>         "i"(SYSCALL(exit)),
>             +                         "c"(child_stack),
>             +                         "d"(parent_tidptr),
>             +                         "S"(newtls),
>             +                         "D"(child_tidptr)
>             +                       : "memory");
>             +  return res;
>             +}
>              #endif  // defined(__x86_64__) && SANITIZER_LINUX
>
>              #if SANITIZER_ANDROID
>
>             Modified:
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h
>             (original)
>             +++
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.h Tue
>             Jan 31 01:15:37 2017
>             @@ -48,7 +48,7 @@ int internal_sigaction_syscall(int signu
>              #endif
>              void internal_sigdelset(__sanitizer_sigset_t *set, int
>         signum);
>              #if defined(__x86_64__) || defined(__mips__) ||
>             defined(__aarch64__) \
>             -  || defined(__powerpc64__) || defined(__s390__)
>             +  || defined(__powerpc64__) || defined(__s390__) ||
>         defined(__i386__)
>              uptr internal_clone(int (*fn)(void *), void *child_stack, int
>             flags, void *arg,
>                                  int *parent_tidptr, void *newtls, int
>             *child_tidptr);
>              #endif
>
>             Modified:
>            
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
>             URL:
>         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
>         <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>
>            
>         <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
>         <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>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -16,7 +16,7 @@
>
>              #if SANITIZER_LINUX && (defined(__x86_64__) ||
>         defined(__mips__) || \
>                                      defined(__aarch64__) ||
>             defined(__powerpc64__) || \
>             -                        defined(__s390__))
>             +                        defined(__s390__) ||
>         defined(__i386__))
>
>              #include "sanitizer_stoptheworld.h"
>
>             @@ -528,4 +528,4 @@ uptr SuspendedThreadsList::RegisterCount
>
>              #endif  // SANITIZER_LINUX && (defined(__x86_64__) ||
>             defined(__mips__)
>                      // || defined(__aarch64__) || defined(__powerpc64__)
>             -        // || defined(__s390__)
>             +        // || defined(__s390__) || defined(__i386__)
>
>             Modified: compiler-rt/trunk/test/asan/lit.cfg
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/lit.cfg?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/asan/lit.cfg (original)
>             +++ compiler-rt/trunk/test/asan/lit.cfg Tue Jan 31
>         01:15:37 2017
>             @@ -205,7 +205,7 @@ if config.target_arch != 'arm' and confi
>                config.available_features.add('stable-runtime')
>
>              # Turn on leak detection on 64-bit Linux.
>             -if config.host_os == 'Linux' and config.target_arch ==
>         'x86_64':
>             +if config.host_os == 'Linux' and (config.target_arch ==
>         'x86_64'
>             or config.target_arch == 'i386'):
>                config.available_features.add('leak-detection')
>
>              # Set LD_LIBRARY_PATH to pick dynamic runtime up properly.
>
>             Modified: compiler-rt/trunk/test/lsan/TestCases/disabler.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/disabler.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/disabler.cc
>         (original)
>             +++ compiler-rt/trunk/test/lsan/TestCases/disabler.cc Tue
>         Jan 31
>             01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test for ScopedDisabler.
>             -// RUN:
>            
>         LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |
>         FileCheck %s
>
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc
>             URL:
>         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
>         <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>
>            
>         <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
>         <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>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/do_leak_check_override.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,7 +1,7 @@
>              // Test for __lsan_do_leak_check(). We test it by making
>         the leak
>             check run
>              // before global destructors, which also tests
>         compatibility with
>             HeapChecker's
>              // "normal" mode (LSan runs in "strict" mode by default).
>             -// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck
>             --check-prefix=CHECK-strict %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |
>         FileCheck
>             --check-prefix=CHECK-normal %s
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/high_allocator_contention.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,6 +1,6 @@
>              // A benchmark that executes malloc/free pairs in parallel.
>              // Usage: ./a.out number_of_threads
>         total_number_of_allocations
>             -// RUN: LSAN_BASE="use_ld_allocations=0"
>             +// RUN: LSAN_BASE="detect_leaks=1:use_ld_allocations=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 5 1000000 2>&1
>              #include <assert.h>
>
>             Modified:
>             compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/large_allocation_leak.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,8 +1,12 @@
>              // Test that LargeMmapAllocator's chunks aren't reachable via
>             some internal data structure.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |
>         FileCheck %s
>
>             +// For 32 bit LSan it's pretty likely that large chunks are
>             "reachable" from some
>             +// internal data structures (e.g. Glibc global data).
>             +// UNSUPPORTED: x86
>             +
>              #include <stdio.h>
>              #include <stdlib.h>
>              #include "sanitizer_common/print_address.h"
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc
>             URL:
>         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
>         <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>
>            
>         <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
>         <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>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/leak_check_at_exit.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test for the leak_check_at_exit flag.
>             -// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |
>         FileCheck
>             %s --check-prefix=CHECK-do
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |
>         FileCheck %s
>             --check-prefix=CHECK-do
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test for disabling LSan at link-time.
>             -// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |
>         FileCheck %s
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/pointer_to_self.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,6 +1,6 @@
>              // Regression test: pointers to self should not confuse
>         LSan into
>             thinking the
>              // object is indirectly leaked. Only external pointers count.
>             -// RUN: LSAN_BASE="report_objects=1:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run
>         %t 2>&1 |
>             FileCheck %s
>
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/print_suppressions.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,6 +1,6 @@
>              // Print matched suppressions only if
>         print_suppressions=1 AND at
>             least one is
>              // matched. Default is print_suppressions=true.
>             -// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:print_suppressions=0 %run
>         %t 2>&1
>             | FileCheck %s --check-prefix=CHECK-dont-print
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s
>             --check-prefix=CHECK-dont-print
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/recoverable_leak_check.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test for on-demand leak checking.
>             -// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t foo 2>&1 |
>         FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s
>
>             Modified:
>             compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/register_root_region.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test for __lsan_(un)register_root_region().
>             -// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 |
>         FileCheck %s
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/stale_stack_leak.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that out-of-scope local variables are ignored by
>         LSan.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_registers=0:use_stacks=1"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=1"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |
>         FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE":exitcode=0" %run %t 2>&1 |
>             FileCheck --check-prefix=CHECK-sanity %s
>
>             Modified:
>             compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/suppressions_default.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,4 +1,4 @@
>             -// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 |
>         FileCheck %s
>
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/suppressions_file.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,4 +1,4 @@
>             -// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
>              // RUN: %clangxx_lsan %s -o %t
>
>              // RUN: rm -f %t.supp
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/use_after_return.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,6 +1,6 @@
>              // Test that fake stack (introduced by ASan's
>         use-after-return
>             mode) is included
>              // in the root set.
>             -// RUN: LSAN_BASE="report_objects=1:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
>              // RUN: %clangxx_lsan %s -O2 -o %t
>              // RUN:
>             ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1
>             LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 |
>         FileCheck %s
>              // RUN:
>             ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1
>             LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_initialized.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that initialized globals are included in the root
>         set.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=0" not %run
>         %t 2>&1
>             | FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=1" %run %t 2>&1
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_globals_uninitialized.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that uninitialized globals are included in the
>         root set.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=0" not %run
>         %t 2>&1
>             | FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=1" %run %t 2>&1
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/use_poisoned_asan.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,6 +1,6 @@
>              // ASan-poisoned memory should be ignored if use_poisoned
>         is false.
>              // REQUIRES: asan
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_poisoned=0" not %run
>         %t 2>&1
>             | FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_poisoned=1" %run %t 2>&1
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_registers.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_registers.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/use_registers.cc
>         (original)
>             +++ compiler-rt/trunk/test/lsan/TestCases/use_registers.cc
>         Tue Jan
>             31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that registers of running threads are included in the
>             root set.
>             -// RUN: LSAN_BASE="report_objects=1:use_stacks=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0"
>              // RUN: %clangxx_lsan -pthread %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_registers=0" not %run %t
>             2>&1 | FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_registers=1" %run %t
>         2>&1
>
>             Modified: compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc
>         (original)
>             +++ compiler-rt/trunk/test/lsan/TestCases/use_stacks.cc
>         Tue Jan 31
>             01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that stack of main thread is included in the root
>         set.
>             -// RUN: LSAN_BASE="report_objects=1:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run
>         %t 2>&1 |
>             FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             ---
>         compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/use_stacks_threaded.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that stacks of non-main threads are included in
>         the root set.
>             -// RUN: LSAN_BASE="report_objects=1:use_registers=0"
>             +// RUN:
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
>              // RUN: %clangxx_lsan -pthread %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run
>         %t 2>&1 |
>             FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>            
>         ==============================================================================
>             --- compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc
>             (original)
>             +++
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_dynamic.cc Tue
>             Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that dynamically allocated TLS space is included
>         in the
>             root set.
>             -// RUN:
>            
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0"
>              // RUN: %clangxx %s -DBUILD_DSO -fPIC -shared -o %t-so.so
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t
>         2>&1 |
>             FileCheck %s
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
>             URL:
>         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
>         <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>
>            
>         <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
>         <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>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that dynamically allocated thread-specific storage is
>             included in the root set.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t
>         2>&1 |
>             FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1
>
>             Modified:
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.cc
>             URL:
>         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
>         <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>
>            
>         <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
>         <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>>
>            
>         ==============================================================================
>             ---
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.cc
>             (original)
>             +++
>            
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_pthread_specific_static.cc
>             Tue Jan 31 01:15:37 2017
>             @@ -1,5 +1,5 @@
>              // Test that statically allocated thread-specific storage is
>             included in the root set.
>             -// RUN:
>         LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
>             +// RUN:
>            
>         LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
>              // RUN: %clangxx_lsan %s -o %t
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t
>         2>&1 |
>             FileCheck %s
>              // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1
>
>             Modified:
>         compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc
>             URL:
>         http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc?rev=293610&r1=293609&r2=293610&view=diff>
>            
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc?rev=293610&r1=293609&r2=293610&view=diff
>         <http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/use_tls_static.cc?rev=293610&r1=293609&r2=293610&view=diff>>
>
>



More information about the llvm-commits mailing list