summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/gold/copy-relocs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.25/gold/copy-relocs.cc')
-rw-r--r--binutils-2.25/gold/copy-relocs.cc34
1 files changed, 13 insertions, 21 deletions
diff --git a/binutils-2.25/gold/copy-relocs.cc b/binutils-2.25/gold/copy-relocs.cc
index 92c5aeaa..41b65631 100644
--- a/binutils-2.25/gold/copy-relocs.cc
+++ b/binutils-2.25/gold/copy-relocs.cc
@@ -1,6 +1,6 @@
// copy-relocs.cc -- handle COPY relocations for gold.
-// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2006-2014 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
@@ -28,25 +28,6 @@
namespace gold
{
-// Copy_relocs::Copy_reloc_entry methods.
-
-// Emit the reloc if appropriate.
-
-template<int sh_type, int size, bool big_endian>
-void
-Copy_relocs<sh_type, size, big_endian>::Copy_reloc_entry::emit(
- Output_data_reloc<sh_type, true, size, big_endian>* reloc_section)
-{
- // If the symbol is no longer defined in a dynamic object, then we
- // emitted a COPY relocation, and we do not want to emit this
- // dynamic relocation.
- if (this->sym_->is_from_dynobj())
- reloc_section->add_global_generic(this->sym_, this->reloc_type_,
- this->output_section_, this->relobj_,
- this->shndx_, this->address_,
- this->addend_);
-}
-
// Copy_relocs methods.
// Handle a relocation against a symbol which may force us to generate
@@ -215,7 +196,18 @@ Copy_relocs<sh_type, size, big_endian>::emit(
for (typename Copy_reloc_entries::iterator p = this->entries_.begin();
p != this->entries_.end();
++p)
- p->emit(reloc_section);
+ {
+ Copy_reloc_entry& entry = *p;
+
+ // If the symbol is no longer defined in a dynamic object, then we
+ // emitted a COPY relocation, and we do not want to emit this
+ // dynamic relocation.
+ if (entry.sym_->is_from_dynobj())
+ reloc_section->add_global_generic(entry.sym_, entry.reloc_type_,
+ entry.output_section_, entry.relobj_,
+ entry.shndx_, entry.address_,
+ entry.addend_);
+ }
// We no longer need the saved information.
this->entries_.clear();