summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-03-20 02:15:45 +0000
committerGreg Clayton <gclayton@apple.com>2012-03-20 02:15:45 +0000
commit5400bad64d9fabcdd31256be703602b077bc06db (patch)
tree6bdfe5c44c9207cf9064ca63b1c923d5b5e565cb
parent9ff1ba2546efc87d469ecdcf17f4bd4a4dbbb2cc (diff)
downloadbcm5719-llvm-5400bad64d9fabcdd31256be703602b077bc06db.tar.gz
bcm5719-llvm-5400bad64d9fabcdd31256be703602b077bc06db.zip
<rdar://problem/11078937>
LLDB can match incorrect line table entries when an address is between two valid line entries (in the gap between the valid debug info), now it doesn't! llvm-svn: 153077
-rw-r--r--lldb/source/Symbol/LineTable.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Symbol/LineTable.cpp b/lldb/source/Symbol/LineTable.cpp
index db14eb23571..539645e81b7 100644
--- a/lldb/source/Symbol/LineTable.cpp
+++ b/lldb/source/Symbol/LineTable.cpp
@@ -227,7 +227,9 @@ LineTable::FindLineEntryByAddress (const Address &so_addr, LineEntry& line_entry
}
- if (pos != end_pos)
+ // Make sure we have a valid match and that the match isn't a terminating
+ // entry for a previous line...
+ if (pos != end_pos && pos->is_terminal_entry == false)
{
uint32_t match_idx = std::distance (begin_pos, pos);
success = ConvertEntryAtIndexToLineEntry(match_idx, line_entry);
OpenPOWER on IntegriCloud