diff options
-rw-r--r-- | llvm/test/tools/llvm-size/Inputs/darwin-m.o | bin | 0 -> 228 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-size/darwin-m.test | 7 | ||||
-rw-r--r-- | llvm/tools/llvm-size/llvm-size.cpp | 10 |
3 files changed, 13 insertions, 4 deletions
diff --git a/llvm/test/tools/llvm-size/Inputs/darwin-m.o b/llvm/test/tools/llvm-size/Inputs/darwin-m.o Binary files differnew file mode 100644 index 00000000000..9672df524c7 --- /dev/null +++ b/llvm/test/tools/llvm-size/Inputs/darwin-m.o diff --git a/llvm/test/tools/llvm-size/darwin-m.test b/llvm/test/tools/llvm-size/darwin-m.test new file mode 100644 index 00000000000..23d636ba32b --- /dev/null +++ b/llvm/test/tools/llvm-size/darwin-m.test @@ -0,0 +1,7 @@ +RUN: llvm-size -m %p/Inputs/darwin-m.o | FileCheck --check-prefix="DARWIN" %s + +DARWIN: Segment : 8 +DARWIN-NEXT: Section (__TEXT, __text): 4 +DARWIN-NEXT: Section (__DATA, __data): 4 +DARWIN-NEXT: total 8 +DARWIN-NEXT: total 8 diff --git a/llvm/tools/llvm-size/llvm-size.cpp b/llvm/tools/llvm-size/llvm-size.cpp index 159afcf6c86..5addbb3ea9d 100644 --- a/llvm/tools/llvm-size/llvm-size.cpp +++ b/llvm/tools/llvm-size/llvm-size.cpp @@ -171,10 +171,11 @@ static void PrintDarwinSectionSizes(MachOObjectFile *MachO) { outs() << "\ttotal " << format(fmt.str().c_str(), sec_total) << "\n"; } else if (Load.C.cmd == MachO::LC_SEGMENT) { MachO::segment_command Seg = MachO->getSegmentLoadCommand(Load); + uint64_t Seg_vmsize = Seg.vmsize; outs() << "Segment " << Seg.segname << ": " - << format(fmt.str().c_str(), Seg.vmsize); + << format(fmt.str().c_str(), Seg_vmsize); if (DarwinLongFormat) - outs() << " (vmaddr 0x" << format("%" PRIx64, Seg.vmaddr) << " fileoff " + outs() << " (vmaddr 0x" << format("%" PRIx32, Seg.vmaddr) << " fileoff " << Seg.fileoff << ")"; outs() << "\n"; total += Seg.vmsize; @@ -186,9 +187,10 @@ static void PrintDarwinSectionSizes(MachOObjectFile *MachO) { << format("%.16s", &Sec.sectname) << "): "; else outs() << "\tSection " << format("%.16s", &Sec.sectname) << ": "; - outs() << format(fmt.str().c_str(), Sec.size); + uint64_t Sec_size = Sec.size; + outs() << format(fmt.str().c_str(), Sec_size); if (DarwinLongFormat) - outs() << " (addr 0x" << format("%" PRIx64, Sec.addr) << " offset " + outs() << " (addr 0x" << format("%" PRIx32, Sec.addr) << " offset " << Sec.offset << ")"; outs() << "\n"; sec_total += Sec.size; |