aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2012-03-13 00:25:58 +0000
committerCary Coutant <ccoutant@google.com>2012-03-13 00:25:58 +0000
commite8dd54e14a498292154a6511c03d8953379b7688 (patch)
treec3494ee8ba5b6bcc882f5bf97cd34318a60122e2
parentfeb5f3b01670dbd7324e144cb0edd147ea252db3 (diff)
downloadgdb-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.
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/dwarf_reader.cc11
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 <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
(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<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));