[PATCH] D158156: [analyzer] Add C++ array delete checker
Discookie via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 17 01:14:57 PDT 2023
Discookie created this revision.
Discookie added reviewers: NoQ, donat.nagy, balazske.
Discookie added projects: clang, All.
Herald added subscribers: steakhal, manas, ASDenysPetrov, martong, dkrupp, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun.
Discookie requested review of this revision.
Herald added a subscriber: cfe-commits.
This checker reports cases where an array of polymorphic objects are deleted as their base class.
Deleting an array where the array's static type is different from its dynamic type is undefined.
Since the checker is similar to DeleteWithNonVirtualDtorChecker, I refactored that checker to support more detection types.
This checker corresponds to the SEI Cert rule EXP51-CPP: Do not delete an array through a pointer of the incorrect type <https://wiki.sei.cmu.edu/confluence/display/cplusplus/EXP51-CPP.+Do+not+delete+an+array+through+a+pointer+of+the+incorrect+type>.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D158156
Files:
clang/docs/analyzer/checkers.rst
clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
clang/lib/StaticAnalyzer/Checkers/CXXDeleteChecker.cpp
clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp
clang/test/Analysis/ArrayDelete.cpp
clang/www/analyzer/alpha_checks.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158156.550665.patch
Type: text/x-patch
Size: 20537 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230817/fc3f9e3f/attachment-0001.bin>
More information about the cfe-commits
mailing list