Lines Matching refs:Sym
241 static bool isUnneededSymbol(const Symbol &Sym) { in isUnneededSymbol() argument
242 return !Sym.Referenced && in isUnneededSymbol()
243 (Sym.Binding == STB_LOCAL || Sym.getShndx() == SHN_UNDEF) && in isUnneededSymbol()
244 Sym.Type != STT_SECTION; in isUnneededSymbol()
253 Obj.SymbolTable->updateSymbols([&](Symbol &Sym) { in updateAndRemoveSymbols() argument
256 if (!Sym.isCommon() && Sym.getShndx() != SHN_UNDEF && in updateAndRemoveSymbols()
258 (Sym.Visibility == STV_HIDDEN || Sym.Visibility == STV_INTERNAL)) || in updateAndRemoveSymbols()
259 Config.SymbolsToLocalize.matches(Sym.Name))) in updateAndRemoveSymbols()
260 Sym.Binding = STB_LOCAL; in updateAndRemoveSymbols()
273 !Config.SymbolsToKeepGlobal.matches(Sym.Name) && in updateAndRemoveSymbols()
274 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
275 Sym.Binding = STB_LOCAL; in updateAndRemoveSymbols()
277 if (Config.SymbolsToGlobalize.matches(Sym.Name) && in updateAndRemoveSymbols()
278 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
279 Sym.Binding = STB_GLOBAL; in updateAndRemoveSymbols()
281 if (Config.SymbolsToWeaken.matches(Sym.Name) && Sym.Binding == STB_GLOBAL) in updateAndRemoveSymbols()
282 Sym.Binding = STB_WEAK; in updateAndRemoveSymbols()
284 if (Config.Weaken && Sym.Binding == STB_GLOBAL && in updateAndRemoveSymbols()
285 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
286 Sym.Binding = STB_WEAK; in updateAndRemoveSymbols()
288 const auto I = Config.SymbolsToRename.find(Sym.Name); in updateAndRemoveSymbols()
290 Sym.Name = std::string(I->getValue()); in updateAndRemoveSymbols()
292 if (!Config.SymbolsPrefix.empty() && Sym.Type != STT_SECTION) in updateAndRemoveSymbols()
293 Sym.Name = (Config.SymbolsPrefix + Sym.Name).str(); in updateAndRemoveSymbols()
305 auto RemoveSymbolsPred = [&](const Symbol &Sym) { in updateAndRemoveSymbols() argument
306 if (Config.SymbolsToKeep.matches(Sym.Name) || in updateAndRemoveSymbols()
307 (Config.KeepFileSymbols && Sym.Type == STT_FILE)) in updateAndRemoveSymbols()
312 StringRef(Sym.Name).startswith(".L"))) && in updateAndRemoveSymbols()
313 Sym.Binding == STB_LOCAL && Sym.getShndx() != SHN_UNDEF && in updateAndRemoveSymbols()
314 Sym.Type != STT_FILE && Sym.Type != STT_SECTION) in updateAndRemoveSymbols()
320 if (Config.StripDebug && Sym.Type == STT_FILE) in updateAndRemoveSymbols()
323 if (Config.SymbolsToRemove.matches(Sym.Name)) in updateAndRemoveSymbols()
327 Config.UnneededSymbolsToRemove.matches(Sym.Name)) && in updateAndRemoveSymbols()
328 (!Obj.isRelocatable() || isUnneededSymbol(Sym))) in updateAndRemoveSymbols()
332 if (!Config.OnlySection.empty() && !Sym.Referenced && in updateAndRemoveSymbols()
333 Sym.getShndx() == SHN_UNDEF) in updateAndRemoveSymbols()