summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2017-09-29 00:33:22 +0000
committerAdrian Prantl <aprantl@apple.com>2017-09-29 00:33:22 +0000
commit714ee4d536366449e6c89b63d423371f81d4f070 (patch)
tree5490b051275dbf791e3ff92f99125020506e3446 /llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
parentb5f39a05a329534979572781b10326c60b0bdc9e (diff)
downloadbcm5719-llvm-714ee4d536366449e6c89b63d423371f81d4f070.tar.gz
bcm5719-llvm-714ee4d536366449e6c89b63d423371f81d4f070.zip
llvm-dwarfdump: add support for .apple_types in --find
llvm-svn: 314479
Diffstat (limited to 'llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp')
-rw-r--r--llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
index 9c4a7c88bb3..a36926d1097 100644
--- a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
+++ b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
@@ -247,11 +247,20 @@ static bool dumpObjectFile(ObjectFile &Obj, DWARFContext &DICtx, Twine Filename,
// Handle the --find option and lower it to --debug-info=<offset>.
if (!Find.empty()) {
DumpOffsets[DIDT_ID_DebugInfo] = [&]() -> llvm::Optional<uint64_t> {
- for (auto Name : Find)
- for (auto Entry : DICtx.getAppleNames().equal_range(Name))
- for (auto Atom : Entry)
- if (auto Offset = Atom.getAsSectionOffset())
- return DumpOffsets[DIDT_ID_DebugInfo] = *Offset;
+ for (auto Name : Find) {
+ auto find = [&](const DWARFAcceleratorTable &Accel)
+ -> llvm::Optional<uint64_t> {
+ for (auto Entry : Accel.equal_range(Name))
+ for (auto Atom : Entry)
+ if (auto Offset = Atom.getAsSectionOffset())
+ return Offset;
+ return None;
+ };
+ if (auto Offset = find(DICtx.getAppleNames()))
+ return DumpOffsets[DIDT_ID_DebugInfo] = *Offset;
+ if (auto Offset = find(DICtx.getAppleTypes()))
+ return DumpOffsets[DIDT_ID_DebugInfo] = *Offset;
+ }
return None;
}();
// Early exit if --find was specified but the current file doesn't have it.
OpenPOWER on IntegriCloud