...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Astrée |
| Supported, but no explicit checker: Astrée reports accesses to freed allocated memory. | |||||||
Axivion Bauhaus Suite |
| CertC-MEM30 | Detects memory accesses after its deallocation and double memory deallocations | ||||||
CodeSonar |
| ALLOC.UAF | Use after free | ||||||
Compass/ROSE | |||||||||
| USE_AFTER_FREE | Can detect the specific instances where memory is deallocated more than once or read/written to the target of a freed pointer | |||||||
Klocwork |
| UFM.DEREF.MIGHT | |||||||
LDRA tool suite |
| 51 D, 484 S, 112 D | Partially implemented | ||||||
Parasoft C/C++test |
| CERT_C-MEM30-a | Do not use resources that have been freed | ||||||
Parasoft Insure++ | Runtime analysis | ||||||||
Polyspace Bug Finder |
| Deallocation of previously deallocated pointer Invalid use of standard library string routine | Memory freed more than once without allocation Standard library string function called with invalid arguments Memory accessed after deallocation Functions which are designed to provide operations on a resource should be called in an appropriate sequence The address of an object with automatic storage shall not be copied to another object that persists after the first object has ceased to exist All resources obtained dynamically by means of Standard Library functions shall be explicitly released A block of memory shall only be freed if it was allocated by means of a Standard Library function | ||||||
PRQA QA-C | 9.1 | 1769, 1770 | |||||||
PRQA QA-C++ | 4.2 | 3339, 4303, 4304 | |||||||
PVS-Studio |
| V586, V774 | |||||||
Splint |
|
...