Lines Matching defs:ver

161 SmallVector<Symbol *, 0> SymbolTable::findByVersion(SymbolVersion ver) {
162 if (ver.isExternCpp)
163 return getDemangledSyms().lookup(ver.name);
164 if (Symbol *sym = find(ver.name))
170 SmallVector<Symbol *, 0> SymbolTable::findAllByVersion(SymbolVersion ver,
173 SingleStringMatcher m(ver.name);
182 if (ver.isExternCpp) {
199 for (SymbolVersion &ver : ctx.arg.dynamicList) {
200 if (ver.hasWildcard)
201 syms = findAllByVersion(ver, /*includeNonDefault=*/true);
203 syms = findByVersion(ver);
211 // wildcard characters. Return false if no symbol definition matches ver.
212 bool SymbolTable::assignExactVersion(SymbolVersion ver, uint16_t versionId,
216 SmallVector<Symbol *, 0> syms = findByVersion(ver);
218 auto getName = [&ctx = ctx](uint16_t ver) -> std::string {
219 if (ver == VER_NDX_LOCAL)
221 if (ver == VER_NDX_GLOBAL)
223 return ("version '" + ctx.arg.versionDefinitions[ver].name + "'").str();
243 Warn(ctx) << "attempt to reassign symbol '" << ver.name << "' of "
249 void SymbolTable::assignWildcardVersion(SymbolVersion ver, uint16_t versionId,
254 for (Symbol *sym : findAllByVersion(ver, includeNonDefault))
271 auto assignExact = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
273 assignExactVersion(pat, id, ver, /*includeNonDefault=*/false);
277 id, ver, /*includeNonDefault=*/true);
279 Err(ctx) << "version script assignment of '" << ver << "' to symbol '"
293 auto assignWildcard = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
296 assignWildcardVersion({(pat.name + "@" + ver).toStringRef(buf),
315 auto assignAsterisk = [&](SymbolVersion &pat, VersionDefinition *ver,
325 if (!asteriskReported && (isLocal || ver->id > VER_NDX_LOCAL)) {
342 assignWildcard(pat, isLocal ? (uint16_t)VER_NDX_LOCAL : ver->id, ver->name);