Lines Matching defs:pat
271 auto assignExact = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
273 assignExactVersion(pat, id, ver, /*includeNonDefault=*/false);
275 found |= assignExactVersion({(pat.name + "@" + v.name).toStringRef(buf),
276 pat.isExternCpp, /*hasWildCard=*/false},
280 << pat.name << "' failed: symbol not defined";
282 for (SymbolVersion &pat : v.nonLocalPatterns)
283 if (!pat.hasWildcard)
284 assignExact(pat, v.id, v.name);
285 for (SymbolVersion pat : v.localPatterns)
286 if (!pat.hasWildcard)
287 assignExact(pat, VER_NDX_LOCAL, "local");
293 auto assignWildcard = [&](SymbolVersion pat, uint16_t id, StringRef ver) {
294 assignWildcardVersion(pat, id, /*includeNonDefault=*/false);
296 assignWildcardVersion({(pat.name + "@" + ver).toStringRef(buf),
297 pat.isExternCpp, /*hasWildCard=*/true},
302 for (SymbolVersion &pat : v.nonLocalPatterns)
303 if (pat.hasWildcard && pat.name != "*")
304 assignWildcard(pat, v.id, v.name);
305 for (SymbolVersion &pat : v.localPatterns)
306 if (pat.hasWildcard && pat.name != "*")
307 assignWildcard(pat, VER_NDX_LOCAL, v.name);
315 auto assignAsterisk = [&](SymbolVersion &pat, VersionDefinition *ver,
342 assignWildcard(pat, isLocal ? (uint16_t)VER_NDX_LOCAL : ver->id, ver->name);
345 for (SymbolVersion &pat : v.nonLocalPatterns)
346 if (pat.hasWildcard && pat.name == "*")
347 assignAsterisk(pat, &v, false);
348 for (SymbolVersion &pat : v.localPatterns)
349 if (pat.hasWildcard && pat.name == "*")
350 assignAsterisk(pat, &v, true);