summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-09 12:45:11 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-09 12:45:11 +0000
commit8e9385ec632e1b632a13d1f6cc3f7b651b35d675 (patch)
tree94719dc0a006679f21e0caf32d223e35ad7a7ca9 /llvm
parent7160fb65113b20a31a410e376797a5c99cff5167 (diff)
downloadbcm5719-llvm-8e9385ec632e1b632a13d1f6cc3f7b651b35d675.tar.gz
bcm5719-llvm-8e9385ec632e1b632a13d1f6cc3f7b651b35d675.zip
Archive members cannot be larger than 4GB. Return a uint32_t.
llvm-svn: 185936
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Object/Archive.h3
-rw-r--r--llvm/lib/Object/Archive.cpp10
2 files changed, 7 insertions, 6 deletions
diff --git a/llvm/include/llvm/Object/Archive.h b/llvm/include/llvm/Object/Archive.h
index 198491c3769..05595572dde 100644
--- a/llvm/include/llvm/Object/Archive.h
+++ b/llvm/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/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 14b21fd6361..52578943dec 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/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) {
OpenPOWER on IntegriCloud