congrats Icon
New! Announcing our next generation AI code completions
Read here
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)

  • Add the Codota plugin to your IDE and get smart completions
private void myMethod () {
List l =
  • Codota Iconnew ArrayList()
  • Codota Iconnew LinkedList()
  • Smart code suggestions by Tabnine
}
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

  • Reactive rest calls using spring rest template
  • setScale (BigDecimal)
  • getSharedPreferences (Context)
  • requestLocationUpdates (LocationManager)
  • BufferedWriter (java.io)
    Wraps an existing Writer and buffers the output. Expensive interaction with the underlying reader is
  • ResultSet (java.sql)
    An interface for an object which represents a database table entry, returned as the result of the qu
  • Collections (java.util)
    This class consists exclusively of static methods that operate on or return collections. It contains
  • SortedMap (java.util)
    A map that has its keys ordered. The sorting is according to either the natural ordering of its keys
  • Notification (javax.management)
  • JButton (javax.swing)
  • 21 Best IntelliJ Plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimAtomGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

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