diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-09 12:45:11 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-09 12:45:11 +0000 |
| commit | 2012593f180d29081e6c609f667e1f63b729209a (patch) | |
| tree | 2d5df59a387c7f02fced071d02beb29f257cf23a | |
| parent | 92f7386cae3fe3cabe7300171a5dc9b4bf8b352d (diff) | |
| download | external_llvm-2012593f180d29081e6c609f667e1f63b729209a.zip external_llvm-2012593f180d29081e6c609f667e1f63b729209a.tar.gz external_llvm-2012593f180d29081e6c609f667e1f63b729209a.tar.bz2 | |
Archive members cannot be larger than 4GB. Return a uint32_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185936 91177308-0d34-0410-b5e6-96231b3b80d8
| -rw-r--r-- | include/llvm/Object/Archive.h | 3 | ||||
| -rw-r--r-- | lib/Object/Archive.cpp | 10 |
2 files changed, 7 insertions, 6 deletions
diff --git a/include/llvm/Object/Archive.h b/include/llvm/Object/Archive.h index 198491c..0559557 100644 --- a/include/llvm/Object/Archive.h +++ b/include/llvm/Object/Archive.h @@ -33,7 +33,8 @@ struct ArchiveMemberHeader { /// Get the name without looking up long names. llvm::StringRef getName() const; - uint64_t getSize() const; + /// Members are not larger than 4GB. + uint32_t getSize() const; }; class Archive : public Binary { diff --git a/lib/Object/Archive.cpp b/lib/Object/Archive.cpp index 14b21fd..5257894 100644 --- a/lib/Object/Archive.cpp +++ b/lib/Object/Archive.cpp @@ -54,11 +54,11 @@ StringRef ArchiveMemberHeader::getName() const { return llvm::StringRef(Name, end); } -uint64_t ArchiveMemberHeader::getSize() const { - uint64_t ret; - if (llvm::StringRef(Size, sizeof(Size)).rtrim(" ").getAsInteger(10, ret)) - llvm_unreachable("Size is not an integer."); - return ret; +uint32_t ArchiveMemberHeader::getSize() const { + uint32_t Ret; + if (llvm::StringRef(Size, sizeof(Size)).rtrim(" ").getAsInteger(10, Ret)) + llvm_unreachable("Size is not a decimal number."); + return Ret; } static const ArchiveMemberHeader *toHeader(const char *base) { |
