brintos

brintos / llvm-project-archived public Read only

0
0
Text · 589 B · 7de8fc0 Raw
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