diff --git a/lld/MachO/ICF.cpp b/lld/MachO/ICF.cpp index 9eed765ab6e2..b90464a77106 100644 --- a/lld/MachO/ICF.cpp +++ b/lld/MachO/ICF.cpp @@ -33,8 +33,8 @@ public: void segregate(size_t begin, size_t end, EqualsFn); size_t findBoundary(size_t begin, size_t end); void forEachClassRange(size_t begin, size_t end, - std::function func); - void forEachClass(std::function func); + llvm::function_ref func); + void forEachClass(llvm::function_ref func); bool equalsConstant(const ConcatInputSection *ia, const ConcatInputSection *ib); @@ -225,7 +225,7 @@ size_t ICF::findBoundary(size_t begin, size_t end) { // Invoke FUNC on subranges with matching equivalence class void ICF::forEachClassRange(size_t begin, size_t end, - std::function func) { + llvm::function_ref func) { while (begin < end) { size_t mid = findBoundary(begin, end); func(begin, mid); @@ -235,7 +235,7 @@ void ICF::forEachClassRange(size_t begin, size_t end, // Split icfInputs into shards, then parallelize invocation of FUNC on subranges // with matching equivalence class -void ICF::forEachClass(std::function func) { +void ICF::forEachClass(llvm::function_ref func) { // Only use threads when the benefits outweigh the overhead. const size_t threadingThreshold = 1024; if (icfInputs.size() < threadingThreshold) {