Always initialize Out<ELFT> members.
authorRui Ueyama <ruiu@google.com>
Tue, 2 Feb 2016 00:35:49 +0000 (00:35 +0000)
committerRui Ueyama <ruiu@google.com>
Tue, 2 Feb 2016 00:35:49 +0000 (00:35 +0000)
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

lld/ELF/Writer.cpp

index c67567c..24e5fb4 100644 (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;