Lines Matching defs:sym
51 std::string lld::toString(const elf::Symbol &sym) {
52 StringRef name = sym.getName();
55 const char *suffix = sym.getVersionSuffix();
78 static uint64_t getSymVA(const Symbol &sym, int64_t addend) {
79 switch (sym.kind()) {
81 auto &d = cast<Defined>(sym);
130 ((sym.stOther & STO_MIPS_MICROMIPS) || sym.hasFlag(NEEDS_COPY)))
294 void elf::printTraceSymbol(const Symbol &sym, StringRef name) {
296 if (sym.isUndefined())
298 else if (sym.isLazy())
300 else if (sym.isShared())
302 else if (sym.isCommon())
307 message(toString(sym.file) + s + name);
311 const InputFile &extracted, const Symbol &sym) {
312 ctx.whyExtractRecords.emplace_back(toString(reference), &extracted, sym);
315 void elf::maybeWarnUnorderableSymbol(const Symbol *sym) {
325 if (sym->isUndefined() && !cast<Undefined>(sym)->discardedSecIdx &&
329 const InputFile *file = sym->file;
330 auto *d = dyn_cast<Defined>(sym);
332 auto report = [&](StringRef s) { warn(toString(file) + s + sym->getName()); };
334 if (sym->isUndefined()) {
335 if (cast<Undefined>(sym)->discardedSecIdx)
339 } else if (sym->isShared())
351 bool elf::computeIsPreemptible(const Symbol &sym) {
352 assert(!sym.isLocal() || sym.isPlaceholder());
356 if (!sym.includeInDynsym() || sym.visibility() != STV_DEFAULT)
361 if (!sym.isDefined())
373 sym.binding != STB_WEAK) ||
374 (config->bsymbolic == BsymbolicKind::Functions && sym.isFunc()) ||
375 (config->bsymbolic == BsymbolicKind::NonWeakFunctions && sym.isFunc() &&
376 sym.binding != STB_WEAK))
377 return sym.inDynamicList;
528 void elf::reportDuplicate(const Symbol &sym, const InputFile *newFile,
535 const Defined *d = dyn_cast<Defined>(&sym);
542 errorOrWarn("duplicate symbol: " + toString(sym) + "\n>>> defined in " +
543 toString(sym.file) + "\n>>> defined in " + toString(newFile));
555 std::string src1 = sec1->getSrcMsg(sym, d->value);
557 std::string src2 = errSec->getSrcMsg(sym, errOffset);
560 std::string msg = "duplicate symbol: " + toString(sym) + "\n>>> defined at ";
687 void Defined::overwrite(Symbol &sym) const {
688 if (isa_and_nonnull<SharedFile>(sym.file))
689 sym.versionId = VER_NDX_GLOBAL;
690 Symbol::overwrite(sym, DefinedKind);
691 auto &s = static_cast<Defined &>(sym);