...
Tool | Version | Checker | Description | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| Supported via MISRA C:2012 Rules 10.1, 10.3, 10.4, 10.6 and 10.7 | ||||||||||||||||||||||||||||||||||||||||||||
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|||||||||||||||||||||||||||||||||||||||||||
Helix QAC |
Klocwork_V | | LDRA tool suite | |||||||||||||||||||||||||||||||||||||||||||
Include Page | LDRA_V | LDRA_V | 93 S, 433 S, 434 S | Partially implemented |
| 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 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 | ||||||||||||||||||||||||||||||||||||||||
Klocwork |
| |||||||||||||||||||||||||||||||||||||||||||||
LDRA tool suite |
| 93 S, 433 S, 434 S | Partially implemented | |||||||||||||||||||||||||||||||||||||||||||
Parasoft C/C++test |
| CERT_C-INT31-a | Parasoft C/C++test | Include Page | | Parasoft_V | Parasoft_V | An expression An expression of essentially Boolean type should always be used where an operand is interpreted as a Boolean value | ||||||||||||||||||||||||||||||||||||||
Polyspace Bug Finder |
| Checks for:
Rule partially covered. | ||||||||||||||||||||||||||||||||||||||||||||
PRQA QA-C |
| Polyspace Bug Finder | ||||||||||||||||||||||||||||||||||||||||||||
Include Page | Polyspace Bug Finder_V | Polyspace Bug Finder_V | Checks for:
Rule partially covered. | PRQA QA-C | ||||||||||||||||||||||||||||||||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 2850, 2851, 2852, 2853, 2855, 2856, 2857, 2858, 2890, 2891, 2892, 2893, 2895, 2896, 2897, 2898 2900, 2901, 2902, 2903, 2905, 2906, 2907, 2908 | Partially implemented | PRQA QA-C++ | |||||||||||||||||||||||||||||||||||||||||
Include Page | cplusplus:PRQA QA-C++_V | cplusplus:PRQA QA-C++_V | 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 | PVS-Studio | ||||||||||||||||||||||||||||||||||||||||||
Include Page | PVS-Studio_V | PVS-Studio_V | V569, V642, V724, V739, V1029, V1046 | RuleChecker | ||||||||||||||||||||||||||||||||||||||||||
Include Page | RuleChecker_V | RuleChecker_V | Supported via MISRA C:2012 Rules 10.1, 10.3, 10.4, 10.6 and 10.7 | TrustInSoft Analyzer | ||||||||||||||||||||||||||||||||||||||||||
Include Page | TrustInSoft Analyzer_V | TrustInSoft Analyzer_V | signed_downcast | Exhaustively verified. | Helix QAC | |||||||||||||||||||||||||||||||||||||||||
Include Page | Helix QAC_V | Helix QAC_V | 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 | Partially implemented | |||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||||
PVS-Studio |
| V569, V642, V724, V739, V1029, V1046 | ||||||||||||||||||||||||||||||||||||||||||||
RuleChecker |
| Supported via MISRA C:2012 Rules 10.1, 10.3, 10.4, 10.6 and 10.7 | ||||||||||||||||||||||||||||||||||||||||||||
TrustInSoft Analyzer |
| signed_downcast | Exhaustively verified., 2901, 2902, 2903, 2905, 2906, 2907, 2908, 3000, 3010 |
* Coverity Prevent cannot discover all violations of this rule, so further verification is necessary.
...