aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/TextAPI/Symbol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/TextAPI/Symbol.cpp')
-rw-r--r--llvm/lib/TextAPI/Symbol.cpp23
1 files changed, 8 insertions, 15 deletions
diff --git a/llvm/lib/TextAPI/Symbol.cpp b/llvm/lib/TextAPI/Symbol.cpp
index e67627e..c899821 100644
--- a/llvm/lib/TextAPI/Symbol.cpp
+++ b/llvm/lib/TextAPI/Symbol.cpp
@@ -72,30 +72,23 @@ bool Symbol::operator==(const Symbol &O) const {
std::tie(O.Name, O.Kind, O.Targets, RHSFlags);
}
-SimpleSymbol parseSymbol(StringRef SymName, const SymbolFlags Flags) {
+SimpleSymbol parseSymbol(StringRef SymName) {
if (SymName.starts_with(ObjC1ClassNamePrefix))
return {SymName.drop_front(ObjC1ClassNamePrefix.size()),
- EncodeKind::ObjectiveCClass};
+ EncodeKind::ObjectiveCClass, ObjCIFSymbolKind::Class};
if (SymName.starts_with(ObjC2ClassNamePrefix))
return {SymName.drop_front(ObjC2ClassNamePrefix.size()),
- EncodeKind::ObjectiveCClass};
+ EncodeKind::ObjectiveCClass, ObjCIFSymbolKind::Class};
if (SymName.starts_with(ObjC2MetaClassNamePrefix))
return {SymName.drop_front(ObjC2MetaClassNamePrefix.size()),
- EncodeKind::ObjectiveCClass};
- if (SymName.starts_with(ObjC2EHTypePrefix)) {
- // When classes without ehtype are used in try/catch blocks
- // a weak-defined symbol is exported. In those cases, treat these as a
- // global instead.
- if ((Flags & SymbolFlags::WeakDefined) == SymbolFlags::WeakDefined)
- return {SymName, EncodeKind::GlobalSymbol};
+ EncodeKind::ObjectiveCClass, ObjCIFSymbolKind::MetaClass};
+ if (SymName.starts_with(ObjC2EHTypePrefix))
return {SymName.drop_front(ObjC2EHTypePrefix.size()),
- EncodeKind::ObjectiveCClassEHType};
- }
-
+ EncodeKind::ObjectiveCClassEHType, ObjCIFSymbolKind::EHType};
if (SymName.starts_with(ObjC2IVarPrefix))
return {SymName.drop_front(ObjC2IVarPrefix.size()),
- EncodeKind::ObjectiveCInstanceVariable};
- return {SymName, EncodeKind::GlobalSymbol};
+ EncodeKind::ObjectiveCInstanceVariable, ObjCIFSymbolKind::None};
+ return {SymName, EncodeKind::GlobalSymbol, ObjCIFSymbolKind::None};
}
} // end namespace MachO.