blob: e97f71f290e7166496dd3520caed1111b5149fe1 [file] [log] [blame]
// RUN: %swift -swift-version 4 -target arm64e-apple-ios12.0 -parse-stdlib -parse-as-library %s -emit-ir -module-name test -Xcc -Xclang -Xcc -fptrauth-calls | %FileCheck %s --check-prefix=CHECK
// REQUIRES: CPU=arm64e
// REQUIRES: OS=ios
import Builtin
class A<T> {}
sil_vtable A {}
// rdar://35018215
struct S {}
class B : A<S> {}
sil_vtable B {}
// CHECK-LABEL: define internal %swift.type* @"$s4test1ACMi"(%swift.type_descriptor* %0, i8** %1, i8* %2)
// CHECK: [[INT:%.*]] = ptrtoint %swift.type_descriptor* %0 to i64
// CHECK: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign.i64(i64 [[INT]], i32 2, i64 44678)
// CHECK: [[PTR:%.*]] = inttoptr i64 [[SIGNED]] to %swift.type_descriptor*
// CHECK: [[METADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata(%swift.type_descriptor* [[PTR]], i8** %1, i8* %2)
// CHECK: ret %swift.type* [[METADATA]]