Dead code or unreachable code is a computer programming term for code in the source code of a program which can never be executed because there exists no control flow path to the code from the rest of the program.[1] or code that is executed but has no effect on the output of a program.
Dead code is generally considered undesirable for a number of reasons, including:
The existence of unreachable code can be due to various factors, such as:
In the latter case, code which is currently unreachable is there as part of a legacy. The distinguishing point in that case is that this part of code was once useful but is no longer used or required.
Consider the following fragment of C code:
int f (int x, int y) { return x+y; int z=x*y; }The definition int z=x*y; is never reached as the function returns before the definition is reached. Therefore the definition of z can be discarded.
Detecting unreachable code is a form of static analysis and involves performing control flow analysis to find any code that will never be executed regardless of the values of variables and other conditions at run time. In some languages (e.g. Java) some forms of unreachable code are explicitly disallowed. The optimization that removes unreachable code is known as dead code elimination.