[sanitizer] Do not break the CFI unwind chain in clone().

Fixes build on clang 3.2, which doesn't support cfi_undefined. This change
doesn't seem to break the slow unwinder. Even if it does, the worst thing that
could happen is that we would not see a backtrace when a fatal error happens
under StopTheWorld.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192196 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Fix deadlock in StopTheWorld.

The tracer thread in StopTheWorld could wait on a mutex forever if the parent
process died before unlocking it. Use PR_SET_PDEATHSIG so that the parent would
kill the child in this scenario.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192210 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Fix the parent liveness check in StopTheWorld.

Comparing the parent PID with 1 isn't sufficient to ensure the parent is alive,
because of prctl(PR_SET_CHILD_SUBREAPER, ...). Compare with the real parent's
recorded PID instead.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192295 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add annotations to ignore synchronization operations

The annotations are AnnotateIgnoreSyncBegin/End,
may be useful to ignore some infrastructure synchronization
that introduces lots of false negatives.



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

Replace duplicate code snippet with function.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192357 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Simplify StackTrace::FastUnwindStack interface and fix a bug with one-frame stack traces

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192428 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192441 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Move the PTHREAD_DESTRUCTOR_ITERATIONS constant to sanitizer_linux.h.

Add a test.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192442 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Ninja style fix to r192442.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192443 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: fix epoll_ctl interceptor

Currently data-race-test unittests fail with the following false positive:


WARNING: ThreadSanitizer: data race (pid=20365)
  Write of size 8 at 0x7da000008050 by thread T54:
    #0 close tsan_interceptors.cc:1483 (racecheck_unittest-linux-amd64-O0+0x0000000eb34a)
    #1 NegativeTests_epoll::Worker2() unittest/posix_tests.cc:1148 (racecheck_unittest-linux-amd64-O0+0x0000000cc6b1)
    #2 MyThread::ThreadBody(MyThread*) unittest/./thread_wrappers_pthread.h:367 (racecheck_unittest-linux-amd64-O0+0x000000097500)

  Previous read of size 8 at 0x7da000008050 by thread T49:
    #0 epoll_ctl tsan_interceptors.cc:1646 (racecheck_unittest-linux-amd64-O0+0x0000000e9fee)
    #1 NegativeTests_epoll::Worker1() unittest/posix_tests.cc:1140 (racecheck_unittest-linux-amd64-O0+0x0000000cc5b5)
    #2 MyThread::ThreadBody(MyThread*) unittest/./thread_wrappers_pthread.h:367 (racecheck_unittest-linux-amd64-O0+0x000000097500)




git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192448 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: catch more races on file descriptors



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192452 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Define kPthreadDestructorIterations on POSIX systems.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192453 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Turn GetStackTrace() into StackTrace::Unwind()

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192533 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Remove StackTrace::max_depth field

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192534 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: allow to override OnFinalize() in front-ends that does not support weak functions (Go)



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192569 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer] Return implementation of StackTrace::CopyFrom to header

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192574 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: allow to override OnPrint() callback in Go runtime



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192576 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Regression test for r192575.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192577 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Don't die with internal ASan error on large buffer overflows

Summary:
Out-of-bound access may touch not-yet allocated or already freed
and recycled from quarantine chunks. We should treat this situation as
a "free-range memory access" and avoid printing any data about that
irrelevant chunk (which may be inconsistent).

This should fix https://code.google.com/p/address-sanitizer/issues/detail?id=183

Reviewers: kcc

Reviewed By: kcc

CC: timurrrr, llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1893

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192581 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Intercept strto(d|f|ld)_l and glibc-specific __strto(d|f|ld)_l.


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