
...
Recommendation | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
---|---|---|---|---|---|---|
PRE01-C | Medium | Probable | Yes | LowYes | P12 | L1 |
Automated Detection
Tool | Version | Checker | Description | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| macro-parameter-parentheses | Fully checked | |||||||||||||||||
Axivion Bauhaus Suite |
| CertC-PRE01 | Fully implemented | |||||||||||||||||
Cppcheck Premium |
| premium-cert-pre01-c | ||||||||||||||||||
ECLAIR |
| CC2.PRE01 | Fully implemented | |||||||||||||||||
Helix QAC |
| C3410 | ||||||||||||||||||
Klocwork |
| MISRA.DEFINE.NOPARS | ||||||||||||||||||
LDRA tool suite |
| 78 S | Enhanced Enforcement | |||||||||||||||||
Parasoft C/C++test |
| CERT_C-PRE01-a | In the definition of a function-like macro each instance of a parameter shall be enclosed in parentheses unless it is used as the operand of # or ## | |||||||||||||||||
PC-lint Plus |
| MISRA2004
| 19_10Fully implemented | PRQA QA-C | ||||||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 3410 |
| 9022 | Fully supported | ||||||||||||||
Polyspace Bug Finder |
| CERT C: Rec. PRE01-C | Checks for expanded macro parameters not enclosed in parentheses (rule partially supported) | |||||||||||||||||
PVS-Studio |
| V733 | ||||||||||||||||||
Fully implemented | RuleChecker |
| macro-parameter-parentheses | Fully checked | PVS-Studio | 6.22 | V733 | General analysis rule
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
Related Guidelines
SEI CERT C++ Coding Standard | VOID PRE01-CPP. Use parentheses within macros around parameter names |
ISO/IEC TR 24772:2013 | Operator Precedence/Order of Evaluation [JCW] Pre-processor Directives [NMP] |
MISRA C:2012 | Rule 20.7 (required) |
...