JDevlieghere added a comment.

In https://reviews.llvm.org/D22725#494074, @Prazek wrote:

> Maybe the right way would be to have check called 
> 'modernize-use-sequence-algorithm' or just 'modernize-use-algorithm' that 
> would basically do all those stuff. It would be good to not introduce 5 new 
> check that pretty much do the same thing and also the user would want to have 
> them all or none.
>  You can look how I did it with modernize-use-make-shared, it would be pretty 
> much the same.


I kept everything in modernize-use-algorithm as I agree this isn't worth 3 
different checks.

> So It should not be very hard. You would just have to check if the second or 
> third argument to memcpy is one of [list here] of the things that 

>  would make it bad. And you can probably write easy matcher for this.

>  I understand that it probably will take the double of time that you have 
> spend on this check, but this will actually is the thing here - you want your 
> check to produce the fixes that makes sense. When you will run it on llvm 
> code base, I guess you will see that over 90% of the cases didn't require 
> coma. I understand that you want to make it accurate, but the fix should not 
> also intoruce some code that is not tidy enough.

>  So I guess either fix it, or wait what Alex will say about it. It might make 
> it to upstream like this, but I hope you would fix it in some time :)


You are right. I didn't completely finish the first run on LLVM, but none of 
the occurrences it had found so far would have caused an issue. I guess that 
means that omitting the extra parens is a sensible default for now. I will look 
into excluding problematic situations once I am sure this check is fully 
functional.

> Anyway good job, hope to see some more checks from you!


Thanks, I really appreciate the feedback from everyone! :)

> > > 4. Have you run the check on LLVM code base? It uses std::copy in many 
> > > places. If after running with -fix all the memcpys will be gone (check if 
> > > if finds anything after second run) and the code will compile and tests 
> > > will not fail then it means that your check fully works!

> 

> > 

> 

> > 

> 

> > Doing this as we speak!

> 

> 

> When you will be finished just post a diff of changes after running it on 
> llvm on phabricator and add me as subscriber :)


It's running again with the changes from the last revision included. It is 
taking a very long time though but I guess that's my fault for not building in 
release mode. I'll leave it running for now as I don't want to start over again.


https://reviews.llvm.org/D22725



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to