[lld] r321240 - Pass an InputFile to the InputSection constructor.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 20 18:11:51 PST 2017
Author: rafael
Date: Wed Dec 20 18:11:51 2017
New Revision: 321240
URL: http://llvm.org/viewvc/llvm-project?rev=321240&view=rev
Log:
Pass an InputFile to the InputSection constructor.
This simplifies toRegularSection and reduces the noise in a followup
patch.
Modified:
lld/trunk/ELF/InputFiles.cpp
lld/trunk/ELF/InputSection.cpp
lld/trunk/ELF/InputSection.h
lld/trunk/ELF/SyntheticSections.cpp
lld/trunk/ELF/SyntheticSections.h
Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Wed Dec 20 18:11:51 2017
@@ -454,11 +454,9 @@ InputSectionBase *ObjFile<ELFT>::getRelo
// Create a regular InputSection class that has the same contents
// as a given section.
-InputSectionBase *toRegularSection(MergeInputSection *Sec) {
- auto *Ret = make<InputSection>(Sec->Flags, Sec->Type, Sec->Alignment,
- Sec->Data, Sec->Name);
- Ret->File = Sec->File;
- return Ret;
+static InputSection *toRegularSection(MergeInputSection *Sec) {
+ return make<InputSection>(Sec->File, Sec->Flags, Sec->Type, Sec->Alignment,
+ Sec->Data, Sec->Name);
}
template <class ELFT>
@@ -983,8 +981,8 @@ static ELFKind getELFKind(MemoryBufferRe
template <class ELFT> void BinaryFile::parse() {
ArrayRef<uint8_t> Data = toArrayRef(MB.getBuffer());
- auto *Section =
- make<InputSection>(SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, 8, Data, ".data");
+ auto *Section = make<InputSection>(nullptr, SHF_ALLOC | SHF_WRITE,
+ SHT_PROGBITS, 8, Data, ".data");
Sections.push_back(Section);
// For each input file foo that is embedded to a result as a binary
Modified: lld/trunk/ELF/InputSection.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputSection.cpp?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- lld/trunk/ELF/InputSection.cpp (original)
+++ lld/trunk/ELF/InputSection.cpp Wed Dec 20 18:11:51 2017
@@ -329,11 +329,12 @@ std::string InputSectionBase::getObjMsg(
.str();
}
-InputSection InputSection::Discarded(0, 0, 0, ArrayRef<uint8_t>(), "");
+InputSection InputSection::Discarded(nullptr, 0, 0, 0, ArrayRef<uint8_t>(), "");
-InputSection::InputSection(uint64_t Flags, uint32_t Type, uint32_t Alignment,
- ArrayRef<uint8_t> Data, StringRef Name, Kind K)
- : InputSectionBase(nullptr, Flags, Type,
+InputSection::InputSection(InputFile *F, uint64_t Flags, uint32_t Type,
+ uint32_t Alignment, ArrayRef<uint8_t> Data,
+ StringRef Name, Kind K)
+ : InputSectionBase(F, Flags, Type,
/*Entsize*/ 0, /*Link*/ 0, /*Info*/ 0, Alignment, Data,
Name, K) {}
Modified: lld/trunk/ELF/InputSection.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputSection.h?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- lld/trunk/ELF/InputSection.h (original)
+++ lld/trunk/ELF/InputSection.h Wed Dec 20 18:11:51 2017
@@ -301,7 +301,7 @@ public:
// .eh_frame. It also includes the synthetic sections themselves.
class InputSection : public InputSectionBase {
public:
- InputSection(uint64_t Flags, uint32_t Type, uint32_t Alignment,
+ InputSection(InputFile *F, uint64_t Flags, uint32_t Type, uint32_t Alignment,
ArrayRef<uint8_t> Data, StringRef Name, Kind K = Regular);
template <class ELFT>
InputSection(ObjFile<ELFT> &F, const typename ELFT::Shdr &Header,
Modified: lld/trunk/ELF/SyntheticSections.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SyntheticSections.cpp?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- lld/trunk/ELF/SyntheticSections.cpp (original)
+++ lld/trunk/ELF/SyntheticSections.cpp Wed Dec 20 18:11:51 2017
@@ -260,8 +260,8 @@ InputSection *elf::createInterpSection()
StringRef S = Saver.save(Config->DynamicLinker);
ArrayRef<uint8_t> Contents = {(const uint8_t *)S.data(), S.size() + 1};
- auto *Sec =
- make<InputSection>(SHF_ALLOC, SHT_PROGBITS, 1, Contents, ".interp");
+ auto *Sec = make<InputSection>(nullptr, SHF_ALLOC, SHT_PROGBITS, 1, Contents,
+ ".interp");
Sec->Live = true;
return Sec;
}
Modified: lld/trunk/ELF/SyntheticSections.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SyntheticSections.h?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- lld/trunk/ELF/SyntheticSections.h (original)
+++ lld/trunk/ELF/SyntheticSections.h Wed Dec 20 18:11:51 2017
@@ -36,7 +36,7 @@ class SyntheticSection : public InputSec
public:
SyntheticSection(uint64_t Flags, uint32_t Type, uint32_t Alignment,
StringRef Name)
- : InputSection(Flags, Type, Alignment, {}, Name,
+ : InputSection(nullptr, Flags, Type, Alignment, {}, Name,
InputSectionBase::Synthetic) {
this->Live = true;
}
More information about the llvm-commits
mailing list