Comparing a function pointer to a value that is not a null function pointer of the same type will be diagnosed because it typically indicates programmer error and can result in unexpected behavior. Implicit comparisons will be diagnosed, as well.
...
Recommendation | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
EXP16-C | Low | Likely | Yes | NoMedium | P6 | L2 |
Automated Detection
Tool | Version | Checker | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| function-name-constant-comparison | Partially checked | ||||||||||||||||
| BAD_COMPARE | Can detect the specific instance where the address of a function is compared against 0, such as in the case of | |||||||||||||||||
| GCC |
| Can detect violations of this recommendation when the | |||||||||||||||||
| Helix QAC |
| C0428, C3004, C3344 | |||||||||||||||||
| Klocwork |
| CWARN.NULLCHECK.FUNCNAME | |||||||||||||||||
| LDRA tool suite |
| 99 S | Partially implemented | ||||||||||||||||
| Parasoft C/C++test |
| BDCERT_C-PBEXP16-CC | Stricter checking than the definition here. | a | Function address should not be compared to zero | ||||||||||||||
| PC-lint Plus | PRQA QA-C
| PRQA QA
| C
| v
| PRQA QA
| 2440, 2441 | Partially supported: reports address of function, array, or variable directly or indirectly compared to null | ||||||||||||
| PVS-Studio |
| V516, V1058 | |||||||||||||||||
| RuleChecker |
| function-name-constant-comparison | Partially checked | 6.22 | V516 | General analysis rule |
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
...