Versions Compared

Key

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

...

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V
pointer-cast-alignmentFully checked
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-EXP36
Compass/ROSE

Can detect violations of this rule. However, it does not flag explicit casts to void * and then back to another pointer type

Coverity
Include Page
Coverity_V
Coverity_V

MISRA C 2004 Rule 11.4

MISRA C 2012 Rule 11.1

MISRA C 2012 Rule 11.2

MISRA C 2012 Rule 11.5

MISRA C 2012 Rule 11.7

Implemented

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.EXP36

Fully implemented
EDG


GCC
Include Page
GCC_V
GCC_V

Can detect some violations of this rule when the -Wcast-align flag is used

Klocwork
 
Include Page
Klocwork_V
Klocwork_V

MISRA.CAST.PTR.UNRELATED
MISRA.CAST.PTR_TO_INT
PORTING.CAST.PTR.FLTPNT

PORTING.CAST.PTR
PORTING.CAST.PTR.SIZE
PORTING.CAST.SIZE


LDRA tool suite
Include Page
LDRA_V
LDRA_V

94 S, 606 S

Partially implemented
Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V
CERT_C-EXP36-a

A cast should not be performed between a pointer to object type and a different pointer to object type

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

Unreliable cast of pointer

Wrong allocated object size for cast

MISRA CERT C: 2012 Rule 11.1

MISRA C:2012 Rule 11.2

MISRA C:2012 Rule 11.3

MISRA C:2012 Rule 11.5

MISRA C:2012 Rule 11.7

Rule EXP36-C

Checks for wrong allocated object size for cast (rule fully covered)

Pointer implicitly cast to different data type

Allocated memory does not match destination pointer

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

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

A cast shall not be performed between a pointer to object type and a pointer to a different object type

A conversion should not be performed from pointer to void into pointer to object

A cast shall not be performed between pointer to object and a non-integer arithmetic type

PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v
0326, 3305Fully implemented
PRQA QA-C++
Include Page
cplusplus:PRQA QA-C++_V
cplusplus:PRQA QA-C++_V

3033, 3038


PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V548, V641
RuleChecker

Include Page
RuleChecker_V
RuleChecker_V

pointer-cast-alignmentFully checked

...