Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ToolVersionCheckerDescription
Astrée
Include Page
Astrée_V
Astrée_V

Supported, but no explicit checker
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-EXP37
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V

LANG.FUNCS.APM

Array parameter mismatch
Compass/ROSE

Can detect some violations of this rule. In particular, it ensures that all calls to open() supply exactly two arguments if the second argument does not involve O_CREAT, and exactly three arguments if the second argument does involve O_CREAT

Coverity
Include Page
Coverity_V
Coverity_V

MISRA C 2012 Rule 8.2

MISRA C 2012 Rule 17.3

Implemented

Relies on functions declared with prototypes, allow compiler to check

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.EXP37

Partially implemented

EDG


GCC
Include Page
GCC_V
GCC_V

Can detect violation of this rule when the -Wstrict-prototypes flag is used. However, it cannot detect violations involving variadic functions, such as the open() example described earlier

Klocwork
Include Page
Klocwork_V
Klocwork_V
MISRA.FUNC.UNMATCHED.PARAMS
LDRA tool suite
Include Page
LDRA_V
LDRA_V

41 D, 21 S, 98 S, 170 S, 496 S, 576 S

Partially implemented
Parasoft C/C++test

Include Page
Parasoft_V
Parasoft_V

CERT_C-EXP37-a
CERT_C-EXP37-b
CERT_C-EXP37-c
CERT_C-EXP37-d

Identifiers shall be given for all of the parameters in a function prototype declaration
Function types shall have named parameters
Function types shall be in prototype form
Functions shall always have visible prototype at the function call

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

Bad file access mode or status

Declaration mismatch

Format string specifiers and arguments mismatch

Qualifier removed in conversion

Standard function call with incorrect arguments

Unreliable cast of function pointer

MISRA C:2012 Rule 8.3

MISRA C:2012 Rule 11.1

MISRA C:2012 Rule 17.3

Access mode argument of function in fopen or open group is invalid

Mismatch between function or variable declarations

String specifiers do not match corresponding arguments

Variable qualifier is lost during conversion

Argument to a standard function does not meet requirements for use in the function

Function pointer cast to another function pointer with different argument or return type

All declarations of an object or function shall use the same names and type qualifiers

Conversions shall not be performed between a pointer to a function and any other type

A function shall not be declared implicitly

PRQA QA-C++4.1 0403
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v
1331, 1332, 1333, 3002, 3320, 3335Partially implemented
PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V540, V541, V549, V575, V632, V639, V666, V671, V742, V743, V764, V1004
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
S930Detects incorrect argument count

...