summaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-03-01 22:53:01 +0000
committerCary Coutant <ccoutant@google.com>2013-03-01 22:53:01 +0000
commit0d3ee72c6347b3ce851e9d6d6fb765f9d11d6489 (patch)
tree864da8f7f1c1128a36ea44fc7037e093c37e7fe4 /gold
parent5afea4da041baac17ecaf6363513ee11e1c3e232 (diff)
downloadbinutils-redhat-0d3ee72c6347b3ce851e9d6d6fb765f9d11d6489.tar.gz
gold/
* dwarf_reader.cc (Dwarf_info_reader::check_buffer): Move function into class definition in header file. (Dwarf_info_reader::warn_corrupt_debug_section): New function. * dwarf_reader.h (Dwarf_info_reader::warn_corrupt_debug_section): New function. (Dwarf_info_reader::check_buffer): Move here from .cc file.
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog9
-rw-r--r--gold/dwarf_reader.cc25
-rw-r--r--gold/dwarf_reader.h14
3 files changed, 32 insertions, 16 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 0aa655ea49..61747b06d3 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,12 @@
+2013-03-01 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (Dwarf_info_reader::check_buffer): Move
+ function into class definition in header file.
+ (Dwarf_info_reader::warn_corrupt_debug_section): New function.
+ * dwarf_reader.h (Dwarf_info_reader::warn_corrupt_debug_section):
+ New function.
+ (Dwarf_info_reader::check_buffer): Move here from .cc file.
+
2013-02-28 Alan Modra <amodra@gmail.com>
* target.h (Target::plt_fde_location, do_plt_fde_location): Declare.
diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc
index ec0e845564..de4141827c 100644
--- a/gold/dwarf_reader.cc
+++ b/gold/dwarf_reader.cc
@@ -1141,21 +1141,6 @@ Dwarf_die::sibling_offset()
// class Dwarf_info_reader
-// Check that the pointer P is within the current compilation unit.
-
-inline bool
-Dwarf_info_reader::check_buffer(const unsigned char* p) const
-{
- if (p > this->buffer_ + this->cu_offset_ + this->cu_length_)
- {
- gold_warning(_("%s: corrupt debug info in %s"),
- this->object_->name().c_str(),
- this->object_->section_name(this->shndx_).c_str());
- return false;
- }
- return true;
-}
-
// Begin parsing the debug info. This calls visit_compilation_unit()
// or visit_type_unit() for each compilation or type unit found in the
// section, and visit_die() for each top-level DIE.
@@ -1447,6 +1432,16 @@ Dwarf_info_reader::visit_type_unit(off_t, off_t, uint64_t, Dwarf_die*)
{
}
+// Print a warning about a corrupt debug section.
+
+void
+Dwarf_info_reader::warn_corrupt_debug_section() const
+{
+ gold_warning(_("%s: corrupt debug info in %s"),
+ this->object_->name().c_str(),
+ this->object_->section_name(this->shndx_).c_str());
+}
+
// class Sized_dwarf_line_info
struct LineStateMachine
diff --git a/gold/dwarf_reader.h b/gold/dwarf_reader.h
index 2a8e56edd5..0285ca8cbe 100644
--- a/gold/dwarf_reader.h
+++ b/gold/dwarf_reader.h
@@ -799,9 +799,21 @@ class Dwarf_info_reader
{ this->reloc_mapper_->reset(checkpoint); }
private:
+ // Print a warning about a corrupt debug section.
+ void
+ warn_corrupt_debug_section() const;
+
// Check that P is within the bounds of the current section.
bool
- check_buffer(const unsigned char* p) const;
+ check_buffer(const unsigned char* p) const
+ {
+ if (p > this->buffer_ + this->cu_offset_ + this->cu_length_)
+ {
+ this->warn_corrupt_debug_section();
+ return false;
+ }
+ return true;
+ }
// Read the DWARF string table.
bool