[PATCH] D77229: [Analyzer] Avoid handling of LazyCompundVals in IteratorModeling
Balogh, Ádám via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 24 13:57:14 PDT 2020
baloghadamsoftware updated this revision to Diff 294156.
baloghadamsoftware added a comment.
Test coverage was hugely increased by rebasing this patch to D88216 <https://reviews.llvm.org/D88216>. Two kind of tests failed. This last update addreses them:
1. Handle the assignment operator of iterator objects. This is necessary for assignments more complex than an assignment to a variable (which is handled by `checkBind()`), such as an assignment to a structure/class member.
2. Put back post-checking of `MaterializeTemporaryExpr`. This special kind of expression is not only used to materialize temporary expressions from `LazyCompoundVal`s but also for temporaries as return values.
Furthermore I added some comments explaining the functions which retrieve an iterator argument and iterator return value.
Now all tests pass again with the increased coverage. @NoQ if you are still in doubt, please suggest me further test cases to explore. I understand your concerns but cannot address them without some suggestions where my solution could fail.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77229/new/
https://reviews.llvm.org/D77229
Files:
clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp
clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
clang/lib/StaticAnalyzer/Checkers/Iterator.cpp
clang/lib/StaticAnalyzer/Checkers/Iterator.h
clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
clang/lib/StaticAnalyzer/Checkers/STLAlgorithmModeling.cpp
clang/test/Analysis/iterator-modeling.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77229.294156.patch
Type: text/x-patch
Size: 54743 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200924/93e4933f/attachment-0001.bin>
More information about the cfe-commits
mailing list