Control Flow Analysis

Control flow analysis is a static analysis technique that examines the possible execution paths through a program. It builds upon the control flow graph to reason about which statements may be reached, which branches may be taken, and which code may be unreachable.

Applications include:

  • Dead code detection: identifying statements that can never be executed

  • Reachability analysis: determining whether a particular point in the code can be reached

  • Exception flow: tracing all paths through try/catch/finally blocks

  • Return path coverage: verifying that all execution paths through a function return a value

Control flow analysis is a prerequisite for more advanced analyses such as data flow analysis and taint analysis.

<?php

function divide(int $a, int $b): float {
    if ($b === 0) {
        throw new InvalidArgumentException('Division by zero');
    }

    return $a / $b;

    // Control flow analysis detects that the line below is unreachable
    echo 'done';
}

?>

Documentation

See also Control Flow Analysis — Wikipedia.

Related : Control Flow, Control Flow Graph, Data Flow Analysis, Analysis, Static Application Security Testing (SAST), Dead Code, Taint Analysis, Lexical Analysis, Semantic Analysis, Symbolic Analysis, Pattern-Based Analysis