diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-09 12:49:24 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-09 12:49:24 +0000 |
commit | 8115e1da91584ff2edd0e1c1bd0310cc4601d177 (patch) | |
tree | eceea2ebbf1c0233759e2be1c77fc91fbc07c0c4 /llvm/lib/Object/Archive.cpp | |
parent | 8e9385ec632e1b632a13d1f6cc3f7b651b35d675 (diff) | |
download | bcm5719-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.cpp | 32 |
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); } |