Recognize 0x0000 as a COFF file magic.

Summary:
Some machine-type-neutral object files containing only undefined symbols
actually do exist in the Windows standard library. Need to recognize them
as COFF files.

Reviewers: Bigcheese

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2164

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194734 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rui Ueyama
2013-11-14 22:09:08 +00:00
parent 6a1a5e94e2
commit b850a05f2c
4 changed files with 21 additions and 0 deletions

View File

@@ -853,6 +853,9 @@ error_code has_magic(const Twine &path, const Twine &magic, bool &result) {
if (Magic.size() >= sizeof(Expected) &&
memcmp(Magic.data(), Expected, sizeof(Expected)) == 0)
return file_magic::windows_resource;
// 0x0000 = COFF unknown machine type
if (Magic[1] == 0)
return file_magic::coff_object;
break;
}
case 0xDE: // 0x0B17C0DE = BC wraper