[asan] fix a leak in tds (https://code.google.com/p/address-sanitizer/issues/detail?id=233)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194572 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Don't call __asan_init() from certain interceptors on Darwin.

Fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58994, which hadn't
manifested in LLVM because libclang_rt.asan_osx_dynamic.dylib used to depend on
the Foundation framework.
Without that dependency some interceptors may be called from the system
libraries before libSystem_initializer() is called, which lead to assertion
failures in sanitizer_mac.cc (_NSGetEnviron() returns NULL).

To fix the problem we fall back to the original functions in the common
libsanitizer interceptors and the __cxa_atexit() interceptor on Darwin.

This patch also prints a better error message in the case _NSGetEnviron()
returns NULL.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194573 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Use new feature of FileCheck: provide multiple --check-prefix args

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194578 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Do not rely on malloc context in allocator reports.

Invoke a fatal stack trace unwinder when ASan prints allocator-relevant
error reports (double-free, alloc-dealloc-mismatch, invalid-free).
Thus we'll be able to print complete stack trace even if allocation/free
stacks are not stored (malloc_context_size=0).

Based on the patch by Yuri Gribov!


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194579 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Use same PC threshold in slow unwinder on all platforms

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194580 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Remove the stale dependency on the Foundation framework from the dynamic ASan runtime.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194583 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Add print_summary runtime flag to disable error summaries (UBSan doesn't need them)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194685 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Print symbolized stack frame using a single Printf() call.

This reduces the number of "write" syscalls performed to print a single
stack frame description, and makes sanitizer output less intermixed with
program output. Also, add a number of unit tests.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194686 91177308-0d34-0410-b5e6-96231b3b80d8
[UBSan] Update UBSan location rendering to match r194686

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194687 91177308-0d34-0410-b5e6-96231b3b80d8