Jump statements (return, break and continue) move control flow out of the current code block. So any
statements that come after a jump are dead code.
Noncompliant Code Example
fun foo(a: Int): Int {
var i = 10;
return a + i; // Noncompliant
i++; // dead code
}
Compliant Solution
fun foo(a: Int): Int {
var 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