Versions Compared

Key

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

...

This recommendation is related to MSC12-C. Detect and remove code that has no effect or is never executed.

Noncompliant Code Example

...

Tool

Version

Checker

Description

CodeSonar
Include Page
CodeSonar_V
CodeSonar_V

LANG.STRUCT.UC

Unreachable {Call, Computation, Conditional, Control Flow, Data Flow}

Coverity

Include Page
Coverity_V
Coverity_V

DEADCODE


UNREACHABLE

Can detect the specific instance where code can never be reached because of a logical contradiction or a dead "default" in switch statement

Can detect the instances where code block is unreachable because of the syntactic structure of the code

GCC

Include Page
GCC_V
GCC_V

 

Can detect violations of this recommendation when the -Wunreachable-code flag is used

Klocwork

Include Page
Klocwork_V
Klocwork_V

LV_UNUSED.GEN VA_UNUSED.* UNREACH.*

 

LDRA tool suite

Include Page
LDRA_V
LDRA_V

1 J
139 S
140 S

Fully implemented

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

1501,1503,2008,2880,2881,2882,2883,2877,3196,

3202,3203,3205,3206,3207,3210,3219,3229,3404,

3422,3423,3425,3470,2980,2981,2982,2983,2984,2985,2986

Fully implemented
SonarQube Plugin SonarQube 
Include Page
SonarQube_V
SonarQube_V

 S1763, S1751

 

Splint

Include Page
Splint_V
Splint_V

 

Can detect violations of this recommendation when the -Wunreachable-code flag is used

...

Related Guidelines

CERT C++ Secure Coding StandardMSC07-CPP. Detect and remove dead code
ISO/IEC TR 24772Unspecified functionality [BVQ]
Dead and deactivated code [XYQ]
MISRA C:2012Rule 2.1 (required)
MITRE CWECWE-561, Dead code

...