[PATCH] D45455: [CFI] Disable CFI checks for __cxa_decrement_exception_refcount
This revision was automatically updated to reflect the committed changes. Closed by commit rL329629: [CFI] Disable CFI checks for __cxa_decrement_exception_refcount (authored by vlad.tsyrklevich, committed by ). Herald added a subscriber: llvm-commits. Repository: rL LLVM https://reviews.llvm.org/D45455 Files: libcxxabi/trunk/include/__cxxabi_config.h libcxxabi/trunk/src/cxa_exception.cpp Index: libcxxabi/trunk/src/cxa_exception.cpp === --- libcxxabi/trunk/src/cxa_exception.cpp +++ libcxxabi/trunk/src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: libcxxabi/trunk/include/__cxxabi_config.h === --- libcxxabi/trunk/include/__cxxabi_config.h +++ libcxxabi/trunk/include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H Index: libcxxabi/trunk/src/cxa_exception.cpp === --- libcxxabi/trunk/src/cxa_exception.cpp +++ libcxxabi/trunk/src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: libcxxabi/trunk/include/__cxxabi_config.h === --- libcxxabi/trunk/include/__cxxabi_config.h +++ libcxxabi/trunk/include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D45455: [CFI] Disable CFI checks for __cxa_decrement_exception_refcount
This revision was automatically updated to reflect the committed changes. Closed by commit rCXXA329629: [CFI] Disable CFI checks for __cxa_decrement_exception_refcount (authored by vlad.tsyrklevich, committed by ). Changed prior to commit: https://reviews.llvm.org/D45455?vs=141733&id=141752#toc Repository: rL LLVM https://reviews.llvm.org/D45455 Files: include/__cxxabi_config.h src/cxa_exception.cpp Index: src/cxa_exception.cpp === --- src/cxa_exception.cpp +++ src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: include/__cxxabi_config.h === --- include/__cxxabi_config.h +++ include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H Index: src/cxa_exception.cpp === --- src/cxa_exception.cpp +++ src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: include/__cxxabi_config.h === --- include/__cxxabi_config.h +++ include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D45455: [CFI] Disable CFI checks for __cxa_decrement_exception_refcount
vlad.tsyrklevich created this revision. Herald added subscribers: cfe-commits, christof. exception_header->exceptionDestructor is a void(*)(void*) function pointer; however, it can point to destructors like std:: exception::~exception that don't match that type signature. Repository: rCXXA libc++abi https://reviews.llvm.org/D45455 Files: include/__cxxabi_config.h src/cxa_exception.cpp Index: src/cxa_exception.cpp === --- src/cxa_exception.cpp +++ src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: include/__cxxabi_config.h === --- include/__cxxabi_config.h +++ include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H Index: src/cxa_exception.cpp === --- src/cxa_exception.cpp +++ src/cxa_exception.cpp @@ -630,8 +630,8 @@ Requires: If thrown_object is not NULL, it is a native exception. */ -void -__cxa_decrement_exception_refcount(void *thrown_object) throw() { +_LIBCXXABI_NO_CFI +void __cxa_decrement_exception_refcount(void *thrown_object) throw() { if (thrown_object != NULL ) { __cxa_exception* exception_header = cxa_exception_from_thrown_object(thrown_object); Index: include/__cxxabi_config.h === --- include/__cxxabi_config.h +++ include/__cxxabi_config.h @@ -60,4 +60,14 @@ #define _LIBCXXABI_WEAK __attribute__((__weak__)) #endif +#if defined(__clang__) +#define _LIBCXXABI_COMPILER_CLANG +#endif + +#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) +#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCXXABI_NO_CFI +#endif + #endif // CXXABI_CONFIG_H ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits