blob: 33332ad18e54261bd6acfec517b6e1177170ee74 [file] [edit]
// RUN: %clang_cc1 -triple aarch64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix=OFF-LINUX
// RUN: %clang_cc1 -triple aarch64-freebsd -emit-llvm %s -o - | FileCheck %s --check-prefix=OFF-ELF
// RUN: %clang_cc1 -triple aarch64-darwin -emit-llvm %s -o - | FileCheck %s --check-prefix=ABSENT
// RUN: %clang_cc1 -triple aarch64-windows -emit-llvm %s -o - | FileCheck %s --check-prefix=ABSENT
// 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: !0
// ELFGOT-SAME: !3
// ELFGOT: !0 = !{i32 1, !"ptrauth-elf-got", i32 1}
// ELFGOT: !3 = !{i32 1, !"ptrauth-sign-personality", i32 0}
// PERSONALITY: !llvm.module.flags = !{
// PERSONALITY-SAME: !0
// PERSONALITY-SAME: !3
// PERSONALITY: !0 = !{i32 1, !"ptrauth-elf-got", i32 0}
// PERSONALITY: !3 = !{i32 1, !"ptrauth-sign-personality", i32 1}
// OFF-LINUX: !llvm.module.flags = !{
// OFF-LINUX-SAME: !0
// OFF-LINUX-SAME: !3
// OFF-LINUX: !0 = !{i32 1, !"ptrauth-elf-got", i32 0}
// OFF-LINUX: !3 = !{i32 1, !"ptrauth-sign-personality", i32 0}
// OFF-ELF: !llvm.module.flags = !{
// OFF-ELF-SAME: !0
// OFF-ELF: !0 = !{i32 1, !"ptrauth-elf-got", i32 0}
// OFF-ELF-NOT: ptrauth-sign-personality
// ABSENT-NOT: "ptrauth-