summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/Archive.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-09 12:49:24 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-09 12:49:24 +0000
commit8115e1da91584ff2edd0e1c1bd0310cc4601d177 (patch)
treeeceea2ebbf1c0233759e2be1c77fc91fbc07c0c4 /llvm/lib/Object/Archive.cpp
parent8e9385ec632e1b632a13d1f6cc3f7b651b35d675 (diff)
downloadbcm5719-llvm-8115e1da91584ff2edd0e1c1bd0310cc4601d177.tar.gz
bcm5719-llvm-8115e1da91584ff2edd0e1c1bd0310cc4601d177.zip
Add missing getters. They will be used in llvm-ar.
llvm-svn: 185937
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r--llvm/lib/Object/Archive.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 52578943dec..292d50a1763 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -61,6 +61,38 @@ uint32_t ArchiveMemberHeader::getSize() const {
return Ret;
}
+sys::fs::perms ArchiveMemberHeader::getAccessMode() const {
+ unsigned Ret;
+ if (StringRef(AccessMode, sizeof(AccessMode)).rtrim(" ").getAsInteger(8, Ret))
+ llvm_unreachable("Access mode is not an octal number.");
+ return static_cast<sys::fs::perms>(Ret);
+}
+
+sys::TimeValue ArchiveMemberHeader::getLastModified() const {
+ unsigned Seconds;
+ if (StringRef(LastModified, sizeof(LastModified)).rtrim(" ")
+ .getAsInteger(10, Seconds))
+ llvm_unreachable("Last modified time not a decimal number.");
+
+ sys::TimeValue Ret;
+ Ret.fromEpochTime(Seconds);
+ return Ret;
+}
+
+unsigned ArchiveMemberHeader::getUID() const {
+ unsigned Ret;
+ if (StringRef(UID, sizeof(UID)).rtrim(" ").getAsInteger(10, Ret))
+ llvm_unreachable("UID time not a decimal number.");
+ return Ret;
+}
+
+unsigned ArchiveMemberHeader::getGID() const {
+ unsigned Ret;
+ if (StringRef(GID, sizeof(GID)).rtrim(" ").getAsInteger(10, Ret))
+ llvm_unreachable("GID time not a decimal number.");
+ return Ret;
+}
+
static const ArchiveMemberHeader *toHeader(const char *base) {
return reinterpret_cast<const ArchiveMemberHeader *>(base);
}
OpenPOWER on IntegriCloud