[CUDA] Use the multi-element remove function in EraseUnwantedCUDAMatches.

Summary:
Bug pointed out by Benjamin Kramer in r264008.  I think the bug is
benign because by the time this is called, we should only have at most
two overloads to consider (either a host and a device overload, or a
host+device overload, but not all three).

Reviewers: tra

Subscribers: cfe-commits, bkramer

Differential Revision: http://reviews.llvm.org/D21914

llvm-svn: 275233
This commit is contained in:
Justin Lebar 2016-07-12 23:23:13 +00:00
parent 4c2c6fd1c4
commit e71c08f84c

View File

@ -163,8 +163,10 @@ static void EraseUnwantedCUDAMatchesImpl(
[&](const T &M1, const T &M2) { return GetCFP(M1) < GetCFP(M2); }));
// Erase all functions with lower priority.
Matches.erase(llvm::remove_if(
Matches, [&](const T &Match) { return GetCFP(Match) < BestCFP; }));
Matches.erase(
llvm::remove_if(Matches,
[&](const T &Match) { return GetCFP(Match) < BestCFP; }),
Matches.end());
}
void Sema::EraseUnwantedCUDAMatches(const FunctionDecl *Caller,