[PATCH] D37872: [libc++abi] Fix ASAN build with older compiler-rt versions.

2017-09-14 Thread Petr Hosek via Phabricator via cfe-commits
phosek accepted this revision.
phosek added a comment.
This revision is now accepted and ready to land.

LGTM


https://reviews.llvm.org/D37872



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D37872: [libc++abi] Fix ASAN build with older compiler-rt versions.

2017-09-14 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision.
Herald added a subscriber: dberris.

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 https://reviews.llvm.org/D37871


https://reviews.llvm.org/D37872

Files:
  src/cxa_exception.cpp


Index: src/cxa_exception.cpp
===
--- src/cxa_exception.cpp
+++ src/cxa_exception.cpp
@@ -222,7 +222,8 @@
 
 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


Index: src/cxa_exception.cpp
===
--- src/cxa_exception.cpp
+++ src/cxa_exception.cpp
@@ -222,7 +222,8 @@
 
 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
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits