#
37785fed |
| 25-Mar-2024 |
Discookie <viktor.cseh@ericsson.com> |
[clang][analyzer] Bring cplusplus.ArrayDelete out of alpha (#83985)
The checker finds a type of undefined behavior, where if the type of a
pointer to an object-array is different from the objects'
[clang][analyzer] Bring cplusplus.ArrayDelete out of alpha (#83985)
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>
show more ...
|
#
0e246bb6 |
| 09-Oct-2023 |
Viktor Cseh <viktor.cseh@ericsson.com> |
[clang][analyzer] Add C++ array delete checker
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 di
[clang][analyzer] Add C++ array delete checker
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
show more ...
|