25 lines · c
1// This program makes a multi tier nested function call to test AArch642// Pointer Authentication feature.3 4// To enable PAC return address signing compile with following clang arguments:5// -march=armv8.3-a -mbranch-protection=pac-ret+leaf6 7#include <stdlib.h>8 9static void __attribute__((noinline)) func_c(void) {10 exit(0); // Frame func_c11}12 13static void __attribute__((noinline)) func_b(void) {14 func_c(); // Frame func_b15}16 17static void __attribute__((noinline)) func_a(void) {18 func_b(); // Frame func_a19}20 21int main(int argc, char *argv[]) {22 func_a(); // Frame main23 return 0;24}25