aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-11-14 18:33:47 +0000
committerIan Lance Taylor <iant@google.com>2007-11-14 18:33:47 +0000
commita18f2bd699004425944ed7633fdd792a6e332c96 (patch)
tree1428c6948111f99cc560f75002a7c1f96ea03bd0
parent9a2d69841557c502021be98221a796ebe253fa09 (diff)
downloadgdb-a18f2bd699004425944ed7633fdd792a6e332c96.zip
gdb-a18f2bd699004425944ed7633fdd792a6e332c96.tar.gz
gdb-a18f2bd699004425944ed7633fdd792a6e332c96.tar.bz2
From Craig Silverstein: Clean up DWARF line reader code.
-rw-r--r--gold/dwarf_reader.cc6
-rw-r--r--gold/dwarf_reader.h6
2 files changed, 2 insertions, 10 deletions
diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc
index d07e3e7..e3e1963 100644
--- a/gold/dwarf_reader.cc
+++ b/gold/dwarf_reader.cc
@@ -630,7 +630,7 @@ Sized_dwarf_line_info<size, big_endian>::do_addr2line(unsigned int shndx,
// If we found an exact match, great, otherwise find the last entry
// before the passed-in offset.
- if (it->offset > offset)
+ if (it == offsets->end() || it->offset > offset)
{
if (it == offsets->begin())
return "";
@@ -673,10 +673,6 @@ Sized_dwarf_line_info<size, big_endian>::do_addr2line(unsigned int shndx,
// Dwarf_line_info routines.
-// Note: this routine instantiates the appropriate
-// Sized_dwarf_line_info templates for this config, so we don't have
-// to have a separte instantiation section for them.
-
std::string
Dwarf_line_info::one_addr2line(Object* object,
unsigned int shndx, off_t offset)
diff --git a/gold/dwarf_reader.h b/gold/dwarf_reader.h
index cefc027..4ce65b0 100644
--- a/gold/dwarf_reader.h
+++ b/gold/dwarf_reader.h
@@ -72,16 +72,12 @@ class Dwarf_line_info
};
template<int size, bool big_endian>
-class Sized_dwarf_line_info
+class Sized_dwarf_line_info : public Dwarf_line_info
{
public:
// Initializes a .debug_line reader for a given object file.
Sized_dwarf_line_info(Object* object);
- std::string
- addr2line(unsigned int shndx, off_t offset)
- { return do_addr2line(shndx, offset); }
-
private:
std::string
do_addr2line(unsigned int shndx, off_t offset);