diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2014-03-07 21:51:58 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2014-03-07 21:51:58 +0000 |
commit | 4cadf292a505670c4e01ed3452d386cba4c4c641 (patch) | |
tree | c0e20fdb02a289a90c0180a518b6c8de17f1e9c6 /clang/lib/Analysis/ReachableCode.cpp | |
parent | 289dde27a28ed194e6b7f5bf73b79159ffabb6c3 (diff) | |
download | bcm5719-llvm-4cadf292a505670c4e01ed3452d386cba4c4c641.tar.gz bcm5719-llvm-4cadf292a505670c4e01ed3452d386cba4c4c641.zip |
[C++11] Revert uses of lambdas with array_pod_sort.
Looks like GCC implements the lambda->function pointer conversion differently.
llvm-svn: 203293
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r-- | clang/lib/Analysis/ReachableCode.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/Analysis/ReachableCode.cpp b/clang/lib/Analysis/ReachableCode.cpp index 1e5aa1224ba..47f8f2b90cd 100644 --- a/clang/lib/Analysis/ReachableCode.cpp +++ b/clang/lib/Analysis/ReachableCode.cpp @@ -400,6 +400,15 @@ const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) { return 0; } +static int SrcCmp(const std::pair<const CFGBlock *, const Stmt *> *p1, + const std::pair<const CFGBlock *, const Stmt *> *p2) { + if (p1->second->getLocStart() < p2->second->getLocStart()) + return -1; + if (p2->second->getLocStart() < p1->second->getLocStart()) + return 1; + return 0; +} + unsigned DeadCodeScan::scanBackwards(const clang::CFGBlock *Start, clang::reachable_code::Callback &CB) { @@ -448,13 +457,7 @@ unsigned DeadCodeScan::scanBackwards(const clang::CFGBlock *Start, // If we didn't find a dead root, then report the dead code with the // earliest location. if (!DeferredLocs.empty()) { - llvm::array_pod_sort(DeferredLocs.begin(), DeferredLocs.end(), - [](const DeferredLocsTy::value_type *p1, - const DeferredLocsTy::value_type *p2) { - if (p1->second->getLocStart() != p2->second->getLocStart()) - return p1->second->getLocStart() < p2->second->getLocStart() ? -1 : 1; - return 0; - }); + llvm::array_pod_sort(DeferredLocs.begin(), DeferredLocs.end(), SrcCmp); for (DeferredLocsTy::iterator I = DeferredLocs.begin(), E = DeferredLocs.end(); I != E; ++I) { const CFGBlock *Block = I->first; |