diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-09-29 00:33:22 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-09-29 00:33:22 +0000 |
commit | 714ee4d536366449e6c89b63d423371f81d4f070 (patch) | |
tree | 5490b051275dbf791e3ff92f99125020506e3446 /llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp | |
parent | b5f39a05a329534979572781b10326c60b0bdc9e (diff) | |
download | bcm5719-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.cpp | 19 |
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. |