Class AbstractConch

java.lang.Object
qilin.pta.toolkits.conch.AbstractConch
Direct Known Subclasses:
Conch

public class AbstractConch extends Object
Base class for Conch-based context-sensitivity analyses over a pointer analysis result.
  • Field Details

    • pta

      public final PTA pta
      The pointer analysis result being analyzed.
    • pag

      public final PAG pag
      The pointer assignment graph derived from the pointer analysis.
    • invokedMethods

      protected final Map<AllocNode,Set<SootMethod>> invokedMethods
      Maps each allocation node to the set of methods invoked on it.
    • m2thisFStores

      protected final Map<SootMethod,Map<SparkField,Set<Pair<VarNode,VarNode>>>> m2thisFStores
      Maps each method to its this-pointer field stores: field → (store_base, source).
    • o2nonThisFStores

      protected final Map<AllocNode,Map<SparkField,Set<Pair<VarNode,VarNode>>>> o2nonThisFStores
      Maps each allocation node to non-this field stores: field → (store_base, source).
    • m2thisFLoads

      protected final Map<SootMethod,Map<SparkField,Set<VarNode>>> m2thisFLoads
      Maps each method to its this-pointer field loads: field → load_base nodes.
    • o2nonThisFLoads

      protected final Map<AllocNode,Map<SparkField,Set<VarNode>>> o2nonThisFLoads
      Maps each allocation node to non-this field loads: field → load_base nodes.
    • o2fs

      protected final Map<AllocNode,Set<SparkField>> o2fs
      Maps each allocation node to the set of fields accessed on it.
  • Constructor Details

    • AbstractConch

      public AbstractConch(PTA pta)
      Creates a new Conch analysis over the given pointer analysis result.
  • Method Details

    • getSMAPG

      public SMPAG getSMAPG(MethodPAG mpag)
      Returns the simplified method PAG (SMPAG) for the given method PAG, creating it if absent.
    • emptyFieldPts

      protected boolean emptyFieldPts(AllocNode heap, SparkField field)
      Returns true if the points-to set for the given field on the given heap node is empty.
    • hasLoadOn

      protected boolean hasLoadOn(AllocNode heap, SparkField field)
      Returns true if the given field of the given heap node has at least one load operation.
    • hasStoreOn

      protected boolean hasStoreOn(AllocNode heap, SparkField field)
      Returns true if the given field of the given heap node has at least one store operation.