diff options
author | Sergei Golubchik <serg@mariadb.org> | 2018-01-16 22:57:28 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2018-01-16 22:57:28 +0100 |
commit | 5e7593add405f07ac6a7d755ae1349fb1d2eafd4 (patch) | |
tree | 8371852e11997e8115f1ab68206cd5a59476e1cb /include | |
parent | 6634f460a992811b876909ae5875eac6b0bd18fd (diff) | |
download | mariadb-git-5e7593add405f07ac6a7d755ae1349fb1d2eafd4.tar.gz |
add support for ASAN instrumentation
Diffstat (limited to 'include')
-rw-r--r-- | include/my_valgrind.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/my_valgrind.h b/include/my_valgrind.h index 4bd4cf99ada..a9dba1cb06c 100644 --- a/include/my_valgrind.h +++ b/include/my_valgrind.h @@ -25,7 +25,13 @@ # define MEM_NOACCESS(a,len) VALGRIND_MAKE_MEM_NOACCESS(a,len) # define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len) # define MEM_CHECK_DEFINED(a,len) VALGRIND_CHECK_MEM_IS_DEFINED(a,len) -#else /* HAVE_VALGRIND */ +#elif defined(__SANITIZE_ADDRESS__) +# include <sanitizer/asan_interface.h> +# define MEM_UNDEFINED(a,len) ASAN_UNPOISON_MEMORY_REGION(a,len) +# define MEM_NOACCESS(a,len) ASAN_POISON_MEMORY_REGION(a,len) +# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0) +# define MEM_CHECK_DEFINED(a,len) ((void) 0) +#else # define MEM_UNDEFINED(a,len) ((void) 0) # define MEM_NOACCESS(a,len) ((void) 0) # define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0) @@ -35,9 +41,8 @@ #ifndef DBUG_OFF #define TRASH_FILL(A,B,C) do { memset(A, C, B); MEM_UNDEFINED(A, B); } while (0) #else -#define TRASH_FILL(A,B,C) do{ MEM_CHECK_ADDRESSABLE(A,B);MEM_UNDEFINED(A,B);} while (0) +#define TRASH_FILL(A,B,C) do { MEM_CHECK_ADDRESSABLE(A,B);MEM_UNDEFINED(A,B);} while (0) #endif #define TRASH_ALLOC(A,B) TRASH_FILL(A,B,0xA5) #define TRASH_FREE(A,B) TRASH_FILL(A,B,0x8F) #define TRASH(A,B) TRASH_FREE(A,B) - |