[lld] 8bcf22e - [ELF] Remove redundant getELFKind call. NFC
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 2 20:16:22 PDT 2022
Author: Fangrui Song
Date: 2022-10-02T20:16:13-07:00
New Revision: 8bcf22e3182c8d1b9de4a9b45e424a9dc490a1f8
URL: https://github.com/llvm/llvm-project/commit/8bcf22e3182c8d1b9de4a9b45e424a9dc490a1f8
DIFF: https://github.com/llvm/llvm-project/commit/8bcf22e3182c8d1b9de4a9b45e424a9dc490a1f8.diff
LOG: [ELF] Remove redundant getELFKind call. NFC
Added:
Modified:
lld/ELF/InputFiles.cpp
lld/ELF/InputFiles.h
Removed:
################################################################################
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index d1351430da2d..3ca9c0a52833 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -446,9 +446,9 @@ Optional<DILineInfo> ObjFile<ELFT>::getDILineInfo(InputSectionBase *s,
return getDwarf()->getDILineInfo(offset, sectionIndex);
}
-ELFFileBase::ELFFileBase(Kind k, MemoryBufferRef mb) : InputFile(k, mb) {
- ekind = getELFKind(mb, "");
-
+ELFFileBase::ELFFileBase(Kind k, ELFKind ekind, MemoryBufferRef mb)
+ : InputFile(k, mb) {
+ this->ekind = ekind;
switch (ekind) {
case ELF32LEKind:
init<ELF32LE>(k);
@@ -1230,9 +1230,9 @@ static bool isBitcodeNonCommonDef(MemoryBufferRef mb, StringRef symName,
}
template <class ELFT>
-static bool isNonCommonDef(MemoryBufferRef mb, StringRef symName,
+static bool isNonCommonDef(ELFKind ekind, MemoryBufferRef mb, StringRef symName,
StringRef archiveName) {
- ObjFile<ELFT> *obj = make<ObjFile<ELFT>>(mb, archiveName);
+ ObjFile<ELFT> *obj = make<ObjFile<ELFT>>(ekind, mb, archiveName);
StringRef stringtable = obj->getStringTable();
for (auto sym : obj->template getGlobalELFSyms<ELFT>()) {
@@ -1248,13 +1248,13 @@ static bool isNonCommonDef(MemoryBufferRef mb, StringRef symName,
StringRef archiveName) {
switch (getELFKind(mb, archiveName)) {
case ELF32LEKind:
- return isNonCommonDef<ELF32LE>(mb, symName, archiveName);
+ return isNonCommonDef<ELF32LE>(ELF32LEKind, mb, symName, archiveName);
case ELF32BEKind:
- return isNonCommonDef<ELF32BE>(mb, symName, archiveName);
+ return isNonCommonDef<ELF32BE>(ELF32BEKind, mb, symName, archiveName);
case ELF64LEKind:
- return isNonCommonDef<ELF64LE>(mb, symName, archiveName);
+ return isNonCommonDef<ELF64LE>(ELF64LEKind, mb, symName, archiveName);
case ELF64BEKind:
- return isNonCommonDef<ELF64BE>(mb, symName, archiveName);
+ return isNonCommonDef<ELF64BE>(ELF64BEKind, mb, symName, archiveName);
default:
llvm_unreachable("getELFKind");
}
@@ -1262,6 +1262,10 @@ static bool isNonCommonDef(MemoryBufferRef mb, StringRef symName,
unsigned SharedFile::vernauxNum;
+SharedFile::SharedFile(MemoryBufferRef m, StringRef defaultSoName)
+ : ELFFileBase(SharedKind, getELFKind(m, ""), m), soName(defaultSoName),
+ isNeeded(!config->asNeeded) {}
+
// Parse the version definitions in the object file if present, and return a
// vector whose nth element contains a pointer to the Elf_Verdef for version
// identifier n. Version identifiers that are not definitions map to nullptr.
@@ -1736,16 +1740,16 @@ ELFFileBase *elf::createObjFile(MemoryBufferRef mb, StringRef archiveName,
ELFFileBase *f;
switch (getELFKind(mb, archiveName)) {
case ELF32LEKind:
- f = make<ObjFile<ELF32LE>>(mb, archiveName);
+ f = make<ObjFile<ELF32LE>>(ELF32LEKind, mb, archiveName);
break;
case ELF32BEKind:
- f = make<ObjFile<ELF32BE>>(mb, archiveName);
+ f = make<ObjFile<ELF32BE>>(ELF32BEKind, mb, archiveName);
break;
case ELF64LEKind:
- f = make<ObjFile<ELF64LE>>(mb, archiveName);
+ f = make<ObjFile<ELF64LE>>(ELF64LEKind, mb, archiveName);
break;
case ELF64BEKind:
- f = make<ObjFile<ELF64BE>>(mb, archiveName);
+ f = make<ObjFile<ELF64BE>>(ELF64BEKind, mb, archiveName);
break;
default:
llvm_unreachable("getELFKind");
diff --git a/lld/ELF/InputFiles.h b/lld/ELF/InputFiles.h
index f426af24734b..9ef086f5a5fc 100644
--- a/lld/ELF/InputFiles.h
+++ b/lld/ELF/InputFiles.h
@@ -160,7 +160,7 @@ class InputFile {
class ELFFileBase : public InputFile {
public:
- ELFFileBase(Kind k, MemoryBufferRef m);
+ ELFFileBase(Kind k, ELFKind ekind, MemoryBufferRef m);
static bool classof(const InputFile *f) { return f->isElf(); }
template <typename ELFT> llvm::object::ELFFile<ELFT> getObj() const {
@@ -221,7 +221,8 @@ template <class ELFT> class ObjFile : public ELFFileBase {
return this->ELFFileBase::getObj<ELFT>();
}
- ObjFile(MemoryBufferRef m, StringRef archiveName) : ELFFileBase(ObjKind, m) {
+ ObjFile(ELFKind ekind, MemoryBufferRef m, StringRef archiveName)
+ : ELFFileBase(ObjKind, ekind, m) {
this->archiveName = archiveName;
}
@@ -327,9 +328,7 @@ class BitcodeFile : public InputFile {
// .so file.
class SharedFile : public ELFFileBase {
public:
- SharedFile(MemoryBufferRef m, StringRef defaultSoName)
- : ELFFileBase(SharedKind, m), soName(defaultSoName),
- isNeeded(!config->asNeeded) {}
+ SharedFile(MemoryBufferRef m, StringRef defaultSoName);
// This is actually a vector of Elf_Verdef pointers.
SmallVector<const void *, 0> verdefs;
More information about the llvm-commits
mailing list