diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2014-03-01 14:48:57 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2014-03-01 14:48:57 +0000 |
commit | bbdd7640e885ce3a72bba05e0aaf2361751b9142 (patch) | |
tree | 7c5060b7cd327781f5d3c73b1f49592c6cb84395 /clang/lib/Sema/Sema.cpp | |
parent | 390ad0db26065532b138488fe94acbd0d27426e1 (diff) | |
download | bcm5719-llvm-bbdd7640e885ce3a72bba05e0aaf2361751b9142.tar.gz bcm5719-llvm-bbdd7640e885ce3a72bba05e0aaf2361751b9142.zip |
[C++11] Replace verbose functors with succinct lambdas
No functionality change.
llvm-svn: 202590
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 037327a22da..aa223bacaba 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -409,25 +409,6 @@ static bool ShouldRemoveFromUnused(Sema *SemaRef, const DeclaratorDecl *D) { return false; } -namespace { - struct SortUndefinedButUsed { - const SourceManager &SM; - explicit SortUndefinedButUsed(SourceManager &SM) : SM(SM) {} - - bool operator()(const std::pair<NamedDecl *, SourceLocation> &l, - const std::pair<NamedDecl *, SourceLocation> &r) const { - if (l.second.isValid() && !r.second.isValid()) - return true; - if (!l.second.isValid() && r.second.isValid()) - return false; - if (l.second != r.second) - return SM.isBeforeInTranslationUnit(l.second, r.second); - return SM.isBeforeInTranslationUnit(l.first->getLocation(), - r.first->getLocation()); - } - }; -} - /// Obtains a sorted list of functions that are undefined but ODR-used. void Sema::getUndefinedButUsed( SmallVectorImpl<std::pair<NamedDecl *, SourceLocation> > &Undefined) { @@ -460,8 +441,19 @@ void Sema::getUndefinedButUsed( // Sort (in order of use site) so that we're not dependent on the iteration // order through an llvm::DenseMap. + SourceManager &SM = Context.getSourceManager(); std::sort(Undefined.begin(), Undefined.end(), - SortUndefinedButUsed(Context.getSourceManager())); + [&SM](const std::pair<NamedDecl *, SourceLocation> &l, + const std::pair<NamedDecl *, SourceLocation> &r) { + if (l.second.isValid() && !r.second.isValid()) + return true; + if (!l.second.isValid() && r.second.isValid()) + return false; + if (l.second != r.second) + return SM.isBeforeInTranslationUnit(l.second, r.second); + return SM.isBeforeInTranslationUnit(l.first->getLocation(), + r.first->getLocation()); + }); } /// checkUndefinedButUsed - Check for undefined objects with internal linkage |