[compiler-rt] f26adaa - [compiler-rt][test] fix zero_page_pc on arm64e

Emily Shi via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 24 13:40:18 PDT 2021


Author: Emily Shi
Date: 2021-06-24T13:40:12-07:00
New Revision: f26adaa28d55a174c7ba2f4d49f4f942a04da922

URL: https://github.com/llvm/llvm-project/commit/f26adaa28d55a174c7ba2f4d49f4f942a04da922
DIFF: https://github.com/llvm/llvm-project/commit/f26adaa28d55a174c7ba2f4d49f4f942a04da922.diff

LOG: [compiler-rt][test] fix zero_page_pc on arm64e

on arm64e, pointer auth would catch this access violation before asan.
sign the function pointer so pointer auth will ignore this violation and let asan catch it in this test case.

rdar://79652167

Reviewed By: delcypher

Differential Revision: https://reviews.llvm.org/D104828

Added: 
    

Modified: 
    compiler-rt/test/asan/TestCases/zero_page_pc.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/asan/TestCases/zero_page_pc.cpp b/compiler-rt/test/asan/TestCases/zero_page_pc.cpp
index ba35df880edf..9a395ecdf37c 100644
--- a/compiler-rt/test/asan/TestCases/zero_page_pc.cpp
+++ b/compiler-rt/test/asan/TestCases/zero_page_pc.cpp
@@ -1,9 +1,17 @@
 // Check that ASan correctly detects SEGV on the zero page.
 // RUN: %clangxx_asan %s -o %t && not %run %t 2>&1 | FileCheck %s
 
+#if __has_feature(ptrauth_calls)
+#  include <ptrauth.h>
+#endif
+
 typedef void void_f();
 int main() {
   void_f *func = (void_f *)0x4;
+#if __has_feature(ptrauth_calls)
+  func = ptrauth_sign_unauthenticated(
+      func, ptrauth_key_function_pointer, 0);
+#endif
   func();
   // x86 reports the SEGV with both address=4 and pc=4.
   // On PowerPC64 ELFv1, the pointer is taken to be a function-descriptor


        


More information about the llvm-commits mailing list