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