summaryrefslogtreecommitdiff
path: root/bfd/dwarf2.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-05-03 12:49:21 +0000
committerTristan Gingold <gingold@adacore.com>2012-05-03 12:49:21 +0000
commitd2ed484e3c1b10f3ab4ed7f0095ec10b01ff3113 (patch)
tree77e932e0fcf5fd065878c974c9e89c08c79c6d88 /bfd/dwarf2.c
parentdda2fc62dce1d451ae6b98237cad5a8a71cea374 (diff)
downloadbinutils-redhat-d2ed484e3c1b10f3ab4ed7f0095ec10b01ff3113.tar.gz
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 51e27b448c..f7d5d4a113 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);