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
 
   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()