NagyDonat wrote:

I evaluated the effects of the additional change [Generalize the suppression to 
all sizeof(array[0]) 
expressions](https://github.com/llvm/llvm-project/pull/94356/commits/ce3a37610228ceb9a9e60575f87886bf8e183493)
 compared to the earlier version of this PR, and it seems that this tweak 
eliminates a large amount of false positives:

| Project | New Reports | Resolved Reports |
|---------|-------------|------------------|
| memcached | No reports | No reports 
| tmux | No reports | No reports 
| curl | No reports | [3 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=curl_curl-7_66_0_previous_sizeofexpression_after_most_changes&newcheck=curl_curl-7_66_0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| twin | No reports | No reports 
| vim | No reports | No reports 
| openssl | No reports | [8 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=openssl_openssl-3.0.0-alpha7_previous_sizeofexpression_after_most_changes&newcheck=openssl_openssl-3.0.0-alpha7_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| sqlite | No reports | [12 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=sqlite_version-3.33.0_previous_sizeofexpression_after_most_changes&newcheck=sqlite_version-3.33.0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| ffmpeg | No reports | [9 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=ffmpeg_n4.3.1_previous_sizeofexpression_after_most_changes&newcheck=ffmpeg_n4.3.1_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| postgres | No reports | [1 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=postgres_REL_13_0_previous_sizeofexpression_after_most_changes&newcheck=postgres_REL_13_0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| tinyxml2 | No reports | No reports 
| libwebm | No reports | No reports 
| xerces | No reports | [10 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=xerces_v3.2.3_previous_sizeofexpression_after_most_changes&newcheck=xerces_v3.2.3_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| bitcoin | No reports | [1 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=bitcoin_v0.20.1_previous_sizeofexpression_after_most_changes&newcheck=bitcoin_v0.20.1_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| protobuf | No reports | [4 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=protobuf_v3.13.0_previous_sizeofexpression_after_most_changes&newcheck=protobuf_v3.13.0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| qtbase | No reports | [7 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=qtbase_v6.2.0_previous_sizeofexpression_after_most_changes&newcheck=qtbase_v6.2.0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 
| contour | No reports | No reports 
| openrct2 | No reports | No reports 
| llvm-project | No reports | [6 resolved 
reports](https://codechecker-demo.eastus.cloudapp.azure.com/Default/reports?run=llvm-project_llvmorg-12.0.0_previous_sizeofexpression_after_most_changes&newcheck=llvm-project_llvmorg-12.0.0_new_sizeofexpression_with_full_arrayindexzero_suppression&diff-type=Resolved)
 

I randomly checked ~20% of the resolved reports, and they all were false 
positives (that is, situations where `sizeof(pointer)` is the idiomatic and 
correct solution), so I'm satisfied with this additional change.

At this point I'm satisfied with the behavior of this check on the real-world 
code and I'm not planning to add more features within this PR. (There is one 
known issue which I highlighted in a FIXME in commit [Extend 
GenericFunctionTest, document a class of FPs with a 
FIXME](https://github.com/llvm/llvm-project/pull/94356/commits/59bd1b83e4fa89b371f4d1a96c51fc7a1b4ad170)
 -- but that's significantly less severe than the issues before this PR, so I 
think it's enough to handle that later.) 

I also answered all the review suggestions, so I'd be grateful for another 
round of reviews from @PiotrZSL @EugeneZelenko or anybody else who has time for 
it.

https://github.com/llvm/llvm-project/pull/94356
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to