|
|
@@ -30,8 +30,8 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain); |
|
|
|
|
|
#if defined(__has_feature) /* Clang */ |
|
|
# if __has_feature(address_sanitizer) /* is ASAN enabled? */ |
|
|
# define _Py_NO_ADDRESS_SAFETY_ANALYSIS \ |
|
|
__attribute__((no_address_safety_analysis)) |
|
|
# define _Py_NO_SANITIZE_ADDRESS \ |
|
|
__attribute__((no_sanitize("address"))) |
|
|
# endif |
|
|
# if __has_feature(thread_sanitizer) /* is TSAN enabled? */ |
|
|
# define _Py_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread)) |
|
|
@@ -41,8 +41,8 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain); |
|
|
# endif |
|
|
#elif defined(__GNUC__) |
|
|
# if defined(__SANITIZE_ADDRESS__) /* GCC 4.8+, is ASAN enabled? */ |
|
|
# define _Py_NO_ADDRESS_SAFETY_ANALYSIS \ |
|
|
__attribute__((no_address_safety_analysis)) |
|
|
# define _Py_NO_SANITIZE_ADDRESS \ |
|
|
__attribute__((no_sanitize_address)) |
|
|
# endif |
|
|
// TSAN is supported since GCC 5.1, but __SANITIZE_THREAD__ macro |
|
|
// is provided only since GCC 7. |
|
|
@@ -51,8 +51,8 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain); |
|
|
# endif |
|
|
#endif |
|
|
|
|
|
#ifndef _Py_NO_ADDRESS_SAFETY_ANALYSIS |
|
|
# define _Py_NO_ADDRESS_SAFETY_ANALYSIS |
|
|
#ifndef _Py_NO_SANITIZE_ADDRESS |
|
|
# define _Py_NO_SANITIZE_ADDRESS |
|
|
#endif |
|
|
#ifndef _Py_NO_SANITIZE_THREAD |
|
|
# define _Py_NO_SANITIZE_THREAD |
|
|
@@ -1350,7 +1350,7 @@ obmalloc controls. Since this test is needed at every entry point, it's |
|
|
extremely desirable that it be this fast. |
|
|
*/ |
|
|
|
|
|
static bool _Py_NO_ADDRESS_SAFETY_ANALYSIS |
|
|
static bool _Py_NO_SANITIZE_ADDRESS |
|
|
_Py_NO_SANITIZE_THREAD |
|
|
_Py_NO_SANITIZE_MEMORY |
|
|
address_in_range(void *p, poolp pool) |
|
|
|
0 comments on commit
5641b6d