[ASAN] Add macro denoting availability of new `__asan_handle_no_return()` function.

Summary:
Libc++abi attempts to use the newly added `__asan_handle_no_return()` when built under ASAN. Unfortunately older versions of compiler-rt do not provide this symbol, and so libc++abi needs a way to detect if `asan_interface.h` actually provides the function.

This patch adds the macro `SANITIZER_ASAN_INTERFACE_HAS_HANDLE_NO_RETURN` which can be used to detect the availability of the new function.

Reviewers: phosek, kcc, vitalybuka, alekseyshl

Reviewed By: phosek

Subscribers: mclow.lists, cfe-commits

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

llvm-svn: 313303
This commit is contained in:
Eric Fiselier 2017-09-14 22:19:10 +00:00
parent 1f2f57a7ea
commit 6892062f7c
1 changed files with 4 additions and 0 deletions

View File

@ -148,6 +148,10 @@ extern "C" {
// before things like _exit and execl to avoid false positives on stack. // before things like _exit and execl to avoid false positives on stack.
void __asan_handle_no_return(void); void __asan_handle_no_return(void);
// Required to allow ASAN versions of libc++abi to build against older
// versions of compiler-rt that do not provide this interface.
# define SANITIZER_ASAN_INTERFACE_HAS_HANDLE_NO_RETURN
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"
#endif #endif