summaryrefslogtreecommitdiff
path: root/clang/test/Analysis/ArrayDelete.cpp
AgeCommit message (Collapse)Author
2025-06-30[NFC][analyzer] Use %clang_analyze_cc1 consistently (#145895)DonĂ¡t Nagy
A large majority of the LIT tests of the clang static analyzer use RUN lines with the placeholder `%clang_analyze_cc1` which expands to `%clang_cc1 -analyze -setup-static-analyzer` where the only effect of `-setup-static-analyzer` is that it ensures that the macro `__clang_analyzer__` is defined. However, there were some tests that used `%clang_cc1 -analyze` directly; this commit changes those to using `%clang_analyze_cc1` for the sake of consistency. Previously `%clang_analyze_cc1` did not work within the directory `exploded-graph-rewriter` (because that directory has its own custom `lit.local.cfg`) but this problem was eliminated by the recent commit 40cc4379cda6e0d6efe72c55d1968f9cf427a16a, so it was possible to resolve and delete the FIXME comments asking for this change. There are a few tests that use `%clang --analyze` or other command-line flags (e.g. help flags), those are not affected by this change. This cleanup was discussed in the discourse thread https://discourse.llvm.org/t/taking-ownership-of-clang-test-analysis/84689/11
2024-03-25[clang][analyzer] Bring cplusplus.ArrayDelete out of alpha (#83985)Discookie
The checker finds a type of undefined behavior, where if the type of a pointer to an object-array is different from the objects' underlying type, calling `delete[]` is undefined, as the size of the two objects might be different. The checker has been in alpha for a while now, it is a simple checker that causes no crashes, and considering the severity of the issue, it has a low result-count on open-source projects (in my last test-run on my usual projects, it had 0 results). This commit cleans up the documentation and adds docs for the limitation related to tracking through references, in addition to moving it to `cplusplus`. --------- Co-authored-by: Balazs Benics <benicsbalazs@gmail.com> Co-authored-by: whisperity <whisperity@gmail.com>
2023-10-10[clang][analyzer] Add C++ array delete checkerViktor Cseh
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. Differential Revision: https://reviews.llvm.org/D158156