diff options
author | Cary Coutant <ccoutant@google.com> | 2012-03-13 00:25:58 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2012-03-13 00:25:58 +0000 |
commit | e8dd54e14a498292154a6511c03d8953379b7688 (patch) | |
tree | c3494ee8ba5b6bcc882f5bf97cd34318a60122e2 /gold/dwarf_reader.cc | |
parent | feb5f3b01670dbd7324e144cb0edd147ea252db3 (diff) | |
download | gdb-e8dd54e14a498292154a6511c03d8953379b7688.zip gdb-e8dd54e14a498292154a6511c03d8953379b7688.tar.gz gdb-e8dd54e14a498292154a6511c03d8953379b7688.tar.bz2 |
* dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix
handling of DW_LNE_define_file.
Diffstat (limited to 'gold/dwarf_reader.cc')
-rw-r--r-- | gold/dwarf_reader.cc | 11 |
1 files changed, 5 insertions, 6 deletions
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<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)); |