Always initialize Out<ELFT> members.

Instead of leave unused fields as is, set them to nullptr.
Currnetly this is NFC, but if you call writeResults more than
once, you should be able to see the difference.

llvm-svn: 259444
This commit is contained in:
Rui Ueyama 2016-02-02 00:35:49 +00:00
parent 59dd7fd153
commit cdb7882cb2
1 changed files with 12 additions and 0 deletions

View File

@ -114,6 +114,8 @@ template <class ELFT> void elf2::writeResult(SymbolTable<ELFT> *Symtab) {
StringTableSection<ELFT> StrTab(".strtab", false);
if (!Config->StripAll)
Out<ELFT>::StrTab = &StrTab;
else
Out<ELFT>::StrTab = nullptr;
StringTableSection<ELFT> DynStrTab(".dynstr", true);
Out<ELFT>::DynStrTab = &DynStrTab;
GotSection<ELFT> Got;
@ -121,27 +123,37 @@ template <class ELFT> void elf2::writeResult(SymbolTable<ELFT> *Symtab) {
GotPltSection<ELFT> GotPlt;
if (Target->UseLazyBinding)
Out<ELFT>::GotPlt = &GotPlt;
else
Out<ELFT>::GotPlt = nullptr;
PltSection<ELFT> Plt;
Out<ELFT>::Plt = &Plt;
std::unique_ptr<SymbolTableSection<ELFT>> SymTab;
if (!Config->StripAll) {
SymTab.reset(new SymbolTableSection<ELFT>(*Symtab, *Out<ELFT>::StrTab));
Out<ELFT>::SymTab = SymTab.get();
} else {
Out<ELFT>::SymTab = nullptr;
}
SymbolTableSection<ELFT> DynSymTab(*Symtab, *Out<ELFT>::DynStrTab);
Out<ELFT>::DynSymTab = &DynSymTab;
HashTableSection<ELFT> HashTab;
if (Config->SysvHash)
Out<ELFT>::HashTab = &HashTab;
else
Out<ELFT>::HashTab = nullptr;
GnuHashTableSection<ELFT> GnuHashTab;
if (Config->GnuHash)
Out<ELFT>::GnuHashTab = &GnuHashTab;
else
Out<ELFT>::GnuHashTab = nullptr;
bool IsRela = shouldUseRela<ELFT>();
RelocationSection<ELFT> RelaDyn(IsRela ? ".rela.dyn" : ".rel.dyn", IsRela);
Out<ELFT>::RelaDyn = &RelaDyn;
RelocationSection<ELFT> RelaPlt(IsRela ? ".rela.plt" : ".rel.plt", IsRela);
if (Target->UseLazyBinding)
Out<ELFT>::RelaPlt = &RelaPlt;
else
Out<ELFT>::RelaPlt = nullptr;
DynamicSection<ELFT> Dynamic(*Symtab);
Out<ELFT>::Dynamic = &Dynamic;
EhFrameHeader<ELFT> EhFrameHdr;