summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/MachODump.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-12-19 14:15:04 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-12-19 14:15:04 +0000
commitaa7b27801c393c023d41f3492d60258abee049fe (patch)
treed6db6de827b58e65795091ffe83ec45942ec71bd /llvm/tools/llvm-objdump/MachODump.cpp
parentabeae5c7d5f2e2d2667450ea5cdf984edec673d7 (diff)
downloadbcm5719-llvm-aa7b27801c393c023d41f3492d60258abee049fe.tar.gz
bcm5719-llvm-aa7b27801c393c023d41f3492d60258abee049fe.zip
Add r170095 back.
I cannot reproduce it the failures locally, so I will keep an eye at the ppc bots. This patch does add the change to the "Disassembly of section" message, but that is not what was failing on the bots. Original message: Add a funciton to get the segment name of a section. On MachO, sections also have segment names. When a tool looking at a .o file prints a segment name, this is what they mean. In reality, a .o has only one anonymous, segment. This patch adds a MachO only function to fetch that segment name. I named it getSectionFinalSegmentName since the main use for the name seems to be infor the linker with segment this section should go to. The patch also changes MachOObjectFile::getSectionName to return just the section name instead of computing SegmentName,SectionName. llvm-svn: 170545
Diffstat (limited to 'llvm/tools/llvm-objdump/MachODump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/MachODump.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp
index 3a350382ae1..c324ff13a6b 100644
--- a/llvm/tools/llvm-objdump/MachODump.cpp
+++ b/llvm/tools/llvm-objdump/MachODump.cpp
@@ -334,9 +334,15 @@ void llvm::DisassembleInputMachO(StringRef Filename) {
for (unsigned SectIdx = 0; SectIdx != Sections.size(); SectIdx++) {
StringRef SectName;
if (Sections[SectIdx].getName(SectName) ||
- SectName.compare("__TEXT,__text"))
+ SectName != "__text")
continue; // Skip non-text sections
+ StringRef SegmentName;
+ DataRefImpl DR = Sections[SectIdx].getRawDataRefImpl();
+ if (MachOOF->getSectionFinalSegmentName(DR, SegmentName) ||
+ SegmentName != "__TEXT")
+ continue;
+
// Insert the functions from the function starts segment into our map.
uint64_t VMAddr;
Sections[SectIdx].getAddress(VMAddr);
OpenPOWER on IntegriCloud