...
- Pointers and ints may have different sizes on a platform where NULL is an integer constant
- The platform may have different pointer types with different sizes on a platform. In that case, if NULL is a void pointer, that it is the same size as a pointer to char (C11 section 6.2.5, paragraph 28)..., which might be sized differently than the required pointer type.
...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
Axivion Bauhaus Suite |
| CertC-DCL11 | |||||||
Compass/ROSE | Does not currently detect violations of this recommendation. Although the recommendation in general cannot be automated, because of the difficulty in enforcing contracts between a variadic function and its invokers, it would be fairly easy to enforce type correctness on arguments to the | ||||||||
| CC2.DCL11 | Partially implemented | |||||||
GCC |
| Warns about inconsistently typed arguments to formatted output functions when the | |||||||
Klocwork |
| MISRA.FUNC.VARARG | |||||||
LDRA tool suite |
| 41 S, 589 S | Partially implemented | ||||||
Parasoft C/C++test |
| CERT_C-DCL11-a | There should be no mismatch between the '%s' or '%c' tag from format string and its corresponding argument in 'printf' function invocation | ||||||
Parasoft Insure++ | Runtime analysis | ||||||||
Polyspace Bug Finder |
| Format string specifiers and arguments mismatch | String specifiers do not match corresponding arguments The features of <stdarg.h> shall not be used | ||||||
PRQA QA-C |
| 0179 (U), 0184 (U), 0185 (U), 0186 (U), 0190 (U), 0191 (U), 0192 (U), 0193 (U), 0194 (U), 0195 (U), 0196 (U), 0197 (U), 0198 (U), 0199 (U), 0200 (U), 0201 (U), 0206 (U), 0207, 0208 | Partially implemented | ||||||
PVS-Studio |
| V576 |
...