aboutsummaryrefslogtreecommitdiff
path: root/bfd/dwarf2.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-05-03 12:49:22 +0000
committerTristan Gingold <gingold@adacore.com>2012-05-03 12:49:22 +0000
commitfec1623758b5b14d80c4a61e82568c65b71aa6d7 (patch)
tree0df48898b7cd3f2b37369b8e1d3f870cfd443239 /bfd/dwarf2.c
parenta20ee7a4a9d43404d9c566453ba6c9578adc3596 (diff)
downloadfsf-binutils-gdb-fec1623758b5b14d80c4a61e82568c65b71aa6d7.zip
fsf-binutils-gdb-fec1623758b5b14d80c4a61e82568c65b71aa6d7.tar.gz
fsf-binutils-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.c8
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);