diff options
| author | Greg Clayton <gclayton@apple.com> | 2015-01-15 03:13:44 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2015-01-15 03:13:44 +0000 |
| commit | f7bb1fba36f50bf6a135fd808ce9fdae20d7040c (patch) | |
| tree | 7141b7a3d1a25677c2a0b7fb0a38c6d03b7c84e4 /lldb/source | |
| parent | dd669615dd604f5ac4d89c6c062cd8a7bf345f38 (diff) | |
| download | bcm5719-llvm-f7bb1fba36f50bf6a135fd808ce9fdae20d7040c.tar.gz bcm5719-llvm-f7bb1fba36f50bf6a135fd808ce9fdae20d7040c.zip | |
Don't crash when we can't find a block for some reason, just try and do the right thing and fail gracefully.
<rdar://problem/19196221>
llvm-svn: 226087
Diffstat (limited to 'lldb/source')
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index d3c62c85ab5..e5fa755af58 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -3485,9 +3485,11 @@ SymbolFileDWARF::ResolveFunction (DWARFCompileUnit *cu, // Parse all blocks if needed if (inlined_die) { - sc.block = sc.function->GetBlock (true).FindBlockByID (MakeUserID(inlined_die->GetOffset())); - assert (sc.block != NULL); - if (sc.block->GetStartAddress (addr) == false) + Block &function_block = sc.function->GetBlock (true); + sc.block = function_block.FindBlockByID (MakeUserID(inlined_die->GetOffset())); + if (sc.block == NULL) + sc.block = function_block.FindBlockByID (inlined_die->GetOffset()); + if (sc.block == NULL || sc.block->GetStartAddress (addr) == false) addr.Clear(); } else |

