summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/MachODumper.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-09-26 22:32:16 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-09-26 22:32:16 +0000
commitdac39857d6545e32f20f0735a04b934f36b6c1d9 (patch)
treea969577804c80a12810628209ad39403b5edd65b /llvm/tools/llvm-readobj/MachODumper.cpp
parentb774a0e75071f4b32e741297b4e017615b01a8a9 (diff)
downloadbcm5719-llvm-dac39857d6545e32f20f0735a04b934f36b6c1d9.tar.gz
bcm5719-llvm-dac39857d6545e32f20f0735a04b934f36b6c1d9.zip
Object: BSS/virtual sections don't have contents
Users of getSectionContents shouldn't try to pass in BSS or virtual sections. In all instances, this is a bug in the code calling this routine. N.B. Some COFF implementations (like CL) will mark their BSS sections as taking space on disk. This would confuse COFFObjectFile into thinking the section is larger than the file. llvm-svn: 218549
Diffstat (limited to 'llvm/tools/llvm-readobj/MachODumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/MachODumper.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/tools/llvm-readobj/MachODumper.cpp b/llvm/tools/llvm-readobj/MachODumper.cpp
index 41a78e762fb..2d09282f11f 100644
--- a/llvm/tools/llvm-readobj/MachODumper.cpp
+++ b/llvm/tools/llvm-readobj/MachODumper.cpp
@@ -266,11 +266,16 @@ void MachODumper::printSections(const MachOObjectFile *Obj) {
}
if (opts::SectionData) {
- StringRef Data;
- if (error(Section.getContents(Data)))
+ bool IsBSS;
+ if (error(Section.isBSS(IsBSS)))
break;
+ if (!IsBSS) {
+ StringRef Data;
+ if (error(Section.getContents(Data)))
+ break;
- W.printBinaryBlock("SectionData", Data);
+ W.printBinaryBlock("SectionData", Data);
+ }
}
}
}
OpenPOWER on IntegriCloud