1 // Checks that the debugging API returns correct shadow scale and offset. 2 // RUN: %clangxx_asan -O %s -o %t 3 // RUN: %env_asan_opts=verbosity=1 %run %t 2>&1 | FileCheck %s 4 5 #include <sanitizer/asan_interface.h> 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 #if _WIN64 10 #define PTR "%llx" 11 #else 12 #define PTR "%lx" 13 #endif 14 15 // printed because of verbosity=1 16 // CHECK: SHADOW_SCALE: [[SCALE:[0-9]+]] 17 // CHECK: SHADOW_OFFSET: [[OFFSET:0x[0-9a-f]+]] 18 main()19int main() { 20 size_t scale, offset; 21 __asan_get_shadow_mapping(&scale, &offset); 22 23 fprintf(stderr, "scale: %d\n", (int)scale); 24 fprintf(stderr, "offset: 0x" PTR "\n", (void*)offset); 25 26 // CHECK: scale: [[SCALE]] 27 // CHECK: offset: [[OFFSET]] 28 29 return 0; 30 } 31