Skip to content

Commit f85d87f

Browse files
committed
[Reflection] Fail gracefully when objc_debug_taggedpointer_obfuscator isn't present.
Older OSes don't have this variable. We can treat it as 0 when it's not present. rdar://problem/48411483
1 parent e731272 commit f85d87f

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

include/swift/Remote/MetadataReader.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,8 +2472,13 @@ class MetadataReader {
24722472
TaggedPointerExtendedClasses =
24732473
TaggedPointerExtendedClassesAddr.getAddressData();
24742474

2475-
tryFindAndReadSymbol(TaggedPointerObfuscator,
2476-
"objc_debug_taggedpointer_obfuscator");
2475+
// The tagged pointer obfuscator is not present on older OSes, in
2476+
// which case we can treat it as zero.
2477+
TaggedPointerObfuscator = 0;
2478+
auto TaggedPointerObfuscatorAddr = Reader->getSymbolAddress(
2479+
"objc_debug_taggedpointer_obfuscator");
2480+
if (TaggedPointerObfuscatorAddr)
2481+
tryReadSymbol(TaggedPointerObfuscatorAddr, TaggedPointerObfuscator);
24772482

24782483
# undef tryFindSymbol
24792484
# undef tryReadSymbol

0 commit comments

Comments
 (0)