@@ -95,6 +95,7 @@ internal enum _PtrAuth {
95
95
}
96
96
97
97
/// Sign an unauthenticated pointer.
98
+ @_semantics ( " no.preserve.debugger " ) // Relies on inlining this function.
98
99
@_transparent
99
100
static func sign( pointer: UnsafeRawPointer ,
100
101
key: Key ,
@@ -110,6 +111,7 @@ internal enum _PtrAuth {
110
111
111
112
/// Authenticate a pointer using one scheme and resign it using another.
112
113
@_transparent
114
+ @_semantics ( " no.preserve.debugger " ) // Relies on inlining this function.
113
115
static func authenticateAndResign( pointer: UnsafeRawPointer ,
114
116
oldKey: Key ,
115
117
oldDiscriminator: UInt64 ,
@@ -127,6 +129,7 @@ internal enum _PtrAuth {
127
129
}
128
130
129
131
/// Get the type-specific discriminator for a function type.
132
+ @_semantics ( " no.preserve.debugger " ) // Don't keep the generic version alive
130
133
@_transparent
131
134
static func discriminator< T> ( for type: T . Type ) -> UInt64 {
132
135
return UInt64 ( Builtin . typePtrAuthDiscriminator ( type) )
@@ -175,6 +178,7 @@ internal enum _PtrAuth {
175
178
extension UnsafeRawPointer {
176
179
/// Load a function pointer from memory that has been authenticated
177
180
/// specifically for its given address.
181
+ @_semantics ( " no.preserve.debugger " ) // Don't keep the generic version alive
178
182
@_transparent
179
183
internal func _loadAddressDiscriminatedFunctionPointer< T> (
180
184
fromByteOffset offset: Int = 0 ,
@@ -196,6 +200,7 @@ extension UnsafeRawPointer {
196
200
return unsafeBitCast ( resigned, to: type)
197
201
}
198
202
203
+ @_semantics ( " no.preserve.debugger " ) // Don't keep the generic version alive
199
204
@_transparent
200
205
internal func _loadAddressDiscriminatedFunctionPointer< T> (
201
206
fromByteOffset offset: Int = 0 ,
0 commit comments