-
Type:
Code Smell Detection
-
Status: Closed
-
Resolution: Duplicate
-
Message:Remove or refactor this dead statement.
-
Default Severity:Minor
-
Impact:Low
-
Likelihood:Low
-
Targeted languages:C++, Java
-
Remediation Function:Constant/Issue
-
Constant Cost:10min
-
CERT:MSC56-J., MSC07-CPP.
-
MISRA C 2012:2.2
-
MISRA C++ 2008:0-1-9
Any executed statement whose removal would not affect program output constitutes dead code (also know as redundant code). It is unclear to a reviewer if this is intentional or has occurred due to an error.
Noncompliant Code Example
int16_t has_dead_code ( int16_t para ) { int16_t local = 99; para = para + local; local = para; // Noncompliant, local is never used if ( 0 == local ) { local++; // Noncompliant, unreachable } return para; }
Compliant Solution
int16_t has_dead_code ( int16_t para )
{
int16_t local = 99;
para = para + local;
return para;
}
See
- MISRA C++:2008, 0-1-9
- MISRA C:2012, 2.2
- CERT, MSC56-J. - Detect and remove superfluous code and values
- CERT, MSC07-CPP. - Detect and remove dead code
- duplicates
-
RSPEC-1763 All code should be reachable
- Active
- is related to
-
RSPEC-894 There should not be unreachable code
- Closed
-
RSPEC-902 Unused functions and methods should be removed
- Closed
-
RSPEC-897 Unused type declarations should be removed
- Active
-
RSPEC-905 Non-empty statements should change control flow or have at least one side-effect
- Active
-
RSPEC-1029 Class templates, function templates, class template member functions and class template static members should be instantiated at least once
- Active
- relates to
-
RSPEC-1116 Empty statements should be removed
- Active
-
RSPEC-1172 Unused function parameters should be removed
- Active
-
RSPEC-1854 Unused assignments should be removed
- Active
-
RSPEC-1862 Related "if/else if" statements should not have the same condition
- Active
-
RSPEC-1879 Unused macros should be removed
- Active