Skip to content

Commit caa57f5

Browse files
committed
Fix extended existential symbolic demangling on arm64e.
Fixes rdar://96367576 and rdar://96367737.
1 parent 43032e8 commit caa57f5

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

stdlib/public/runtime/MetadataLookup.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,20 @@ ResolveAsSymbolicReference::operator()(SymbolicReferenceKind kind,
164164
case Demangle::SymbolicReferenceKind::UniqueExtendedExistentialTypeShape:
165165
nodeKind = Node::Kind::UniqueExtendedExistentialTypeShapeSymbolicReference;
166166
isType = false;
167+
#if SWIFT_PTRAUTH
168+
ptr = (uintptr_t)ptrauth_sign_unauthenticated((void*)ptr,
169+
ptrauth_key_process_independent_data,
170+
SpecialPointerAuthDiscriminators::ExtendedExistentialTypeShape);
171+
#endif
167172
break;
168173
case Demangle::SymbolicReferenceKind::NonUniqueExtendedExistentialTypeShape:
169174
nodeKind = Node::Kind::NonUniqueExtendedExistentialTypeShapeSymbolicReference;
170175
isType = false;
176+
#if SWIFT_PTRAUTH
177+
ptr = (uintptr_t)ptrauth_sign_unauthenticated((void*)ptr,
178+
ptrauth_key_process_independent_data,
179+
SpecialPointerAuthDiscriminators::NonUniqueExtendedExistentialTypeShape);
180+
#endif
171181
break;
172182
}
173183

0 commit comments

Comments
 (0)