diff options
author | alx32 <103613512+alx32@users.noreply.github.com> | 2024-03-01 14:12:56 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-01 14:12:56 -0800 |
commit | 7a2d9347d333afad4c78f61949b51b1363525ed9 (patch) | |
tree | 2fe1cd6cd82d0e901b36165324f687282d925dd6 | |
parent | f7a15e0021697e2346d3aa335dedf2bb3cf468f9 (diff) |
[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>
-rw-r--r-- | lld/MachO/Driver.cpp | 4 | ||||
-rw-r--r-- | lld/MachO/InputFiles.cpp | 8 | ||||
-rw-r--r-- | lld/MachO/ObjC.h | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index 018ceec97f20..9edb6b9c60a1 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -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; } diff --git a/lld/MachO/InputFiles.cpp b/lld/MachO/InputFiles.cpp index 158c3fbf7b0f..b36d390cc16a 100644 --- a/lld/MachO/InputFiles.cpp +++ b/lld/MachO/InputFiles.cpp @@ -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; } } diff --git a/lld/MachO/ObjC.h b/lld/MachO/ObjC.h index 560c5cc0bc50..4c65f9a1f788 100644 --- a/lld/MachO/ObjC.h +++ b/lld/MachO/ObjC.h @@ -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(); |