blob: 91c768b4e2e20bff00a465d745f53c8e02677144 [file] [log] [blame]
package org.checkerframework.dataflow.analysis;
import org.checkerframework.checker.nullness.qual.Nullable;
/**
* This interface defines a backward analysis, given a control flow graph and a backward transfer
* function.
*
* @param <V> the abstract value type to be tracked by the analysis
* @param <S> the store type used in the analysis
* @param <T> the backward transfer function type that is used to approximate runtime behavior
*/
public interface BackwardAnalysis<
V extends AbstractValue<V>, S extends Store<S>, T extends BackwardTransferFunction<V, S>>
extends Analysis<V, S, T> {
/**
* Get the output store at the entry block of a given control flow graph. For a backward analysis,
* the output store contains the analyzed flow information from the exit block to the entry block.
*
* @return the output store at the entry block of a given control flow graph
*/
@Nullable S getEntryStore();
}