1 // Main executable is uninstrumented, but linked to ASan runtime.
2 // Regression test for https://code.google.com/p/address-sanitizer/issues/detail?id=357.
4 // RUN: %clangxx -g -O0 %s -c -o %t.o
5 // RUN: %clangxx_asan -g -O0 %t.o -o %t
6 // RUN: %run %t 2>&1 | FileCheck %s
12 #include "sanitizer/asan_interface.h"
13 #if __has_feature(ptrauth_calls)
17 void test_shadow(char *p
, size_t size
) {
18 fprintf(stderr
, "p = %p\n", p
);
19 char *q
= (char *)__asan_region_is_poisoned(p
, size
);
20 fprintf(stderr
, "=%zd=\n", q
? q
- p
: -1);
23 int main(int argc
, char *argv
[]) {
24 char *p
= (char *)malloc(10000);
30 #if __has_feature(ptrauth_calls)
31 mainptr
= (char *)ptrauth_strip((void *)&main
, ptrauth_key_return_address
);
33 mainptr
= (char *)&main
;
35 test_shadow(mainptr
, 1);
38 test_shadow((char *)&p
, 1);