[ASan/Win] Refactor __interception::OverrideFunction a bit, allow the orig_old_func parameter to be zero

Reviewed at http://reviews.llvm.org/D3798

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@208989 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Don't build libcxx_tsan with compilers other than Clang

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209003 91177308-0d34-0410-b5e6-96231b3b80d8
Exclude several ASan tests from test suite if we're using GCC

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209013 91177308-0d34-0410-b5e6-96231b3b80d8
[TSan] Improve support for running TSan test suite with GCC-TSan.

Test results with GCC-4.9.0: 78 expected passes, 74 unexpected failures.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209014 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: Support profiling dlopen'd shared libraries

Shared objects are hard.  After this commit, we do the right thing when
profiling two separate shared objects that have been dlopen'd with
`RTLD_LOCAL`, when the main executable is *not* being profiled.

This mainly simplifies the writer logic.

  - At initialization, determine the output filename and truncate the
    file.  Depending on whether shared objects can see each other, this
    may happen multiple times.

  - At exit, each executable writes its own profile in append mode.

<rdar://problem/16918688>

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