toSummarized

fun toSummarized(graph: Vista, diagramType: Transform.DiagramType, entryIds: Set<String> = emptySet()): Vista

SUMMARIZED (interface-point) level: keep the taint sources and sinks (plus caller-supplied entryIds, when requested for a control-flow view) and connect them by reachability over the type-appropriate edges. Sources / sinks with no connecting path still appear (isolated).

For DATA_FLOW, the input is the analyzer segment DAG. The projection uses instruction→segment membership plus inter-segment DAG reachability, then emits one endpoint edge to the first source/sink endpoint reached on each segment path. Endpoint-to-endpoint edges such as SourceLeaf<A>→ SourceLeaf<B> or SinkLeaf<A>→SinkLeaf<B> are kept when the segment DAG reports them.

For CONTROL_FLOW-style endpoint summaries, the input is still the analyzer ICFG. The projection keeps only configured source/sink endpoints and contracts through non-endpoint instructions. Endpoint-to-endpoint edges therefore preserve the first source/sink reached on each ICFG path. Lifecycle back-edges from sink-side code into the next source-side callback are dropped, while source-to-sink order is preserved even if the cyclic ICFG traversal encounters the sink path first. Physical call sites are then collapsed by endpoint role plus analyzer callee symbol, so each configured logical source or sink appears once. Endpoints without callee metadata remain physical as a backwards-compatible fallback.

Generated with STIG