From: Emily Shi Date: Sat, 17 Jul 2021 00:03:47 +0000 (-0700) Subject: [NFC][compiler-rt][test] when using ptrauth, strip before checking if poisoned X-Git-Tag: llvmorg-14-init~1178 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b316c30269c35559dd99b1902a97f873c44ac413;p=platform%2Fupstream%2Fllvm.git [NFC][compiler-rt][test] when using ptrauth, strip before checking if poisoned ptrauth stores info in the address of functions, so it's not the right address we should check if poisoned rdar://75246928 Differential Revision: https://reviews.llvm.org/D106199 --- diff --git a/compiler-rt/test/asan/TestCases/Darwin/linked-only.cpp b/compiler-rt/test/asan/TestCases/Darwin/linked-only.cpp index bb19ea8..d404af6 100644 --- a/compiler-rt/test/asan/TestCases/Darwin/linked-only.cpp +++ b/compiler-rt/test/asan/TestCases/Darwin/linked-only.cpp @@ -10,6 +10,9 @@ #include #include "sanitizer/asan_interface.h" +#if __has_feature(ptrauth_calls) +# include +#endif void test_shadow(char *p, size_t size) { fprintf(stderr, "p = %p\n", p); @@ -23,7 +26,13 @@ int main(int argc, char *argv[]) { free(p); // CHECK: =-1= - test_shadow((char *)&main, 1); + char *mainptr; +#if __has_feature(ptrauth_calls) + mainptr = (char *)ptrauth_strip((void *)&main, ptrauth_key_return_address); +#else + mainptr = (char *)&main; +#endif + test_shadow(mainptr, 1); // CHECK: =-1= test_shadow((char *)&p, 1);