aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Object/Archive.h3
-rw-r--r--lib/Object/Archive.cpp10
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) {