diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -1462,7 +1462,7 @@ createSyntheticSymbols(); if (!config->exportedSymbols.empty()) { - for (Symbol *sym : symtab->getSymbols()) { + parallelForEach(symtab->getSymbols(), [](Symbol *sym) { if (auto *defined = dyn_cast(sym)) { StringRef symbolName = defined->getName(); if (config->exportedSymbols.match(symbolName)) { @@ -1474,12 +1474,13 @@ defined->privateExtern = true; } } - } + }); } else if (!config->unexportedSymbols.empty()) { - for (Symbol *sym : symtab->getSymbols()) + parallelForEach(symtab->getSymbols(), [](Symbol *sym) { if (auto *defined = dyn_cast(sym)) if (config->unexportedSymbols.match(defined->getName())) defined->privateExtern = true; + }); } for (const Arg *arg : args.filtered(OPT_sectcreate)) {