Lines Matching defs:ver
163 SmallVector<Symbol *, 0> SymbolTable::findByVersion(SymbolVersion ver) {
164 if (ver.isExternCpp)
165 return getDemangledSyms().lookup(ver.name);
166 if (Symbol *sym = find(ver.name))
172 SmallVector<Symbol *, 0> SymbolTable::findAllByVersion(SymbolVersion ver,
175 SingleStringMatcher m(ver.name);
184 if (ver.isExternCpp) {
201 for (SymbolVersion &ver : config->dynamicList) {
202 if (ver.hasWildcard)
203 syms = findAllByVersion(ver, /*includeNonDefault=*/true);
205 syms = findByVersion(ver);
213 // wildcard characters. Return false if no symbol definition matches ver.
214 bool SymbolTable::assignExactVersion(SymbolVersion ver, uint16_t versionId,
218 SmallVector<Symbol *, 0> syms = findByVersion(ver);
220 auto getName = [](uint16_t ver) -> std::string {
221 if (ver == VER_NDX_LOCAL)
223 if (ver == VER_NDX_GLOBAL)
225 return ("version '" + config->versionDefinitions[ver].name + "'").str();
245 warn("attempt to reassign symbol '" + ver.name + "' of " +
251 void SymbolTable::assignWildcardVersion(SymbolVersion ver, uint16_t versionId,
256 for (Symbol *sym : findAllByVersion(ver, includeNonDefault))
273 auto assignExact = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
275 assignExactVersion(pat, id, ver, /*includeNonDefault=*/false);
279 id, ver, /*includeNonDefault=*/true);
281 errorOrWarn("version script assignment of '" + ver + "' to symbol '" +
295 auto assignWildcard = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
298 assignWildcardVersion({(pat.name + "@" + ver).toStringRef(buf),