llvm-project/compiler-rt/lib/interception
Etienne Bergeron 42cdfbcf3e [compiler-rt] Fix interception of multiple defined symbols.
Summary:
The MSVC compiler is generating multiple instance of the exception handler
when compiling on win64 with /MD.

see: https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx

Two tests were failing when running:
```
ninja check-asan-dynamic.
```

The tests were failing because only the first occurence of the function was patched.
The function `__C_specific_handler` is defined in `ntdll` and `vcruntime140`.

After this patch, there is still two remaining tests failing.
```
********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
Testing Time: 87.81s
********************
Failing Tests (2):
    AddressSanitizer-x86_64-windows-dynamic :: TestCases/Windows/dll_intercept_memchr.cc
    AddressSanitizer-x86_64-windows-dynamic :: TestCases/Windows/dll_intercept_memcpy_indirect.cc

  Expected Passes    : 342
  Passes With Retry  : 2
  Expected Failures  : 16
  Unsupported Tests  : 152
  Unexpected Failures: 2
```

Reviewers: rnk, vitalybuka

Subscribers: vitalybuka, llvm-commits, chrisha, dberris

Differential Revision: https://reviews.llvm.org/D24983

llvm-svn: 282614
2016-09-28 18:04:07 +00:00
..
tests [interception] Avoid duplicate declaration of isdigit in test 2016-09-14 15:02:32 +00:00
.clang-format Tell clang-format that (most) sanitizers are written using Google style guide. 2015-11-19 22:11:10 +00:00
CMakeLists.txt [compilter-rt] Add unittests for interception library 2016-07-06 19:15:11 +00:00
interception.h [compiler-rt] Do not introduce __sanitizer namespace globally 2016-09-15 21:02:18 +00:00
interception_linux.cc [sanitizer] Interception macros for sanitizers on FreeBSD; patch by Viktor Kutuzov 2014-02-24 08:37:41 +00:00
interception_linux.h [asan] Versioned interceptor for pthread_create. 2015-09-22 21:34:44 +00:00
interception_mac.cc
interception_mac.h Make some pthread_mutex_* and pthread_cond_* interceptors common. 2013-10-16 08:20:31 +00:00
interception_type_test.cc PR16532: work around old GCC bug in interception_type_test.cc 2013-12-05 13:29:46 +00:00
interception_win.cc [compiler-rt] Fix interception of multiple defined symbols. 2016-09-28 18:04:07 +00:00
interception_win.h [compiler-rt] Refactor the interception code on windows. 2016-07-11 23:02:18 +00:00