...
Failing to declare an unchanging value const prohibits the function from working with values already cast as const. This problem can be sidestepped by type casting away the const, but doing so violates EXP05-C. Do not cast away a const qualification.
Recommendation | Severity | Likelihood |
|---|
Detectable | Repairable | Priority | Level |
|---|---|---|---|
DCL13-C | Low | Unlikely |
Yes | Yes | P3 | L3 |
Automated Detection
Tool | Version | Checker | Description |
|---|
| Astrée |
| parameter-missing-const | Fully checked | ||||||
| Axivion Bauhaus Suite |
| CertC-DCL13 | |||||||
| CodeSonar |
| LANG.TYPE.CBCONST |
| Pointed-to Type Could Be const | ||||||||
| Compass/ROSE | Can detect violations of this recommendation while checking for violations of recommendation DCL00-C. Const-qualify immutable objects | ||||||||
| CC2.DCL13 | Fully implemented | |||||||
| Helix QAC |
| C0431, C3673, C3677 | |||||||
| Klocwork |
| MISRA.PPARAM.NEEDS.CONST | |||||||
| LDRA tool suite |
| 120 D | Fully implemented |
3673
0431(C)
| Parasoft C/C++test |
| CERT_C-DCL13-a | A pointer parameter in a function prototype should be declared as pointer to const if the pointer is not used to modify the addressed object | ||||||
| PC-lint Plus |
| 111, 818 | Fully supported | ||||||
| Polyspace Bug Finder |
| CERT C: Rec. DCL13-C | Checks for pointer to non-const qualified function parameter (rec. fully covered) | ||||||
| RuleChecker |
| parameter-missing-const | Fully checked | ||||||
| Security Reviewer - Static Reviewer | 6.02 | C16 | Fully Implemented |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
| SEI CERT C++ Coding Standard | VOID DCL13-CPP. Declare function parameters that are pointers to values not changed by the function as const |
| ISO/IEC TR 24772:2013 | Passing Parameters and Return Values [CSJ] |
| MISRA C:2012 | Rule 8.13 (advisory) |
...
...