Skip to content

Commit e4d9813

Browse files
author
Davide Italiano
committed
[Demangler] Adjust the implementation of isObjCSymbol().
Pointed out by Jordan.
1 parent dbe5ee7 commit e4d9813

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

lib/Demangling/Demangler.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,9 @@ bool swift::Demangle::isSwiftSymbol(const char *mangledName) {
169169
}
170170

171171
bool swift::Demangle::isObjCSymbol(llvm::StringRef mangledName) {
172-
return dropSwiftManglingPrefix(mangledName).startswith("So");
172+
StringRef nameWithoutPrefix = dropSwiftManglingPrefix(mangledName);
173+
return nameWithoutPrefix.startswith("So") ||
174+
nameWithoutPrefix.startswith("SC");
173175
}
174176

175177
bool swift::Demangle::isOldFunctionTypeMangling(llvm::StringRef mangledName) {

unittests/Basic/DemangleTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ TEST(Demangle, IsObjCSymbol) {
2929
EXPECT_EQ(true, isObjCSymbol(llvm::StringRef("_$SSo8NSNumberCMa")));
3030
EXPECT_EQ(false,
3131
isObjCSymbol(llvm::StringRef("_$S3pat7inlinedSo8NSNumberCvp")));
32+
EXPECT_EQ(true, isObjCSymbol(llvm::StringRef("_$SSC3fooyS2d_SdtFTO")));
3233
}

0 commit comments

Comments
 (0)