* dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix

handling of DW_LNE_define_file.
This commit is contained in:
Cary Coutant 2012-03-13 00:25:58 +00:00
parent feb5f3b016
commit e8dd54e14a
2 changed files with 10 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2012-03-12 Cary Coutant <ccoutant@google.com>
* dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix
handling of DW_LNE_define_file.
2012-03-12 Cary Coutant <ccoutant@google.com>
* reduced_debug_output.cc

View File

@ -413,17 +413,16 @@ Sized_dwarf_line_info<size, big_endian>::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<int>(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));