Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: editing.

...

  • 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

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

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 printf() family of functions

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.DCL11

Partially implemented

GCC
Include Page
GCC_V
GCC_V


Warns about inconsistently typed arguments to formatted output functions when the -Wall is used

Klocwork
Include Page
Klocwork_V
Klocwork_V

MISRA.FUNC.VARARG
SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED
SV.FMT_STR.PRINT_IMPROP_LENGTH
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY
SV.FMT_STR.UNKWN_FORMAT.SCAN


LDRA tool suite
Include Page
LDRA_V
LDRA_V

41 S, 589 S

Partially implemented

Parasoft C/C++test

Include Page
Parasoft_V
Parasoft_V

CERT_C-DCL11-a
CERT_C-DCL11-b
CERT_C-DCL11-c
CERT_C-DCL11-d
CERT_C-DCL11-e
CERT_C-DCL11-f

There should be no mismatch between the '%s' or '%c' tag from format string and its corresponding argument in 'printf' function invocation
There should be no mismatch between the '%f' tag from format string and its corresponding argument in 'printf' function invocation
There should be no mismatch between the '%i' or '%d' tag from format string and its corresponding argument in 'printf' function invocation
There should be no mismatch between the '%u' tag from format string and its corresponding argument in 'printf' function invocation
There should be no mismatch between the '%p' tag from format string and its corresponding argument in 'printf' function invocation
There should be no difference between the number of tags from format string and the number of corresponding argument in 'printf' function invocation

Parasoft Insure++

Runtime analysis
Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

Format string specifiers and arguments mismatch

MISRA C:2012 Rule 17.1


String specifiers do not match corresponding arguments

The features of <stdarg.h> shall not be used

PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

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

Include Page
PVS-Studio_V
PVS-Studio_V

V576

...