summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorJF Bastien <jfbastien@apple.com>2019-08-15 20:38:42 +0000
committerJF Bastien <jfbastien@apple.com>2019-08-15 20:38:42 +0000
commitc984dde170bbe71ed40add2fe918ffbb92cbce65 (patch)
tree9d11a54f4b0efa905828479d0361a545e0c3b44f /llvm/tools/llvm-nm/llvm-nm.cpp
parentdeb49a6217dabbb709b13a43b9d4409e9d805cdf (diff)
downloadbcm5719-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.cpp16
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) {
OpenPOWER on IntegriCloud