Assorted bugfixes in object file handling:
authorEric Christopher <echristo@apple.com>
Sun, 3 Apr 2011 22:53:19 +0000 (22:53 +0000)
committerEric Christopher <echristo@apple.com>
Sun, 3 Apr 2011 22:53:19 +0000 (22:53 +0000)
commit539d8d8a72995d08afe7b986fe98a1dc7fec4b0a
treee2a279ac67ecb0a4297e67753e0a608a73ae1af0
parente243fd9e2be8897c9350650b724d7eda2f607f8f
Assorted bugfixes in object file handling:

 - Adds support for sniffing PE/COFF files on win32 (.exe and .dll)
   which are COFF files that have an MS-DOS compatibility stub on
   the front of them.

 - Fixes a bug in the COFFObjectFile's support for the Microsoft COFF
   extension for long symbol names, wherein it was attempting to parse
   the leading '/' in an extended symbol name reference as part of the
   integer offset.

 - Fixes bugs in COFFObjectFile and ELFObjectFile wherein section
   and symbol iterators were being returned with uninitialized bytes;
   the type DataRefImpl is a union between 2 32-bit words (d.a and d.b)
   and a single intptr_t word (p). Only p was being initialized, so in
   32-bit builds the result would be iterators with random upper 32-bit
   words in their DataRefImpls. This caused random failures when
   seeking around in object files.

Patch by Graydon Hoare!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128799 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Object/COFFObjectFile.cpp
lib/Object/ELFObjectFile.cpp
lib/Support/Path.cpp