Skip to content

Commit 7a2d934

Browse files
alx32Alex B
andauthored
[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 <[email protected]>
1 parent f7a15e0 commit 7a2d934

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

lld/MachO/Driver.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ static InputFile *addFile(StringRef path, LoadType loadType,
340340
}
341341
} else if (isCommandLineLoad && config->forceLoadObjC) {
342342
for (const object::Archive::Symbol &sym : file->getArchive().symbols())
343-
if (sym.getName().starts_with(objc::klass))
343+
if (sym.getName().starts_with(objc::symbol_names::klass))
344344
file->fetch(sym);
345345

346346
// 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,
395395
if ((isa<ObjFile>(newFile) || isa<BitcodeFile>(newFile)) && newFile->lazy &&
396396
config->forceLoadObjC) {
397397
for (Symbol *sym : newFile->symbols)
398-
if (sym && sym->getName().starts_with(objc::klass)) {
398+
if (sym && sym->getName().starts_with(objc::symbol_names::klass)) {
399399
extract(*newFile, "-ObjC");
400400
break;
401401
}

lld/MachO/InputFiles.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1921,14 +1921,14 @@ DylibFile::DylibFile(const InterfaceFile &interface, DylibFile *umbrella,
19211921
case EncodeKind::ObjectiveCClass:
19221922
// XXX ld64 only creates these symbols when -ObjC is passed in. We may
19231923
// want to emulate that.
1924-
addSymbol(*symbol, objc::klass + symbol->getName());
1925-
addSymbol(*symbol, objc::metaclass + symbol->getName());
1924+
addSymbol(*symbol, objc::symbol_names::klass + symbol->getName());
1925+
addSymbol(*symbol, objc::symbol_names::metaclass + symbol->getName());
19261926
break;
19271927
case EncodeKind::ObjectiveCClassEHType:
1928-
addSymbol(*symbol, objc::ehtype + symbol->getName());
1928+
addSymbol(*symbol, objc::symbol_names::ehtype + symbol->getName());
19291929
break;
19301930
case EncodeKind::ObjectiveCInstanceVariable:
1931-
addSymbol(*symbol, objc::ivar + symbol->getName());
1931+
addSymbol(*symbol, objc::symbol_names::ivar + symbol->getName());
19321932
break;
19331933
}
19341934
}

lld/MachO/ObjC.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ namespace lld::macho {
1515

1616
namespace objc {
1717

18+
namespace symbol_names {
1819
constexpr const char klass[] = "_OBJC_CLASS_$_";
1920
constexpr const char metaclass[] = "_OBJC_METACLASS_$_";
2021
constexpr const char ehtype[] = "_OBJC_EHTYPE_$_";
2122
constexpr const char ivar[] = "_OBJC_IVAR_$_";
23+
} // namespace symbol_names
2224

2325
// Check for duplicate method names within related categories / classes.
2426
void checkCategories();

0 commit comments

Comments
 (0)