...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Astrée |
| Supported, but no explicit checker | |||||||
CodeSonar |
| LANG.CAST.PC.AV LANG.CAST.COERCE ALLOC.SIZE.TRUNC LANG.MEM.TBA | Cast: arithmetic type/void pointer Coercion alters value Truncation of allocation size Tainted buffer access | ||||||
Compass/ROSE | Can detect violations of this rule. However, false warnings may be raised if | ||||||||
| NEGATIVE_RETURNS REVERSE_NEGATIVE MISRA_CAST | Can find array accesses, loop bounds, and other expressions that may contain dangerous implied integer conversions that would result in unexpected behavior Can find instances where a negativity check occurs after the negative value has been used for something else Can find instances where an integer expression is implicitly converted to a narrower integer type, where the signedness of an integer value is implicitly converted, or where the type of a complex expression is implicitly converted | |||||||
Cppcheck |
| memsetValueOutOfRange | The second argument to memset() cannot be represented as unsigned char | ||||||
Klocwork |
| ||||||||
LDRA tool suite |
| 93 S, 433 S, 434 S | Partially implemented | ||||||
Parasoft C/C++test |
| CODSTA-161_a, CODSTA-161_b, CODSTA-161_c, CODSTA-161_d, CODSTA-161_e, CODSTA-161_f, CODSTA-161_g, CODSTA-163_a, CODSTA-163_b,CODSTA-164_a, CODSTA-164_b, CODSTA-157, CODSTA-156_a, CODSTA-156_b | Implemented | ||||||
Polyspace Bug Finder | R2016a | Overflow when converting between integer types Overflow when converting between signed and unsigned integers Value from an unsecure source changes sign Overflow when converting between unsigned integer types | |||||||
PRQA QA-C++ |
| 2850, 2851, 2852, 2853, 2855, 2856, 2857, 2858, 2890, 2891, 2892, 2893, 2895, 2896, 2897, 2898, 2900, 2901, 2902, 2903, 2905, 2906, 2907, 2908, 3000, 3010 | |||||||
PRQA QA-C |
| 2850, 2851, 2852, 2853, | Partially implemented | ||||||
PVS-Studio | 6.22 | V569, V642, V724, V739 |
...