This character indicates that when return pointer authentication is
being used, the function signs the return address using the B key.
Differential Revision: https://reviews.llvm.org/D93954
readByte();
else if (c == 'P')
skipAugP();
- else if (c != 'S')
+ else if (c != 'B' && c != 'S')
failOn(aug.data(), "unknown .eh_frame augmentation string: " + aug);
}
return DW_EH_PE_absptr;
skipAugP();
else if (c == 'R')
readByte();
- else if (c != 'S')
+ else if (c != 'B' && c != 'S')
failOn(aug.data(), "unknown .eh_frame augmentation string: " + aug);
}
return false;
--- /dev/null
+// REQUIRES: aarch64
+// RUN: llvm-mc -filetype=obj -triple aarch64-arm-none-eabi %s -o %t.o
+// RUN: ld.lld %t.o -o %t --icf=all --eh-frame-hdr
+
+.globl _start
+_start:
+.cfi_startproc
+.cfi_b_key_frame
+.cfi_endproc