diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 01ebf0a494c8..2e07869a3348 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -35,6 +35,14 @@ template ELFFileBase::ELFFileBase(Kind K, MemoryBufferRef M) : InputFile(K, M), ELFObj(MB.getBuffer(), ECRAII().getEC()) {} +template +ELFKind ELFFileBase::getELFKind() { + using llvm::support::little; + if (ELFT::Is64Bits) + return ELFT::TargetEndianness == little ? ELF64LEKind : ELF64BEKind; + return ELFT::TargetEndianness == little ? ELF32LEKind : ELF32BEKind; +} + template typename ELFFileBase::Elf_Sym_Range ELFFileBase::getSymbolsHelper(bool Local) { diff --git a/lld/ELF/InputFiles.h b/lld/ELF/InputFiles.h index 06f88f880b61..95c8f0f5128b 100644 --- a/lld/ELF/InputFiles.h +++ b/lld/ELF/InputFiles.h @@ -59,17 +59,7 @@ public: return K == ObjectKind || K == SharedKind; } - static ELFKind getELFKind() { - if (!ELFT::Is64Bits) { - if (ELFT::TargetEndianness == llvm::support::little) - return ELF32LEKind; - return ELF32BEKind; - } - if (ELFT::TargetEndianness == llvm::support::little) - return ELF64LEKind; - return ELF64BEKind; - } - + static ELFKind getELFKind(); const llvm::object::ELFFile &getObj() const { return ELFObj; } llvm::object::ELFFile &getObj() { return ELFObj; }