From e8dd54e14a498292154a6511c03d8953379b7688 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 13 Mar 2012 00:25:58 +0000 Subject: [PATCH] * dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix handling of DW_LNE_define_file. --- gold/ChangeLog | 5 +++++ gold/dwarf_reader.cc | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index f0ec893..0a72132 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,10 @@ 2012-03-12 Cary Coutant + * dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix + handling of DW_LNE_define_file. + +2012-03-12 Cary Coutant + * reduced_debug_output.cc (Output_reduced_debug_info_section::get_die_end): Add new FORM codes to switch. diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc index 73f84b0..189e6a6 100644 --- a/gold/dwarf_reader.cc +++ b/gold/dwarf_reader.cc @@ -413,17 +413,16 @@ Sized_dwarf_line_info::process_one_opcode( start += templen; uint64_t dirindex = read_unsigned_LEB_128(start, &templen); - oplen += templen; if (dirindex >= this->directories_.back().size()) dirindex = 0; int dirindexi = static_cast(dirindex); - read_unsigned_LEB_128(start, &templen); // mod_time - oplen += templen; - - read_unsigned_LEB_128(start, &templen); // filelength - oplen += templen; + // This opcode takes two additional ULEB128 parameters + // (mod_time and filelength), but we don't use those + // values. Because OPLEN already tells us how far to + // skip to the next opcode, we don't need to read + // them at all. this->files_.back().push_back(std::make_pair(dirindexi, filename)); -- 2.7.4