...
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
INT34-C | Low | Unlikely | Medium | P2 | L3 |
Automated Detection
Tool | Version | Checker | Description | ||||
---|---|---|---|---|---|---|---|
Astrée |
|
precision-shift-width | Fully checked | ||||||||
Axivion Bauhaus Suite |
| CertC-INT34 | Can detect shifts by a negative or an excessive number of bits and right shifts on negative values. | ||||||
CodeSonar |
| LANG.ARITH.BIGSHIFT | Shift amount exceeds bit width | ||||||
Compass/ROSE | Can detect violations of this rule. Unsigned operands are detected when checking for INT13-C. Use bitwise operators only on unsigned operands | ||||||||
Coverity |
| BAD_SHIFT | Implemented | ||||||
Cppcheck |
| shiftNegative, shiftTooManyBits | Context sensitive analysis | ||||||
Cppcheck Premium |
| shiftNegative, shiftTooManyBits premium-cert-int34-c | Context sensitive analysis Warns whenever Cppcheck sees a negative shift for a POD expression (The warning for shifting too many bits is written only if Cppcheck has sufficient type information and you use --platform to specify the sizes of the standard types.) | ||||||
ECLAIR |
| CC2.INT34 | Partially implemented | ||||||
Helix QAC |
| C0499, C2790, C++2790, C++3003 DF2791, DF2792, DF2793 | |||||||
Klocwork |
| MISRA.SHIFT.RANGE.2012 | |||||||
LDRA tool suite |
| 51 S, 403 S, 479 S | Partially implemented | ||||||
Parasoft C/C++test |
|
CERT_C-INT34-a | Avoid incorrect shift operations | ||||
Polyspace Bug Finder |
|
|
| Checks for:
|
|
Shift operator on negative value
Overflow from shifting operation
Rule partially covered. | ||
PVS-Studio |
|
|
|
|
|
|
| V610 |
RuleChecker |
2791 (D)
2792 (A)
2793 (S)
| precision-shift-width-constant | Partially checked | |||||||
TrustInSoft Analyzer |
| shift | Exhaustively verified (see one compliant and one non-compliant example). |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
...