Fix the Archive::Child::getRawSize() method used by llvm-objdump’s -archive-headers option

and tweak its use in llvm-objdump.  Add back the test case for the -archive-headers option.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226332 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kevin Enderby 2015-01-16 22:10:36 +00:00
parent 2c0f0f92f2
commit 57cc8ad672
4 changed files with 13 additions and 3 deletions

View File

@ -91,7 +91,7 @@ public:
}
/// \return the size of the archive member without the header or padding.
uint64_t getSize() const;
/// \return the size of the archive member with the header and padding.
/// \return the size in the archive header for this member.
uint64_t getRawSize() const;
StringRef getBuffer() const {

View File

@ -111,7 +111,7 @@ uint64_t Archive::Child::getSize() const {
}
uint64_t Archive::Child::getRawSize() const {
return Data.size();
return getHeader()->getSize();
}
Archive::Child Archive::Child::getNext() const {

View File

@ -0,0 +1,10 @@
RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all \
RUN: | FileCheck %s
# Note the date as printed by ctime(3) is time zone dependent and not checked.
CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64)
CHECK: -rw-r--r--124/11 44 {{.*}} __.SYMDEF SORTED
CHECK: -rw-r--r--124/0 860 {{.*}} hello.o
CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386)
CHECK: -rw-r--r--124/11 60 {{.*}} __.SYMDEF SORTED
CHECK: -rw-r--r--124/0 388 {{.*}} foo.o

View File

@ -572,7 +572,7 @@ static void printArchiveChild(Archive::Child &C, bool verbose,
outs() << format("%3d/", UID);
unsigned GID = C.getGID();
outs() << format("%-3d ", GID);
uint64_t Size = C.getRawSize() - sizeof(object::ArchiveMemberHeader);
uint64_t Size = C.getRawSize();
outs() << format("%5d ", Size);
StringRef RawLastModified = C.getRawLastModified();