aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-08-29 03:42:51 +0000
committerIan Lance Taylor <iant@google.com>2007-08-29 03:42:51 +0000
commit1ebd95fdf1ebf842d59c98715fa7b62ba85f0c83 (patch)
tree712e3e081348abc7134d94f2546db96c21b38c7f /gold
parentae13662f958ab4a001294eb832f0dc058fc7c8fa (diff)
downloadfsf-binutils-gdb-1ebd95fdf1ebf842d59c98715fa7b62ba85f0c83.zip
fsf-binutils-gdb-1ebd95fdf1ebf842d59c98715fa7b62ba85f0c83.tar.gz
fsf-binutils-gdb-1ebd95fdf1ebf842d59c98715fa7b62ba85f0c83.tar.bz2
Copy in_reg and in_dyn when resolving NAME/VERSION with NAME/NULL.
Diffstat (limited to 'gold')
-rw-r--r--gold/symtab.cc4
-rw-r--r--gold/symtab.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc
index a570134..68ce3b1 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -267,6 +267,10 @@ Symbol_table::resolve(Sized_symbol<size>* to, const Sized_symbol<size>* from,
esym.put_st_other(from->visibility(), from->nonvis());
esym.put_st_shndx(from->shndx());
Symbol_table::resolve(to, esym.sym(), from->object(), version);
+ if (from->in_reg())
+ to->set_in_reg();
+ if (from->in_dyn())
+ to->set_in_dyn();
}
// Add one symbol from OBJECT to the symbol table. NAME is symbol
diff --git a/gold/symtab.h b/gold/symtab.h
index cba97d0..15d1f78 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -195,6 +195,11 @@ class Symbol
set_in_reg()
{ this->in_reg_ = true; }
+ // Return whether this symbol has been seen in a dynamic object.
+ bool
+ in_dyn() const
+ { return this->in_dyn_; }
+
// Mark this symbol as having been seen in a dynamic object.
void
set_in_dyn()