Jump statements (return) move control flow out of the current code block. So any statements that come after a jump are dead code.
Noncompliant Code Example
def foo(a: Int) {
val i = 10;
return a + i; // Noncompliant
bar; // dead code
}
Compliant Solution
def foo(a: Int): Int {
val i = 10;
return a + i;
}
See
- MISRA C:2004, 14.1 - There shall be no unreachable code
- MISRA C++:2008, 0-1-1 - A project shall not contain unreachable code
- MISRA C++:2008, 0-1-9 - There shall be no dead code
- MISRA C:2012, 2.1 - A project shall not contain unreachable code
- MISRA C:2012, 2.2 - There shall be no dead code
- MITRE, CWE-561 - Dead Code
- CERT, MSC56-J. - Detect and remove superfluous code and values
- CERT, MSC12-C. - Detect and remove code that has no effect or is never
executed