Package qilin.core.pag


package qilin.core.pag
Points-to analysis graph (PAG) data structures, based on Soot/jimple/spark/pag with significant modifications.
  • Class
    Description
    Represents an allocation site node in the pointer assignment graph.
    A pseudo-field standing in for "any element of any array", used to model array stores/loads field-insensitively: PAG holds exactly one ArrayElement instance (see PAG.getArrayElement()), shared across every array type in the program.
    callsite based context element in the points to analysis.
    Represents an allocation site node the represents a known java.lang.Class object.
    A SparkField wrapping a real, declared SootField -- as opposed to ArrayElement, which is the pseudo-field standing in for "any array cell".
     
     
     
     
     
     
    Represents a field reference node in the pointer assignment graph.
     
    Represents a simple variable node in the pointer assignment graph that is not associated with any particular method invocation.
    An allocation site standing in for the object a LambdaMetafactory-bootstrapped invokedynamic call site produces (a lambda or method reference).
    The resolved target of a lambda/method-reference alloc, as read off its bootstrap args.
     
     
    Part of a pointer assignment graph for a single method.
    Represents a synthetic pointer-assignment-graph variable for one of a method's special argument-passing slots: an ordinary parameter at a given index (the base case, this class itself), or the receiver (this), the return value, or the thrown exception (the MethodParameter.This, MethodParameter.Return and MethodParameter.Throw subclasses).
    Pointer assignment graph.
    Represents every node in the pointer assignment graph.
    Double-dispatch counterpart of PagNode.parameterize(Parameterizer, Context): each PAG node kind that knows how to turn itself into a context-sensitive node calls back into the matching overload here, instead of the caller (e.g.
    Represents a field.
    Represents an allocation site node the represents a constant string.
    Represents a simple of pointer node in the pointer assignment graph.
    Represents a simple variable node in the pointer assignment graph.
    Holds relevant information about a particular virtual call site.