brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · b76baff Raw
36 lines · c
1// RUN: %clang_cc1 -triple arm64-apple-ios \2// RUN:   -fptrauth-calls -fptrauth-intrinsics -emit-llvm -fblocks \3// RUN:   %s -debug-info-kind=limited -o - | FileCheck %s4// RUN: %clang_cc1 -triple aarch64-linux-gnu \5// RUN:   -fptrauth-calls -fptrauth-intrinsics -emit-llvm -fblocks \6// RUN:   %s -debug-info-kind=limited -o - | FileCheck %s7 8// Constant initializers for data pointers.9extern int external_int;10 11int *__ptrauth(1, 0, 1234) g1 = &external_int;12// CHECK: !DIDerivedType(tag: DW_TAG_LLVM_ptrauth_type,13// CHECK-SAME:           ptrAuthKey: 1,14// CHECK-SAME:           ptrAuthIsAddressDiscriminated: false,15// CHECK-SAME:           ptrAuthExtraDiscriminator: 1234,16// CHECK-SAME:           ptrAuthIsaPointer: false,17// CHECK-SAME:           ptrAuthAuthenticatesNullValues: false)18 19struct A {20  int value;21};22struct A *createA(void);23 24void f() {25  __block struct A *__ptrauth(0, 1, 1236) ptr = createA();26  ^{27    (void)ptr->value;28  }();29}30// CHECK: !DIDerivedType(tag: DW_TAG_LLVM_ptrauth_type,31// CHECK-NOT:            ptrAuthKey32// CHECK-SAME:           ptrAuthIsAddressDiscriminated: true,33// CHECK-SAME:           ptrAuthExtraDiscriminator: 1236,34// CHECK-SAME:           ptrAuthIsaPointer: false,35// CHECK-SAME:           ptrAuthAuthenticatesNullValues: false)36