diff options
Diffstat (limited to 'test/asan/TestCases/debug_mapping.cpp')
-rw-r--r-- | test/asan/TestCases/debug_mapping.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/asan/TestCases/debug_mapping.cpp b/test/asan/TestCases/debug_mapping.cpp new file mode 100644 index 000000000..40083f028 --- /dev/null +++ b/test/asan/TestCases/debug_mapping.cpp @@ -0,0 +1,30 @@ +// Checks that the debugging API returns correct shadow scale and offset. +// RUN: %clangxx_asan -O %s -o %t +// RUN: %env_asan_opts=verbosity=1 %run %t 2>&1 | FileCheck %s + +#include <sanitizer/asan_interface.h> +#include <stdio.h> +#include <stdlib.h> + +#if _WIN64 +#define PTR "%llx" +#else +#define PTR "%lx" +#endif + +// printed because of verbosity=1 +// CHECK: SHADOW_SCALE: [[SCALE:[0-9]+]] +// CHECK: SHADOW_OFFSET: [[OFFSET:0x[0-9a-f]+]] + +int main() { + size_t scale, offset; + __asan_get_shadow_mapping(&scale, &offset); + + fprintf(stderr, "scale: %d\n", (int)scale); + fprintf(stderr, "offset: 0x" PTR "\n", (void*)offset); + + // CHECK: scale: [[SCALE]] + // CHECK: offset: [[OFFSET]] + + return 0; +} |