diff options
author | JF Bastien <jfbastien@apple.com> | 2019-08-15 20:38:42 +0000 |
---|---|---|
committer | JF Bastien <jfbastien@apple.com> | 2019-08-15 20:38:42 +0000 |
commit | c984dde170bbe71ed40add2fe918ffbb92cbce65 (patch) | |
tree | 9d11a54f4b0efa905828479d0361a545e0c3b44f /llvm/tools/llvm-nm/llvm-nm.cpp | |
parent | deb49a6217dabbb709b13a43b9d4409e9d805cdf (diff) | |
download | bcm5719-llvm-c984dde170bbe71ed40add2fe918ffbb92cbce65.tar.gz bcm5719-llvm-c984dde170bbe71ed40add2fe918ffbb92cbce65.zip |
Fix nm on GCC 5.1 after the C++14 move
Summary:
As in D66306, fix the invocation of std::sort with std::function by not using
std::function, since it's easier to read and is broken in libstdc++ from GCC 5.1
(see https://gcc.gnu.org/PR65942).
Reviewers: thakis
Subscribers: jkorous, mgrang, dexonsmith, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66310
llvm-svn: 369045
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 465f7de6857..b2cc8fba177 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -711,17 +711,21 @@ static void sortAndPrintSymbolList(SymbolicFile &Obj, bool printName, const std::string &ArchiveName, const std::string &ArchitectureName) { if (!NoSort) { - std::function<bool(const NMSymbol &, const NMSymbol &)> Cmp; + using Comparator = bool (*)(const NMSymbol &, const NMSymbol &); + Comparator Cmp; if (NumericSort) - Cmp = compareSymbolAddress; + Cmp = &compareSymbolAddress; else if (SizeSort) - Cmp = compareSymbolSize; + Cmp = &compareSymbolSize; else - Cmp = compareSymbolName; + Cmp = &compareSymbolName; if (ReverseSort) - Cmp = [=](const NMSymbol &A, const NMSymbol &B) { return Cmp(B, A); }; - llvm::sort(SymbolList, Cmp); + llvm::sort(SymbolList, [=](const NMSymbol &A, const NMSymbol &B) -> bool { + return Cmp(B, A); + }); + else + llvm::sort(SymbolList, Cmp); } if (!PrintFileName) { |