mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 14:48:27 +08:00
[libc++abi] Fix ASAN build with older compiler-rt versions.
Summary: compiler-rt recently added the `__asan_handle_no_return()` function that libc++abi needs to use, however older versions of compiler-rt don't provide this interface and that breaks the libc++abi build. This patch attempts to fix the issues by using a macro to detect if `asan_interface.h` is new enough to provide the function. See D37871 Reviewers: phosek, vitalybuka Reviewed By: phosek, vitalybuka Subscribers: dberris, cfe-commits Differential Revision: https://reviews.llvm.org/D37872 llvm-svn: 313304
This commit is contained in:
@@ -222,7 +222,8 @@ __cxa_throw(void *thrown_object, std::type_info *tinfo, void (*dest)(void *)) {
|
||||
|
||||
exception_header->unwindHeader.exception_cleanup = exception_cleanup_func;
|
||||
|
||||
#if __has_feature(address_sanitizer)
|
||||
#if __has_feature(address_sanitizer) && \
|
||||
defined(SANITIZER_ASAN_INTERFACE_HAS_HANDLE_NO_RETURN)
|
||||
// Inform the ASan runtime that now might be a good time to clean stuff up.
|
||||
__asan_handle_no_return();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user