16c47e7f0c
- Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471).
25 lines
950 B
Diff
25 lines
950 B
Diff
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
|
index 6a98d57..9fa9c3c 100644
|
|
--- a/gdb/dwarf2read.c
|
|
+++ b/gdb/dwarf2read.c
|
|
@@ -10371,6 +10371,9 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd,
|
|
|
|
if (op_code >= lh->opcode_base)
|
|
{
|
|
+ CORE_ADDR saved_address = address;
|
|
+ unsigned int saved_line = line;
|
|
+
|
|
/* Special operand. */
|
|
adj_opcode = op_code - lh->opcode_base;
|
|
address += (((op_index + (adj_opcode / lh->line_range))
|
|
@@ -10383,7 +10386,8 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd,
|
|
dwarf2_debug_line_missing_file_complaint ();
|
|
/* For now we ignore lines not starting on an
|
|
instruction boundary. */
|
|
- else if (op_index == 0)
|
|
+ else if (op_index == 0
|
|
+ && (address != saved_address || line != saved_line))
|
|
{
|
|
lh->file_names[file - 1].included_p = 1;
|
|
if (!decode_for_pst_p && is_stmt)
|