Lines Matching full:other
125 // to that routine as well as other places where we write in getSymVA()
350 // with the same name defined in other ELF executable or DSO.
386 void Symbol::mergeProperties(const Symbol &other) { in mergeProperties() argument
387 if (other.exportDynamic) in mergeProperties()
391 if (!other.isShared() && other.visibility() != STV_DEFAULT) { in mergeProperties()
392 uint8_t v = visibility(), ov = other.visibility(); in mergeProperties()
397 void Symbol::resolve(const Undefined &other) { in resolve() argument
398 if (other.visibility() != STV_DEFAULT) { in resolve()
399 uint8_t v = visibility(), ov = other.visibility(); in resolve()
407 if (isPlaceholder() || (isShared() && other.visibility() != STV_DEFAULT) || in resolve()
408 (isUndefined() && other.binding != STB_WEAK && other.discardedSecIdx)) { in resolve()
409 other.overwrite(*this); in resolve()
414 printTraceSymbol(other, getName()); in resolve()
419 if (other.binding == STB_WEAK) { in resolve()
421 type = other.type; in resolve()
452 // a library order that doesn't work with other Unix linkers. in resolve()
459 // even if foo.a and bar.a depend on each other. With --warn-backrefs, it is in resolve()
475 bool backref = config->warnBackrefs && other.file && in resolve()
476 file->groupId < other.file->groupId; in resolve()
480 recordWhyExtract(other.file, *file, *this); in resolve()
492 std::make_pair(other.file, file)); in resolve()
497 if (isa_and_nonnull<SharedFile>(other.file)) in resolve()
504 if (other.binding != STB_WEAK || !referenced) in resolve()
505 binding = other.binding; in resolve()
510 bool Symbol::shouldReplace(const Defined &other) const { in shouldReplace()
514 return !other.isWeak(); in shouldReplace()
525 return !isGlobal() && other.isGlobal(); in shouldReplace()
570 void Symbol::checkDuplicate(const Defined &other) const { in checkDuplicate()
571 if (isDefined() && !isWeak() && !other.isWeak()) in checkDuplicate()
572 reportDuplicate(*this, other.file, in checkDuplicate()
573 dyn_cast_or_null<InputSectionBase>(other.section), in checkDuplicate()
574 other.value); in checkDuplicate()
577 void Symbol::resolve(const CommonSymbol &other) { in resolve() argument
578 if (other.exportDynamic) in resolve()
580 if (other.visibility() != STV_DEFAULT) { in resolve()
581 uint8_t v = visibility(), ov = other.visibility(); in resolve()
593 oldSym->alignment = std::max(oldSym->alignment, other.alignment); in resolve()
594 if (oldSym->size < other.size) { in resolve()
595 oldSym->file = other.file; in resolve()
596 oldSym->size = other.size; in resolve()
607 other.overwrite(*this); in resolve()
611 other.overwrite(*this); in resolve()
615 void Symbol::resolve(const Defined &other) { in resolve() argument
616 if (other.exportDynamic) in resolve()
618 if (other.visibility() != STV_DEFAULT) { in resolve()
619 uint8_t v = visibility(), ov = other.visibility(); in resolve()
622 if (shouldReplace(other)) in resolve()
623 other.overwrite(*this); in resolve()
626 void Symbol::resolve(const LazySymbol &other) { in resolve() argument
628 other.overwrite(*this); in resolve()
635 other.file->shouldExtractForCommon(getName())) { in resolve()
637 other.overwrite(*this); in resolve()
638 other.extract(); in resolve()
653 other.overwrite(*this); in resolve()
660 other.extract(); in resolve()
665 void Symbol::resolve(const SharedSymbol &other) { in resolve() argument
668 other.overwrite(*this); in resolve()
673 if (other.size > cast<CommonSymbol>(this)->size) in resolve()
674 cast<CommonSymbol>(this)->size = other.size; in resolve()
681 other.overwrite(*this); in resolve()
684 printTraceSymbol(other, getName()); in resolve()