diff options
| author | Rui Ueyama <ruiu@google.com> | 2013-11-13 07:04:33 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2013-11-13 07:04:33 +0000 |
| commit | cc10b5b07e5d2b8db2a772ea74f799a4c72abd2b (patch) | |
| tree | 924d26ed9789626e56ca44e2019fc83c774e620e | |
| parent | 750db65bacfcdcc28e41fdc0be5153f258e0cf55 (diff) | |
| download | bcm5719-llvm-cc10b5b07e5d2b8db2a772ea74f799a4c72abd2b.tar.gz bcm5719-llvm-cc10b5b07e5d2b8db2a772ea74f799a4c72abd2b.zip | |
[PECOFF] Make ReaderCOFF more robust against planned identity_magic() changes.
No functionality change.
llvm-svn: 194560
| -rw-r--r-- | lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp index 40bf988a987..18026a19478 100644 --- a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp @@ -758,9 +758,9 @@ public: if (fileType == llvm::sys::fs::file_magic::windows_resource) return convertAndParseResourceFile(mb, result); - if (fileType == llvm::sys::fs::file_magic::coff_object) - return parseCOFFFile(mb, result); - return lld::coff::parseCOFFImportLibrary(_context, mb, result); + if (isImportLibrary(magic)) + return lld::coff::parseCOFFImportLibrary(_context, mb, result); + return parseCOFFFile(mb, result); } private: @@ -929,6 +929,10 @@ private: return error_code::success(); } + static bool isImportLibrary(StringRef magic) { + return magic[2] == (char)0xff && magic[3] == (char)0xff; + } + PECOFFLinkingContext &_PECOFFLinkingContext; mutable BumpPtrStringSaver _stringSaver; }; |

