Skip to content

Commit 5f7421b

Browse files
committed
[Runtime] Check for demangling failure when looking up prespecialized metadata.
_buildDemanglingForGenericType can fail, so we need to check for NULL.
1 parent 0308b16 commit 5f7421b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

stdlib/public/runtime/LibPrespecialized.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ swift::getLibPrespecializedMetadata(const TypeContextDescriptor *description,
8686

8787
Demangler dem;
8888
auto mangleNode = _buildDemanglingForGenericType(description, arguments, dem);
89+
if (!mangleNode) {
90+
if (SWIFT_UNLIKELY(runtime::environment::
91+
SWIFT_DEBUG_ENABLE_LIB_PRESPECIALIZED_LOGGING()))
92+
fprintf(stderr,
93+
"Prespecializations library: failed to build demangling with "
94+
"descriptor %p.\n",
95+
description);
96+
return nullptr;
97+
}
98+
8999
if (mangleNode->getKind() != Node::Kind::Global) {
90100
auto wrapper = dem.createNode(Node::Kind::Global);
91101
wrapper->addChild(mangleNode, dem);

0 commit comments

Comments
 (0)