Removed unused friend declaration.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@185420 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF][Writer] Simplifies the COFFBaseDefinedAtom ctor by defining a new class.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@185515 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Handle hint field in Hint/Name table in the import library.

A hint is an index of the export pointer table in a DLL, at which
PE/COFF loader starts looking for a symbol name. The import library
comes with hints and symbol pairs, and as long as hints are in sync
with the actual symbol table in DLL, the symbols will be resolved
quickly. So, we shouldn't ignore hints but propagate them to an output.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@185516 91177308-0d34-0410-b5e6-96231b3b80d8
Add "explicit" to ctors where appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@185517 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF][Writer] Separate AtomChunk from SectionChunk.

The optional data directory header contains addresses to some atoms such
as the import address table in data section. Such fields can naturally
be set by relocation if we make the optional data driectory as an atom.

Currently we assume that atoms are always in a section, so we can't create
a file header with atoms. This patch separates section chunk from atom
chunk, to allow atom-based file header.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@185521 91177308-0d34-0410-b5e6-96231b3b80d8