[elf2] Pass BSSSec to the relocation handling code differently. Don't store it in the symbol.

llvm-svn: 248393
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 57180df..58ad5ac 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -365,6 +365,11 @@
   }
 
   BSSSec = getSection(".bss", SHT_NOBITS, SHF_ALLOC | SHF_WRITE);
+
+  // The only type in OutputSections is currently OutputSection.
+  for (OutputSectionBase<ELFT::Is64Bits> *OSB : OutputSections)
+    static_cast<OutputSection<ELFT> *>(OSB)->setBssSec(BSSSec);
+
   SymTabSec.setBssSec(BSSSec);
   DynSymSec.setBssSec(BSSSec);
 
@@ -376,7 +381,6 @@
     uintX_t Align = C->MaxAlignment;
     Off = RoundUpToAlignment(Off, Align);
     C->OffsetInBSS = Off;
-    C->OutputSec = BSSSec;
     Off += Sym.st_size;
   }