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)