Skip to content

Commit

Permalink
[compiler-rt][test] fix zero_page_pc on arm64e
Browse files Browse the repository at this point in the history
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
  • Loading branch information
aralisza committed Jun 24, 2021
1 parent 5cb20ef commit f26adaa
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions compiler-rt/test/asan/TestCases/zero_page_pc.cpp
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit f26adaa

Please sign in to comment.