Skip to content

Commit 79cd818

Browse files
Merge pull request swiftlang#5049 from aschwaighofer/fix_irgen_emitObjCMetadataRef
IRGen: emitObjCMetadataRef needs to handle weakly linked Objective C …
2 parents b884698 + d3ef6f7 commit 79cd818

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

stdlib/public/runtime/Metadata.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,11 @@ static SimpleGlobalCache<ObjCClassCacheEntry> ObjCClassWrappers;
286286

287287
const Metadata *
288288
swift::swift_getObjCClassMetadata(const ClassMetadata *theClass) {
289+
// Make calls resilient against receiving a null Objective-C class. This can
290+
// happen when classes are weakly linked and not available.
291+
if (theClass == nullptr)
292+
return nullptr;
293+
289294
// If the class pointer is valid as metadata, no translation is required.
290295
if (theClass->isTypeMetadata()) {
291296
return theClass;

0 commit comments

Comments
 (0)