diff options
Diffstat (limited to 'gold/resolve.cc')
-rw-r--r-- | gold/resolve.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc index 71d5109..8850a3d 100644 --- a/gold/resolve.cc +++ b/gold/resolve.cc @@ -887,7 +887,8 @@ Symbol_table::should_override_with_special(const Symbol* to, Defined defined) void Symbol::override_base_with_special(const Symbol* from) { - gold_assert(this->name_ == from->name_ || this->has_alias()); + bool same_name = this->name_ == from->name_; + gold_assert(same_name || this->has_alias()); this->source_ = from->source_; switch (from->source_) @@ -909,7 +910,8 @@ Symbol::override_base_with_special(const Symbol* from) break; } - this->override_version(from->version_); + if (same_name) + this->override_version(from->version_); this->type_ = from->type_; this->binding_ = from->binding_; this->override_visibility(from->visibility_); |