 
                            ...
| Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 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 | ||||||
| Can detect violations of this rule. However, false warnings may be raised if  | |||||||||
| 
 | NEGATIVE_RETURNS 
 
 | 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 asunsigned char | ||||||
| 5.0 | Can detect violations of this rule with CERT C Rule Pack | ||||||||
| 
 | PRECISION.LOSS | ||||||||
| 
 | 93 S, 433 S, 434 S | Partially 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,  | Partially implemented | 
...