This needs a test case. This code has already been committed, incorrectly, twice before this revision; the existing test case clearly doesn't actually cover it properly.
On Wed, Apr 30, 2014 at 12:59 PM, Arnaud A. de Grandmaison < [email protected]> wrote: > Author: aadg > Date: Wed Apr 30 14:59:22 2014 > New Revision: 207696 > > URL: http://llvm.org/viewvc/llvm-project?rev=207696&view=rev > Log: > PR19601: std::remove_if does not really remove the elements. > > It moves them at the end of the range instead, so an extra erase is needed. > > It is strange that this code works without the erase. On the other hand, > removing the remove_if will make fail some tests. > > Modified: > cfe/trunk/lib/Tooling/CompilationDatabase.cpp > > Modified: cfe/trunk/lib/Tooling/CompilationDatabase.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/CompilationDatabase.cpp?rev=207696&r1=207695&r2=207696&view=diff > > ============================================================================== > --- cfe/trunk/lib/Tooling/CompilationDatabase.cpp (original) > +++ cfe/trunk/lib/Tooling/CompilationDatabase.cpp Wed Apr 30 14:59:22 2014 > @@ -238,8 +238,9 @@ static bool stripPositionalArgs(std::vec > > // Remove -no-integrated-as; it's not used for syntax checking, > // and it confuses targets which don't support this option. > - std::remove_if(Args.begin(), Args.end(), > - MatchesAny(std::string("-no-integrated-as"))); > + Args.erase(std::remove_if(Args.begin(), Args.end(), > + MatchesAny(std::string("-no-integrated-as"))), > + Args.end()); > > const std::unique_ptr<driver::Compilation> Compilation( > NewDriver->BuildCompilation(Args)); > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
