From: Justin Lebar Date: Tue, 12 Jul 2016 23:23:13 +0000 (+0000) Subject: [CUDA] Use the multi-element remove function in EraseUnwantedCUDAMatches. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0b90090a3d0638fdafd51c8e3ab8e55e47983951;p=clang [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275233 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaCUDA.cpp b/lib/Sema/SemaCUDA.cpp index 7e201f4dae..90af6d5a92 100644 --- a/lib/Sema/SemaCUDA.cpp +++ b/lib/Sema/SemaCUDA.cpp @@ -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,