mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 13:56:22 +08:00
PR21957, addr2line incorrectly handles non-increasing sequences in line table
PR 21957 * dwarf2.c (new_line_sorts_after): Remove end_sequence comparison. (add_line_info): Always put end_sequence last.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2017-10-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR 21957
|
||||||
|
* dwarf2.c (new_line_sorts_after): Remove end_sequence comparison.
|
||||||
|
(add_line_info): Always put end_sequence last.
|
||||||
|
|
||||||
2017-10-01 Alan Modra <amodra@gmail.com>
|
2017-10-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
PR 22047
|
PR 22047
|
||||||
|
@ -1420,9 +1420,7 @@ new_line_sorts_after (struct line_info *new_line, struct line_info *line)
|
|||||||
{
|
{
|
||||||
return (new_line->address > line->address
|
return (new_line->address > line->address
|
||||||
|| (new_line->address == line->address
|
|| (new_line->address == line->address
|
||||||
&& (new_line->op_index > line->op_index
|
&& new_line->op_index > line->op_index));
|
||||||
|| (new_line->op_index == line->op_index
|
|
||||||
&& new_line->end_sequence < line->end_sequence))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1508,7 +1506,8 @@ add_line_info (struct line_info_table *table,
|
|||||||
table->sequences = seq;
|
table->sequences = seq;
|
||||||
table->num_sequences++;
|
table->num_sequences++;
|
||||||
}
|
}
|
||||||
else if (new_line_sorts_after (info, seq->last_line))
|
else if (info->end_sequence
|
||||||
|
|| new_line_sorts_after (info, seq->last_line))
|
||||||
{
|
{
|
||||||
/* Normal case: add 'info' to the beginning of the current sequence. */
|
/* Normal case: add 'info' to the beginning of the current sequence. */
|
||||||
info->prev_line = seq->last_line;
|
info->prev_line = seq->last_line;
|
||||||
|
Reference in New Issue
Block a user