edu.umd.cs.findbugs.ba.deref
public class UnconditionalValueDerefAnalysis extends BackwardDataflowAnalysis<UnconditionalValueDerefSet>
Field Summary | |
---|---|
static boolean | ASSUME_NONZERO_TRIP_LOOPS |
static boolean | CHECK_ANNOTATIONS |
static boolean | CHECK_CALLS |
static boolean | DEBUG |
static boolean | DEBUG_CHECK_CALLS |
static boolean | IGNORE_DEREF_OF_NCP |
static boolean | VERBOSE_NULLARG_DEBUG |
Constructor Summary | |
---|---|
UnconditionalValueDerefAnalysis(ReverseDepthFirstSearch rdfs, DepthFirstSearch dfs, CFG cfg, Method method, MethodGen methodGen, ValueNumberDataflow vnaDataflow, AssertionMethods assertionMethods)
Constructor.
|
Method Summary | |
---|---|
void | clearDerefsOnNonNullBranches(IsNullValueDataflow invDataflow)
HACK: use the given is-null dataflow to clear deref sets for
values that are known to be definitely non-null on a branch.
|
void | copy(UnconditionalValueDerefSet source, UnconditionalValueDerefSet dest) |
UnconditionalValueDerefSet | createFact() |
void | initEntryFact(UnconditionalValueDerefSet result) |
void | initResultFact(UnconditionalValueDerefSet result) |
boolean | isTop(UnconditionalValueDerefSet fact) |
static void | main(String[] args) |
void | makeFactTop(UnconditionalValueDerefSet fact) |
void | meetInto(UnconditionalValueDerefSet fact, Edge edge, UnconditionalValueDerefSet result) |
void | meetInto(UnconditionalValueDerefSet fact, Edge edge, UnconditionalValueDerefSet result, boolean onlyEdge) |
boolean | same(UnconditionalValueDerefSet fact1, UnconditionalValueDerefSet fact2) |
void | setTypeDataflow(TypeDataflow typeDataflow) |
Parameters: rdfs the reverse depth-first-search (for the block order) dfs TODO cfg the CFG for the method method TODO methodGen the MethodGen for the method vnaDataflow assertionMethods AssertionMethods for the analyzed class
Parameters: invDataflow the IsNullValueDataflow to use