baloghadamsoftware added a comment.

Now I made some measurements about the false positives this option adds.

For `BitCoin` the increase was `-1`. I do not know how it happened, but it 
reduced the number of false positives by one.

For `LLVM/Clang` the increase was `15` which is less than `4%` beacause we have 
`419` findings which is enormous. Thus the real problem that scares the user is 
not the `15` false positives but the `419`. To reduce them we must refine the 
modeling of containers which is also expected to reduce the `15`. (I did not 
examine the `15` findigs, maybe some of them are true positives.)

Honestly, this was the result I expected. This extra state split should not add 
many false positives because it is extremely rare that we know that we are 
erasing an element which is not the last one but this knowledge is not 
expressed by constraints. Of course, we can create artificial examples where 
this option gives false positives, but the measurement shows that in real code 
bases the increase is minimal. However, the bug is a serious one which may 
cause undefined behavior that may lie hidden in tests.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77150/new/

https://reviews.llvm.org/D77150



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

Reply via email to