mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 10:16:07 +00:00

Re-apply #113148 after revert in #119331 If function pointer signing is enabled, sign personality function pointer stored in `.DW.ref.__gxx_personality_v0` section with IA key, 0x7EAD = `ptrauth_string_discriminator("personality")` constant discriminator and address diversity enabled.
14 lines
643 B
C
14 lines
643 B
C
// RUN: %clang_cc1 -triple aarch64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix=OFF
|
|
// RUN: %clang_cc1 -triple aarch64-linux-gnu -fptrauth-elf-got -emit-llvm %s -o - | FileCheck %s --check-prefix=ELFGOT
|
|
// RUN: %clang_cc1 -triple aarch64-linux-gnu -fptrauth-calls -emit-llvm %s -o - | FileCheck %s --check-prefix=PERSONALITY
|
|
|
|
// ELFGOT: !llvm.module.flags = !{
|
|
// ELFGOT-SAME: !1
|
|
// ELFGOT: !1 = !{i32 8, !"ptrauth-elf-got", i32 1}
|
|
|
|
// PERSONALITY: !llvm.module.flags = !{
|
|
// PERSONALITY-SAME: !1
|
|
// PERSONALITY: !1 = !{i32 8, !"ptrauth-sign-personality", i32 1}
|
|
|
|
// OFF-NOT: "ptrauth-
|