uint32_t lno = cur_info.getStartLine();
- line_set.emplace(addr, lno, 0, file_index, is_statement, false,
- is_prologue, is_epilogue, false);
+ LineTable::Entry new_entry(addr, lno, 0, file_index, is_statement, false,
+ is_prologue, is_epilogue, false);
+ // Terminal entry has lower precedence than new entry.
+ auto iter = line_set.find(new_entry);
+ if (iter != line_set.end() && iter->is_terminal_entry)
+ line_set.erase(iter);
+ line_set.insert(new_entry);
if (line_entry.GetRangeBase() != LLDB_INVALID_ADDRESS) {
line_entry.SetRangeEnd(addr);