congrats Icon
New! Announcing Tabnine Chat Beta
Learn More
Tabnine Logo
PointsToAnalysis
Code IndexAdd Tabnine to your IDE (free)

How to use
PointsToAnalysis
in
soot

Best Java code snippets using soot.PointsToAnalysis (Showing top 20 results out of 315)

origin: Sable/soot

protected PointsToSet reachingObjects(Local l) {
 PointsToSet ret = localToReachingObjects.get(l);
 if (ret == null) {
  localToReachingObjects.put(l, ret = pa.reachingObjects(l));
 }
 return ret;
}
origin: Sable/soot

 for (Iterator<Local> receiverIt = receivers.iterator(); receiverIt.hasNext();) {
  final Local receiver = receiverIt.next();
  final PointsToSet p2set = pa.reachingObjects(receiver);
  for (Iterator<Type> typeIt = p2set.possibleTypes().iterator(); typeIt.hasNext();) {
   final Type type = typeIt.next();
if (bases != null) {
 for (Local base : bases) {
  PointsToSet pts = pa.reachingObjects(base);
  for (Type ty : pts.possibleTypes()) {
   ofcgb.addBaseType(base, momc.context(), ty);
if (argArrays != null) {
 for (final Local argArray : argArrays) {
  PointsToSet pts = pa.reachingObjects(argArray);
  if (pts instanceof PointsToSetInternal) {
   PointsToSetInternal ptsi = (PointsToSetInternal) pts;
  for (Type t : pa.reachingObjectsOfArrayElement(pts).possibleTypes()) {
   ofcgb.addInvokeArgType(argArray, momc.context(), t);
 for (Iterator<Local> stringConstantIt = stringConstants.iterator(); stringConstantIt.hasNext();) {
  final Local stringConstant = stringConstantIt.next();
  PointsToSet p2set = pa.reachingObjects(stringConstant);
  Collection<String> possibleStringConstants = p2set.possibleStringConstants();
  if (possibleStringConstants == null) {
origin: Sable/soot

 private void fill(Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa) {
  if (!parms.contains(parm)) {
   return;
  }
  parm.getRightOpBox().addTag(new ColorTag(colour, "Parameter Alias"));
  parms.remove(parm);
  PointsToSet ps = pa.reachingObjects((Local) parm.getLeftOp());
  for (Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext();) {
   final IdentityStmt parm2 = parm2It.next();
   if (ps.hasNonEmptyIntersection(pa.reachingObjects((Local) parm2.getLeftOp()))) {
    fill(parms, parm2, colour, pa);
   }
  }
 }
}
origin: edu.psu.cse.siis/coal

/**
 * Gets the points-to set for a given value. The value can be, for example, a variable or a field.
 * 
 * @param value A value.
 * @return The points-to set for the input value.
 */
public static PointsToSet getPointsToSetForValue(Value value) {
 if (pointsToAnalysis == null) {
  pointsToAnalysis = Scene.v().getPointsToAnalysis();
 }
 if (value instanceof Local) {
  return pointsToAnalysis.reachingObjects((Local) value);
 } else if (value instanceof InstanceFieldRef) {
  InstanceFieldRef sootFieldRef = (InstanceFieldRef) value;
  PointsToSet refPointsToSet = pointsToAnalysis.reachingObjects((Local) sootFieldRef.getBase());
  return pointsToAnalysis.reachingObjects(refPointsToSet, sootFieldRef.getField());
 } else if (value instanceof StaticFieldRef) {
  StaticFieldRef sootFieldRef = (StaticFieldRef) value;
  return pointsToAnalysis.reachingObjects(sootFieldRef.getField());
 } else if (value instanceof ArrayRef) {
  ArrayRef arrayRef = (ArrayRef) value;
  PointsToSet arrayPointsToSet = pointsToAnalysis.reachingObjects((Local) arrayRef.getBase());
  return pointsToAnalysis.reachingObjectsOfArrayElement(arrayPointsToSet);
 } else {
  return EmptyPointsToSet.v();
 }
}
origin: Sable/soot

 protected void handleClass(PrintWriter out, SootClass c) {
  for (SootMethod m : c.getMethods()) {
   if (!m.isConcrete()) {
    continue;
   }
   Body b = m.retrieveActiveBody();

   Local[] sortedLocals = b.getLocals().toArray(new Local[b.getLocalCount()]);
   Arrays.sort(sortedLocals, new StringComparator<Local>());

   for (Local l : sortedLocals) {
    out.println("V " + m + l);
    if (l.getType() instanceof RefLikeType) {
     Set<Type> types = pa.reachingObjects(l).possibleTypes();

     Type[] sortedTypes = types.toArray(new Type[types.size()]);
     Arrays.sort(sortedTypes, new StringComparator<Type>());

     for (Type type : sortedTypes) {
      out.println("T " + type);
     }
    }
   }
  }
 }
}
origin: Sable/soot

/**
 * Creates a new instance key representing the value stored in local, just before stmt. The identity of the key is defined
 * via lmaa, and its must-not-alias relationship to other keys via lmna.
 *
 * @param local
 *          the local variable whose value this key represents
 * @param stmt
 *          the statement at which this key represents the value
 * @param owner
 *          the method containing local
 * @param lmaa
 *          a {@link LocalMustAliasAnalysis}
 * @param lmna
 *          a {@link LocalMustNotAliasAnalysis}
 */
public InstanceKey(Local local, Stmt stmt, SootMethod owner, LocalMustAliasAnalysis lmaa, LocalMustNotAliasAnalysis lmna) {
 this.assignedLocal = local;
 this.owner = owner;
 this.stmtAfterAssignStmt = stmt;
 this.lmaa = lmaa;
 this.lnma = lmna;
 PointsToAnalysis pta = Scene.v().getPointsToAnalysis();
 this.pts = new PointsToSetEqualsWrapper((EqualsSupportingPointsToSet) pta.reachingObjects(local));
 this.hashCode = computeHashCode();
}
origin: Sable/soot

 lockPT = (PointsToSetInternal) pta.reachingObjects((Local) lock);
} else if (lock instanceof StaticFieldRef) {
 lockPT = null;
 Local base = (Local) ((InstanceFieldRef) lock).getBase();
 if (base instanceof FakeJimpleLocal) {
  lockPT = (PointsToSetInternal) pta.reachingObjects(((FakeJimpleLocal) base).getRealLocal(),
    ((FieldRef) lock).getField());
 } else {
  lockPT = (PointsToSetInternal) pta.reachingObjects(base, ((FieldRef) lock).getField());
origin: Sable/soot

protected RWSet addValue(Value v, SootMethod m, Stmt s) {
 RWSet ret = null;
 if (v instanceof InstanceFieldRef) {
  InstanceFieldRef ifr = (InstanceFieldRef) v;
  PointsToSet base = pa.reachingObjects((Local) ifr.getBase());
  ret = new StmtRWSet();
  ret.addFieldRef(base, ifr.getField());
 } else if (v instanceof StaticFieldRef) {
  StaticFieldRef sfr = (StaticFieldRef) v;
  ret = new StmtRWSet();
  ret.addGlobal(sfr.getField());
 } else if (v instanceof ArrayRef) {
  ArrayRef ar = (ArrayRef) v;
  PointsToSet base = pa.reachingObjects((Local) ar.getBase());
  ret = new StmtRWSet();
  ret.addFieldRef(base, PointsToAnalysis.ARRAY_ELEMENTS_NODE);
 }
 return ret;
}
origin: Sable/soot

 emptyEdge = !tn1.origLock.equals(tn2.origLock);
} else {
 emptyEdge = !pta.reachingObjects((Local) tn1.origLock)
   .hasNonEmptyIntersection(pta.reachingObjects((Local) tn2.origLock));
origin: Sable/soot

if (v instanceof Local) {
 Local vLocal = (Local) v;
 PointsToSet base = pa.reachingObjects(vLocal);
origin: Sable/soot

 PointsToSet base = pa.reachingObjects((Local) ifr.getBase());
 ret = new StmtRWSet();
 ret.addFieldRef(base, ifr.getField());
} else if (v instanceof ArrayRef) {
 ArrayRef ar = (ArrayRef) v;
 PointsToSet base = pa.reachingObjects((Local) ar.getBase());
 ret = new StmtRWSet();
 ret.addFieldRef(base, PointsToAnalysis.ARRAY_ELEMENTS_NODE);
} else if (v instanceof Local) {
 Local vLocal = (Local) v;
 PointsToSet base = pa.reachingObjects(vLocal);
 ret = new CodeBlockRWSet();
 CodeBlockRWSet stmtRW = new CodeBlockRWSet();
origin: Sable/soot

if (specialRead instanceof Local) {
 Local vLocal = (Local) specialRead;
 PointsToSet base = pa.reachingObjects(vLocal);
origin: Sable/soot

 InstanceFieldRef ifr = (InstanceFieldRef) v;
 Local baseLocal = (Local) ifr.getBase();
 PointsToSet base = pa.reachingObjects(baseLocal);
 if (baseLocal.getType() instanceof RefType) {
  SootClass baseClass = ((RefType) baseLocal.getType()).getSootClass();
} else if (v instanceof ArrayRef) {
 ArrayRef ar = (ArrayRef) v;
 PointsToSet base = pa.reachingObjects((Local) ar.getBase());
 ret = new StmtRWSet();
 ret.addFieldRef(base, PointsToAnalysis.ARRAY_ELEMENTS_NODE);
origin: ibinti/bugvm

protected PointsToSet reachingObjects( Local l ) {
PointsToSet ret = localToReachingObjects.get( l );
if( ret == null ) {
  localToReachingObjects.put( l, 
    ret = pa.reachingObjects( l ) );
}
return ret;
}
origin: com.bugvm/bugvm-soot

protected PointsToSet reachingObjects( Local l ) {
PointsToSet ret = localToReachingObjects.get( l );
if( ret == null ) {
  localToReachingObjects.put( l, 
    ret = pa.reachingObjects( l ) );
}
return ret;
}
origin: com.bugvm/bugvm-soot

  private void fill( Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa ) {
    if( !parms.contains(parm) ) return;
    parm.getRightOpBox().addTag( new ColorTag(colour, "Parameter Alias") );
    parms.remove( parm );
    PointsToSet ps = pa.reachingObjects( (Local) parm.getLeftOp() );
    for( Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext(); ) {
      final IdentityStmt parm2 = parm2It.next();
      if( ps.hasNonEmptyIntersection(
            pa.reachingObjects( (Local) parm2.getLeftOp() ) ) ) {
        fill( parms, parm2, colour, pa );
      }
    }
  }
}
origin: ibinti/bugvm

  private void fill( Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa ) {
    if( !parms.contains(parm) ) return;
    parm.getRightOpBox().addTag( new ColorTag(colour, "Parameter Alias") );
    parms.remove( parm );
    PointsToSet ps = pa.reachingObjects( (Local) parm.getLeftOp() );
    for( Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext(); ) {
      final IdentityStmt parm2 = parm2It.next();
      if( ps.hasNonEmptyIntersection(
            pa.reachingObjects( (Local) parm2.getLeftOp() ) ) ) {
        fill( parms, parm2, colour, pa );
      }
    }
  }
}
origin: secure-software-engineering/soot-infoflow

/**
 * Gets the points-to-set for the given value
 * @param targetValue The value for which to get the points-to-set
 * @return The points-to-set for the given value
 */
private PointsToSet getPointsToSet(Value targetValue) {
  PointsToAnalysis pta = Scene.v().getPointsToAnalysis();
  synchronized (pta) {			
    if (targetValue instanceof Local)
      return pta.reachingObjects((Local) targetValue);
    else if (targetValue instanceof InstanceFieldRef) {
      InstanceFieldRef iref = (InstanceFieldRef) targetValue;
      return pta.reachingObjects((Local) iref.getBase(), iref.getField());
    }
    else if (targetValue instanceof StaticFieldRef) {
      StaticFieldRef sref = (StaticFieldRef) targetValue;
      return pta.reachingObjects(sref.getField());
    }
    else if (targetValue instanceof ArrayRef) {
      ArrayRef aref = (ArrayRef) targetValue;
      return pta.reachingObjects((Local) aref.getBase());
    }
    else
      throw new RuntimeException("Unexpected value type for aliasing: " + targetValue.getClass());
  }
}
origin: com.bugvm/bugvm-soot

protected void handleClass( PrintWriter out, SootClass c ) {
  for( Iterator mIt = c.methodIterator(); mIt.hasNext(); ) {
    final SootMethod m = (SootMethod) mIt.next();
    if( !m.isConcrete() ) continue;
    Body b = m.retrieveActiveBody();
    TreeSet sortedLocals = new TreeSet( new StringComparator() );
    sortedLocals.addAll( b.getLocals() );
    for( Iterator lIt = sortedLocals.iterator(); lIt.hasNext(); ) {
      final Local l = (Local) lIt.next();
      out.println( "V "+m+l );
      if( l.getType() instanceof RefLikeType ) {
        Set types = pa.reachingObjects( l ).possibleTypes();
        TreeSet sortedTypes = new TreeSet( new StringComparator() );
        sortedTypes.addAll( types );
        for( Iterator tIt = sortedTypes.iterator(); tIt.hasNext(); ) {
          out.println( "T "+tIt.next() );
        }
      }
    }
  }
}
class StringComparator implements Comparator {
origin: ibinti/bugvm

protected void handleClass( PrintWriter out, SootClass c ) {
  for( Iterator mIt = c.methodIterator(); mIt.hasNext(); ) {
    final SootMethod m = (SootMethod) mIt.next();
    if( !m.isConcrete() ) continue;
    Body b = m.retrieveActiveBody();
    TreeSet sortedLocals = new TreeSet( new StringComparator() );
    sortedLocals.addAll( b.getLocals() );
    for( Iterator lIt = sortedLocals.iterator(); lIt.hasNext(); ) {
      final Local l = (Local) lIt.next();
      out.println( "V "+m+l );
      if( l.getType() instanceof RefLikeType ) {
        Set types = pa.reachingObjects( l ).possibleTypes();
        TreeSet sortedTypes = new TreeSet( new StringComparator() );
        sortedTypes.addAll( types );
        for( Iterator tIt = sortedTypes.iterator(); tIt.hasNext(); ) {
          out.println( "T "+tIt.next() );
        }
      }
    }
  }
}
class StringComparator implements Comparator {
sootPointsToAnalysis

Javadoc

A generic interface to any type of pointer analysis.

Most used methods

  • reachingObjects
    Returns the set of objects pointed to by static field f.
  • reachingObjectsOfArrayElement
    Returns the set of objects pointed to by elements of the arrays in the PointsToSet s.

Popular in Java

  • Creating JSON documents from java classes using gson
  • compareTo (BigDecimal)
  • setRequestProperty (URLConnection)
  • putExtra (Intent)
  • IOException (java.io)
    Signals a general, I/O-related error. Error details may be specified when calling the constructor, a
  • Deque (java.util)
    A linear collection that supports element insertion and removal at both ends. The name deque is shor
  • Timer (java.util)
    Timers schedule one-shot or recurring TimerTask for execution. Prefer java.util.concurrent.Scheduled
  • ExecutorService (java.util.concurrent)
    An Executor that provides methods to manage termination and methods that can produce a Future for tr
  • JOptionPane (javax.swing)
  • LogFactory (org.apache.commons.logging)
    Factory for creating Log instances, with discovery and configuration features similar to that employ
  • Best plugins for Eclipse
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now