summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-11-13 07:04:33 +0000
committerRui Ueyama <ruiu@google.com>2013-11-13 07:04:33 +0000
commitcc10b5b07e5d2b8db2a772ea74f799a4c72abd2b (patch)
tree924d26ed9789626e56ca44e2019fc83c774e620e
parent750db65bacfcdcc28e41fdc0be5153f258e0cf55 (diff)
downloadbcm5719-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.cpp10
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;
};
OpenPOWER on IntegriCloud