mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 07:06:38 +00:00
[lld][macho][NFC] Add specific namespace scope for objc symbol names (#83618)
Move symbol names from directly under `objc` scope to `objc::symbol_names`. Ex: `objc::klass` -> `objc::symbol_names::klass` Co-authored-by: Alex B <alexborcan@meta.com>
This commit is contained in:
parent
f7a15e0021
commit
7a2d9347d3
@ -340,7 +340,7 @@ static InputFile *addFile(StringRef path, LoadType loadType,
|
||||
}
|
||||
} else if (isCommandLineLoad && config->forceLoadObjC) {
|
||||
for (const object::Archive::Symbol &sym : file->getArchive().symbols())
|
||||
if (sym.getName().starts_with(objc::klass))
|
||||
if (sym.getName().starts_with(objc::symbol_names::klass))
|
||||
file->fetch(sym);
|
||||
|
||||
// TODO: no need to look for ObjC sections for a given archive member if
|
||||
@ -395,7 +395,7 @@ static InputFile *addFile(StringRef path, LoadType loadType,
|
||||
if ((isa<ObjFile>(newFile) || isa<BitcodeFile>(newFile)) && newFile->lazy &&
|
||||
config->forceLoadObjC) {
|
||||
for (Symbol *sym : newFile->symbols)
|
||||
if (sym && sym->getName().starts_with(objc::klass)) {
|
||||
if (sym && sym->getName().starts_with(objc::symbol_names::klass)) {
|
||||
extract(*newFile, "-ObjC");
|
||||
break;
|
||||
}
|
||||
|
@ -1921,14 +1921,14 @@ DylibFile::DylibFile(const InterfaceFile &interface, DylibFile *umbrella,
|
||||
case EncodeKind::ObjectiveCClass:
|
||||
// XXX ld64 only creates these symbols when -ObjC is passed in. We may
|
||||
// want to emulate that.
|
||||
addSymbol(*symbol, objc::klass + symbol->getName());
|
||||
addSymbol(*symbol, objc::metaclass + symbol->getName());
|
||||
addSymbol(*symbol, objc::symbol_names::klass + symbol->getName());
|
||||
addSymbol(*symbol, objc::symbol_names::metaclass + symbol->getName());
|
||||
break;
|
||||
case EncodeKind::ObjectiveCClassEHType:
|
||||
addSymbol(*symbol, objc::ehtype + symbol->getName());
|
||||
addSymbol(*symbol, objc::symbol_names::ehtype + symbol->getName());
|
||||
break;
|
||||
case EncodeKind::ObjectiveCInstanceVariable:
|
||||
addSymbol(*symbol, objc::ivar + symbol->getName());
|
||||
addSymbol(*symbol, objc::symbol_names::ivar + symbol->getName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -15,10 +15,12 @@ namespace lld::macho {
|
||||
|
||||
namespace objc {
|
||||
|
||||
namespace symbol_names {
|
||||
constexpr const char klass[] = "_OBJC_CLASS_$_";
|
||||
constexpr const char metaclass[] = "_OBJC_METACLASS_$_";
|
||||
constexpr const char ehtype[] = "_OBJC_EHTYPE_$_";
|
||||
constexpr const char ivar[] = "_OBJC_IVAR_$_";
|
||||
} // namespace symbol_names
|
||||
|
||||
// Check for duplicate method names within related categories / classes.
|
||||
void checkCategories();
|
||||
|
Loading…
x
Reference in New Issue
Block a user