Lines Matching refs:sym
34 void SymbolTable::wrap(Symbol *sym, Symbol *real, Symbol *wrap) { in wrap() argument
36 int &idx1 = symMap[CachedHashStringRef(sym->getName())]; in wrap()
44 if (sym->isUsedInRegularObj) in wrap()
47 sym->isUsedInRegularObj = true; in wrap()
48 else if (!sym->isDefined()) in wrap()
52 sym->isUsedInRegularObj = false; in wrap()
61 memcpy(real, sym, sizeof(SymbolUnion)); in wrap()
80 Symbol *sym = symVector[p.first->second]; in insert() local
82 sym->setName(name); in insert()
83 sym->hasVersionSuffix = true; in insert()
85 return sym; in insert()
88 Symbol *sym = reinterpret_cast<Symbol *>(make<SymbolUnion>()); in insert() local
89 symVector.push_back(sym); in insert()
92 memset(sym, 0, sizeof(Symbol)); in insert()
93 sym->setName(name); in insert()
94 sym->partition = 1; in insert()
95 sym->versionId = VER_NDX_GLOBAL; in insert()
97 sym->hasVersionSuffix = true; in insert()
98 return sym; in insert()
104 Symbol *sym = insert(newSym.getName()); in addAndCheckDuplicate() local
105 if (sym->isDefined()) in addAndCheckDuplicate()
106 sym->checkDuplicate(newSym); in addAndCheckDuplicate()
107 sym->resolve(newSym); in addAndCheckDuplicate()
108 sym->isUsedInRegularObj = true; in addAndCheckDuplicate()
109 return sym; in addAndCheckDuplicate()
122 static bool canBeVersioned(const Symbol &sym) { in canBeVersioned() argument
123 return sym.isDefined() || sym.isCommon() || sym.isLazy(); in canBeVersioned()
143 for (Symbol *sym : symVector) in getDemangledSyms()
144 if (canBeVersioned(*sym)) { in getDemangledSyms()
145 StringRef name = sym->getName(); in getDemangledSyms()
157 (*demangledSyms)[demangled].push_back(sym); in getDemangledSyms()
166 if (Symbol *sym = find(ver.name)) in findByVersion() local
167 if (canBeVersioned(*sym)) in findByVersion()
168 return {sym}; in findByVersion()
176 auto check = [&](const Symbol &sym) -> bool { in findAllByVersion() argument
178 return !sym.hasVersionSuffix; in findAllByVersion()
179 StringRef name = sym.getName(); in findAllByVersion()
187 for (Symbol *sym : p.second) in findAllByVersion()
188 if (check(*sym)) in findAllByVersion()
189 res.push_back(sym); in findAllByVersion()
193 for (Symbol *sym : symVector) in findAllByVersion()
194 if (canBeVersioned(*sym) && check(*sym) && m.match(sym->getName())) in findAllByVersion()
195 res.push_back(sym); in findAllByVersion()
207 for (Symbol *sym : syms) in handleDynamicList()
208 sym->inDynamicList = true; in handleDynamicList()
229 for (Symbol *sym : syms) { in assignExactVersion()
234 sym->getName().contains('@')) in assignExactVersion()
238 if (!sym->versionScriptAssigned) { in assignExactVersion()
239 sym->versionScriptAssigned = true; in assignExactVersion()
240 sym->versionId = versionId; in assignExactVersion()
242 if (sym->versionId == versionId) in assignExactVersion()
246 getName(sym->versionId) + " to " + getName(versionId)); in assignExactVersion()
256 for (Symbol *sym : findAllByVersion(ver, includeNonDefault)) in assignWildcardVersion()
257 if (!sym->versionScriptAssigned) { in assignWildcardVersion()
258 sym->versionScriptAssigned = true; in assignWildcardVersion()
259 sym->versionId = versionId; in assignWildcardVersion()
326 for (Symbol *sym : symVector) in scanVersionScript()
327 if (sym->hasVersionSuffix) in scanVersionScript()
328 sym->parseSymbolVersion(); in scanVersionScript()