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