[PATCH] D77150: [Analyzer] New Option for ContainerModeling: AggressiveEraseModeling

Balogh, Ádám via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 16 03:10:25 PDT 2020


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





More information about the cfe-commits mailing list