ObjectiveCInstanceVariable,
};
+constexpr StringLiteral ObjC1ClassNamePrefix = ".objc_class_name_";
+constexpr StringLiteral ObjC2ClassNamePrefix = "_OBJC_CLASS_$_";
+constexpr StringLiteral ObjC2MetaClassNamePrefix = "_OBJC_METACLASS_$_";
+constexpr StringLiteral ObjC2EHTypePrefix = "_OBJC_EHTYPE_$_";
+constexpr StringLiteral ObjC2IVarPrefix = "_OBJC_IVAR_$_";
+
using TargetList = SmallVector<Target, 5>;
class Symbol {
public:
#include "llvm/ADT/StringRef.h"
#include "llvm/Object/Error.h"
#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/TextAPI/Symbol.h"
using namespace llvm;
using namespace MachO;
using namespace object;
-static constexpr StringLiteral ObjC1ClassNamePrefix = ".objc_class_name_";
-static constexpr StringLiteral ObjC2ClassNamePrefix = "_OBJC_CLASS_$_";
-static constexpr StringLiteral ObjC2MetaClassNamePrefix = "_OBJC_METACLASS_$_";
-static constexpr StringLiteral ObjC2EHTypePrefix = "_OBJC_EHTYPE_$_";
-static constexpr StringLiteral ObjC2IVarPrefix = "_OBJC_IVAR_$_";
-
static uint32_t getFlags(const Symbol *Sym) {
uint32_t Flags = BasicSymbolRef::SF_Global;
if (Sym->isUndefined())
#include "llvm/Support/Casting.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TextAPI/InterfaceFile.h"
+#include "llvm/TextAPI/Symbol.h"
#include "llvm/TextAPI/Target.h"
using namespace llvm;
} // end namespace llvm
-std::string SymScalar::stringifySymbolKind(MachO::SymbolKind Kind) {
+StringLiteral SymScalar::getSymbolNamePrefix(MachO::SymbolKind Kind) {
switch (Kind) {
case MachO::SymbolKind::GlobalSymbol:
return "";
case MachO::SymbolKind::ObjectiveCClass:
- return "_OBJC_METACLASS_$_";
+ return ObjC2MetaClassNamePrefix;
case MachO::SymbolKind ::ObjectiveCClassEHType:
- return "_OBJC_EHTYPE_$_";
+ return ObjC2EHTypePrefix;
case MachO::SymbolKind ::ObjectiveCInstanceVariable:
- return "_OBJC_IVAR_$_";
+ return ObjC2IVarPrefix;
}
llvm_unreachable("Unknown llvm::MachO::SymbolKind enum");
}
if (Targ.Arch == MachO::AK_i386 &&
Targ.Platform == MachO::PlatformKind::macOS) {
OS << Indent << "\t\t" << ((Order == lhs) ? "< " : "> ")
- << ".objc_class_name_" << Val->getName()
+ << ObjC1ClassNamePrefix << Val->getName()
<< getFlagString(Val->getFlags()) << "\n";
return;
}
- OS << Indent << "\t\t" << ((Order == lhs) ? "< " : "> ") << "_OBJC_CLASS_$_"
- << Val->getName() << getFlagString(Val->getFlags()) << "\n";
+ OS << Indent << "\t\t" << ((Order == lhs) ? "< " : "> ")
+ << ObjC2ClassNamePrefix << Val->getName()
+ << getFlagString(Val->getFlags()) << "\n";
}
OS << Indent << "\t\t" << ((Order == lhs) ? "< " : "> ")
- << stringifySymbolKind(Val->getKind()) << Val->getName()
+ << getSymbolNamePrefix(Val->getKind()) << Val->getName()
<< getFlagString(Val->getFlags()) << "\n";
}