diff options
author | Tristan Gingold <gingold@adacore.com> | 2012-05-03 12:49:22 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2012-05-03 12:49:22 +0000 |
commit | fec1623758b5b14d80c4a61e82568c65b71aa6d7 (patch) | |
tree | 0df48898b7cd3f2b37369b8e1d3f870cfd443239 /bfd/dwarf2.c | |
parent | a20ee7a4a9d43404d9c566453ba6c9578adc3596 (diff) | |
download | gdb-fec1623758b5b14d80c4a61e82568c65b71aa6d7.zip gdb-fec1623758b5b14d80c4a61e82568c65b71aa6d7.tar.gz gdb-fec1623758b5b14d80c4a61e82568c65b71aa6d7.tar.bz2 |
2012-05-03 Tristan Gingold <gingold@adacore.com>
* dwarf2.c (decode_line_info): Ignore
DW_LNE_HP_source_file_correlation.
Diffstat (limited to 'bfd/dwarf2.c')
-rw-r--r-- | bfd/dwarf2.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 51e27b4..f7d5d4a 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -1401,6 +1401,7 @@ decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash) unsigned int i, bytes_read, offset_size; char *cur_file, *cur_dir; unsigned char op_code, extended_op, adj_opcode; + unsigned int exop_len; bfd_size_type amt; if (! read_section (abfd, &stash->debug_sections[debug_line], @@ -1604,8 +1605,8 @@ decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash) else switch (op_code) { case DW_LNS_extended_op: - /* Ignore length. */ - line_ptr += 1; + exop_len = read_unsigned_leb128 (abfd, line_ptr, &bytes_read); + line_ptr += bytes_read; extended_op = read_1_byte (abfd, line_ptr); line_ptr += 1; @@ -1658,6 +1659,9 @@ decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash) (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read); line_ptr += bytes_read; break; + case DW_LNE_HP_source_file_correlation: + line_ptr += exop_len - 1; + break; default: (*_bfd_error_handler) (_("Dwarf Error: mangled line number section.")); bfd_set_error (bfd_error_bad_value); |