Uses of Interface
sootup.core.jimple.common.stmt.Stmt
Package
Description
-
Uses of Stmt in qilin.core
-
Uses of Stmt in qilin.core.builder
Modifier and TypeMethodDescriptionfinal void
MethodNodeFactory.handleStmt
(Stmt s) Adds the edges required for this statement to the graph.MethodNodeFactory.makeInvokeStmtThrowVarNode
(Stmt invoke, SootMethod method) -
Uses of Stmt in qilin.core.builder.callgraph
Modifier and TypeMethodDescriptionOnFlyCallGraph.edgesOutOf
(Stmt u) Returns an iterator over all edges that have u as their source unit.OnFlyCallGraph.findEdge
(Stmt u, SootMethod callee) Find the specific call edge that is going out from the callsite u and the call target is callee.boolean
OnFlyCallGraph.removeAllEdgesOutOf
(Stmt u) Removes all outgoing edges that start at the given unit -
Uses of Stmt in qilin.core.pag
ModifierConstructorDescriptionExceptionThrowSite
(VarNode throwNode, Stmt unit, ContextMethod container) -
Uses of Stmt in qilin.core.reflection
Modifier and TypeMethodDescriptionprotected Collection<Stmt>
TamiflexModel.transformArrayNewInstance
(InvokableStmt s) protected Collection<Stmt>
TamiflexModel.transformClassNewInstance
(InvokableStmt s) protected Collection<Stmt>
TamiflexModel.transformConstructorNewInstance
(InvokableStmt s) protected Collection<Stmt>
TamiflexModel.transformFieldGet
(InvokableStmt s) protected Collection<Stmt>
TamiflexModel.transformFieldSet
(InvokableStmt s) protected Collection<Stmt>
TamiflexModel.transformMethodInvoke
(InvokableStmt s) -
Uses of Stmt in qilin.pta.toolkits.conch
Modifier and TypeFieldDescriptionprotected final Map<SootMethod,
Map<Stmt, AllocNode>> AbstractPAG.symbolicHeaps
Modifier and TypeMethodDescriptionprotected AllocNode
AbstractPAG.getSymbolicHeapOf
(SootMethod method, Stmt invokeStmt) -
Uses of Stmt in qilin.stat
Modifier and TypeMethodDescriptionvoid
Exporter.dumpMayFailCasts
(Map<SootMethod, Set<Stmt>> casts) -
Uses of Stmt in sootup.analysis.interprocedural.icfg
Modifier and TypeFieldDescriptionprotected final BiDiInterproceduralCFG<Stmt,
SootMethod> BackwardsInterproceduralCFG.delegate
protected com.google.common.cache.CacheLoader<SootMethod,
Collection<Stmt>> JimpleBasedInterproceduralCFG.loaderMethodToCallers
protected com.google.common.cache.CacheLoader<Stmt,
Collection<SootMethod>> JimpleBasedInterproceduralCFG.loaderUnitToCallees
protected final com.google.common.cache.LoadingCache<SootMethod,
Collection<Stmt>> JimpleBasedInterproceduralCFG.methodToCallers
protected com.google.common.cache.LoadingCache<SootMethod,
Set<Stmt>> AbstractJimpleBasedICFG.methodToCallsFromWithin
protected final com.google.common.cache.LoadingCache<Stmt,
Collection<SootMethod>> JimpleBasedInterproceduralCFG.stmtToCallees
Modifier and TypeMethodDescriptionAbstractJimpleBasedICFG.allNonCallEndNodes()
BackwardsInterproceduralCFG.allNonCallEndNodes()
AbstractJimpleBasedICFG.allNonCallStartNodes()
BackwardsInterproceduralCFG.allNonCallStartNodes()
AbstractJimpleBasedICFG.createStmtToOwnerMap()
BackwardsInterproceduralCFG.getCallersOf
(SootMethod m) JimpleBasedInterproceduralCFG.getCallersOf
(SootMethod m) AbstractJimpleBasedICFG.getCallsFromWithin
(SootMethod m) BackwardsInterproceduralCFG.getCallsFromWithin
(SootMethod m) AbstractJimpleBasedICFG.getCallsFromWithinMethod
(SootMethod method) AbstractJimpleBasedICFG.getEndPointsOf
(SootMethod m) BackwardsInterproceduralCFG.getEndPointsOf
(SootMethod m) AbstractJimpleBasedICFG.getPredsOf
(Stmt u) BackwardsInterproceduralCFG.getPredsOf
(Stmt u) AbstractJimpleBasedICFG.getPredsOfCallAt
(Stmt u) BackwardsInterproceduralCFG.getPredsOfCallAt
(Stmt u) AbstractJimpleBasedICFG.getReturnSitesOfCallAt
(Stmt u) BackwardsInterproceduralCFG.getReturnSitesOfCallAt
(Stmt n) AbstractJimpleBasedICFG.getStartPointsOf
(SootMethod m) BackwardsInterproceduralCFG.getStartPointsOf
(SootMethod m) AbstractJimpleBasedICFG.getSuccsOf
(Stmt stmt) BackwardsInterproceduralCFG.getSuccsOf
(Stmt n) Modifier and TypeMethodDescriptionBackwardsInterproceduralCFG.getCalleesOfCallAt
(Stmt n) JimpleBasedInterproceduralCFG.getCalleesOfCallAt
(Stmt u) AbstractJimpleBasedICFG.getMethodOf
(Stmt stmt) BackwardsInterproceduralCFG.getMethodOf
(Stmt n) AbstractJimpleBasedICFG.getPredsOf
(Stmt u) BackwardsInterproceduralCFG.getPredsOf
(Stmt u) AbstractJimpleBasedICFG.getPredsOfCallAt
(Stmt u) BackwardsInterproceduralCFG.getPredsOfCallAt
(Stmt u) AbstractJimpleBasedICFG.getReturnSitesOfCallAt
(Stmt u) BackwardsInterproceduralCFG.getReturnSitesOfCallAt
(Stmt n) AbstractJimpleBasedICFG.getSuccsOf
(Stmt stmt) BackwardsInterproceduralCFG.getSuccsOf
(Stmt n) boolean
AbstractJimpleBasedICFG.isBranchTarget
(Stmt u, Stmt succ) boolean
BackwardsInterproceduralCFG.isBranchTarget
(Stmt stmt, Stmt succ) boolean
AbstractJimpleBasedICFG.isCallStmt
(Stmt stmt) boolean
BackwardsInterproceduralCFG.isCallStmt
(Stmt stmt) boolean
AbstractJimpleBasedICFG.isExitStmt
(Stmt stmt) boolean
BackwardsInterproceduralCFG.isExitStmt
(Stmt stmt) boolean
AbstractJimpleBasedICFG.isFallThroughSuccessor
(Stmt stmt, Stmt successorCandidate) boolean
BackwardsInterproceduralCFG.isFallThroughSuccessor
(Stmt stmt, Stmt succ) boolean
AbstractJimpleBasedICFG.isReachable
(Stmt u) boolean
BackwardsInterproceduralCFG.isReachable
(Stmt u) boolean
AbstractJimpleBasedICFG.isReturnSite
(Stmt n) boolean
BackwardsInterproceduralCFG.isReturnSite
(Stmt n) boolean
AbstractJimpleBasedICFG.isStartPoint
(Stmt stmt) boolean
BackwardsInterproceduralCFG.isStartPoint
(Stmt stmt) boolean
AbstractJimpleBasedICFG.setOwnerStatement
(Stmt u, Body b) ModifierConstructorDescription -
Uses of Stmt in sootup.analysis.interprocedural.ide
Modifier and TypeClassDescriptionclass
DefaultJimpleIDETabulationProblem<D,
V, I extends heros.InterproceduralCFG<Stmt, SootMethod>> class
JimpleIDESolver<D,
V, I extends heros.InterproceduralCFG<Stmt, SootMethod>> ModifierConstructorDescriptionJimpleIDESolver
(heros.IDETabulationProblem<Stmt, D, SootMethod, V, I> problem) -
Uses of Stmt in sootup.analysis.interprocedural.ifds
Modifier and TypeClassDescriptionclass
DefaultJimpleIFDSTabulationProblem<D,
I extends heros.InterproceduralCFG<Stmt, SootMethod>> class
JimpleIFDSSolver<D,
I extends heros.InterproceduralCFG<Stmt, SootMethod>> ModifierConstructorDescriptionJimpleIFDSSolver
(heros.IFDSTabulationProblem<Stmt, D, SootMethod, I> problem) -
Uses of Stmt in sootup.analysis.intraprocedural
Modifier and TypeFieldDescriptionFlowAnalysis.filterStmtToAfterFlow
Filtered: Maps graph nodes to OUT sets.FlowAnalysis.stmtToAfterFlow
Maps graph nodes to OUT sets.AbstractFlowAnalysis.stmtToBeforeFlow
Maps graph nodes to IN sets.Modifier and TypeMethodDescriptionprotected abstract void
FlowAnalysis.flowThrough
(A in, Stmt d, A out) Given the merge of theout
sets, compute thein
set fors
(or in to out, depending on direction).protected FlowAnalysis.Flow
You can specify which flow set you would like to use of nodefrom
FlowAnalysis.getFlowAfter
(Stmt s) Accessor function returning value of OUT set for s.AbstractFlowAnalysis.getFlowBefore
(Stmt s) Accessor function returning value of IN set for s.FlowAnalysis.getFlowBefore
(Stmt s) protected void
Merges in1 and in2 into out, just before node succNode.protected void
Merges in into inout, just before node succNode.protected boolean
If a flow node can be omitted returntrue
, otherwisefalse
. -
Uses of Stmt in sootup.analysis.intraprocedural.reachingdefs
-
Uses of Stmt in sootup.apk.frontend.instruction
Modifier and TypeFieldDescriptionprotected Stmt
JumpInstruction.markerUnit
protected Stmt
SwitchInstruction.markerUnit
protected Stmt
DexLibAbstractInstruction.stmt
Modifier and TypeMethodDescriptionDexLibAbstractInstruction.getStmt()
protected Stmt
PackedSwitchInstruction.switchStatement
(DexBody body, org.jf.dexlib2.iface.instruction.Instruction targetData, Local key) protected Stmt
SparseSwitchInstruction.switchStatement
(DexBody body, org.jf.dexlib2.iface.instruction.Instruction targetData, Local key) protected abstract Stmt
SwitchInstruction.switchStatement
(DexBody body, org.jf.dexlib2.iface.instruction.Instruction targetData, Local key) -
Uses of Stmt in sootup.apk.frontend.interceptors
Modifier and TypeMethodDescriptionDexDefUseAnalysis.collectDefinitionsWithAliases
(Local l) Collect definitions of l in body including the definitions of aliases of l.Modifier and TypeMethodDescriptionprotected Type
DexTransformer.findArrayType
(DexDefUseAnalysis dexDefUseAnalysis, Stmt arrayStmt, int depth, Set<Stmt> alreadyVisitedDefs) protected void
AbstractNullTransformer.replaceWithNull
(Stmt stmt) Replace 0 with null in the given unit.Modifier and TypeMethodDescriptionprotected Type
DexTransformer.findArrayType
(DexDefUseAnalysis dexDefUseAnalysis, Stmt arrayStmt, int depth, Set<Stmt> alreadyVisitedDefs) -
Uses of Stmt in sootup.apk.frontend.main
Modifier and TypeMethodDescriptionDexBody.convertMultimap
(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) com.google.common.collect.LinkedListMultimap<BranchingStmt,
List<Stmt>> DexBody.getBranchingMap()
Modifier and TypeMethodDescriptionvoid
void
DexBody.insertAfter
(Stmt tobeInserted, Stmt afterThisStmt) void
DexBody.insertBefore
(Stmt tobeInserted, Stmt beforeThisStmt) void
DexBody.replaceStmt
(Stmt toBeReplaced, Stmt newStmt) Modifier and TypeMethodDescriptionvoid
DexBody.addBranchingStmt
(BranchingStmt branchingStmt, List<Stmt> stmt) DexBody.convertMultimap
(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) -
Uses of Stmt in sootup.codepropertygraph.propertygraph.nodes
-
Uses of Stmt in sootup.core.graph
Modifier and TypeMethodDescriptionBasicBlock.getHead()
ForwardingBasicBlock.getHead()
ImmutableBasicBlock.getHead()
ImmutableBlockStmtGraph.ImmutableBasicBlock.getHead()
MutableBasicBlock.getHead()
MutableBasicBlockImpl.getHead()
BackwardsStmtGraph.getStartingStmt()
ForwardingStmtGraph.getStartingStmt()
ImmutableBlockStmtGraph.getStartingStmt()
MutableBlockStmtGraph.getStartingStmt()
abstract Stmt
StmtGraph.getStartingStmt()
BasicBlock.getTail()
ForwardingBasicBlock.getTail()
ImmutableBasicBlock.getTail()
ImmutableBlockStmtGraph.ImmutableBasicBlock.getTail()
MutableBasicBlock.getTail()
MutableBasicBlockImpl.getTail()
StmtGraphBlockIterator.next()
Modifier and TypeMethodDescriptionForwardingStmtGraph.exceptionalPredecessors
(Stmt node) ImmutableBlockStmtGraph.exceptionalPredecessors
(Stmt node) MutableBlockStmtGraph.exceptionalPredecessors
(MutableBasicBlock block) MutableBlockStmtGraph.exceptionalPredecessors
(Stmt node) StmtGraph.exceptionalPredecessors
(Stmt node) it is possible to reach traphandlers through inline code i.e.ForwardingStmtGraph.exceptionalSuccessors
(Stmt node) ImmutableBlockStmtGraph.exceptionalSuccessors
(Stmt node) MutableBlockStmtGraph.exceptionalSuccessors
(Stmt node) StmtGraph.exceptionalSuccessors
(Stmt node) StmtGraph.getAllSuccessors
(Stmt stmt) Collects all successors i.e.StmtGraph.getBranchTargetsOf
(BranchingStmt fromStmt) StmtGraph.getEntrypoints()
returns a Collection of all stmt in the graph that are either the starting stmt or only have an exceptional ingoing flowStmtGraph.getExtendedBasicBlockPathBetween
(Stmt from, Stmt to) Look for a path in graph, from def to use.StmtGraph.getLabeledStmts()
Returns the result of iterating through all Stmts in this body.BackwardsStmtGraph.getNodes()
ForwardingStmtGraph.getNodes()
ImmutableBlockStmtGraph.getNodes()
MutableBlockStmtGraph.getNodes()
abstract Collection<Stmt>
StmtGraph.getNodes()
returns the nodes in this graph in a non-deterministic order (->Set) to get the nodes in linearized, ordered manner use iterator() or getStmts.BackwardsStmtGraph.getStartingStmts()
BasicBlock.getStmts()
ForwardingBasicBlock.getStmts()
ImmutableBasicBlock.getStmts()
ImmutableBlockStmtGraph.ImmutableBasicBlock.getStmts()
MutableBasicBlock.getStmts()
MutableBasicBlockImpl.getStmts()
StmtGraph.getStmts()
StmtGraph.getTails()
returns a Collection of Stmts that leave the body (i.e.ForwardingStmtGraph.iterator()
ImmutableBlockStmtGraph.iterator()
StmtGraph.iterator()
BackwardsStmtGraph.predecessors
(Stmt node) ForwardingStmtGraph.predecessors
(Stmt stmt) ImmutableBlockStmtGraph.predecessors
(Stmt node) MutableBlockStmtGraph.predecessors
(Stmt node) StmtGraph.predecessors
(Stmt node) returns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e.BackwardsStmtGraph.successors
(Stmt node) ForwardingStmtGraph.successors
(Stmt stmt) ImmutableBlockStmtGraph.successors
(Stmt node) MutableBlockStmtGraph.successors
(Stmt node) StmtGraph.successors
(Stmt node) returns the outgoing flows of node as ordered List.Modifier and TypeMethodDescriptionvoid
MutableBlockStmtGraph.addExceptionalEdge
(Stmt stmt, ClassType exceptionType, Stmt traphandlerStmt) abstract void
MutableStmtGraph.addExceptionalEdge
(Stmt stmt, ClassType exception, Stmt traphandlerStmt) Adds an exceptional flow with the type "exception" to a "stmt" which will reach "traphandlerStmt"void
void
inserts a "stmt" into the StmtGraphabstract void
inserts a "stmt" with exceptional flows "traps" into the StmtGraphprotected org.apache.commons.lang3.tuple.Pair<Integer,
MutableBasicBlock> MutableBlockStmtGraph.addNodeToBlock
(MutableBasicBlock block, Stmt stmt) Adds a Stmt to the end of a block i.e.void
void
void
MutableBlockStmtGraph.clearExceptionalEdges
(Stmt node) abstract void
MutableStmtGraph.clearExceptionalEdges
(Stmt stmt) Modifications of exceptional flows removes all exceptional flows from "stmt"boolean
ForwardingStmtGraph.containsNode
(Stmt node) boolean
ImmutableBlockStmtGraph.containsNode
(Stmt node) boolean
MutableBlockStmtGraph.containsNode
(Stmt node) abstract boolean
StmtGraph.containsNode
(Stmt node) protected org.apache.commons.lang3.tuple.Pair<Integer,
MutableBasicBlock> MutableBlockStmtGraph.createStmtsBlock
(Stmt stmt) creates a Block and inserts the given Stmt.int
int
returns the amount of flows with node as source or target.ForwardingStmtGraph.exceptionalPredecessors
(Stmt node) ImmutableBlockStmtGraph.exceptionalPredecessors
(Stmt node) MutableBlockStmtGraph.exceptionalPredecessors
(Stmt node) StmtGraph.exceptionalPredecessors
(Stmt node) it is possible to reach traphandlers through inline code i.e.ForwardingStmtGraph.exceptionalSuccessors
(Stmt node) ImmutableBlockStmtGraph.exceptionalSuccessors
(Stmt node) MutableBlockStmtGraph.exceptionalSuccessors
(Stmt node) StmtGraph.exceptionalSuccessors
(Stmt node) StmtGraph.getAllSuccessors
(Stmt stmt) Collects all successors i.e.BasicBlock<?>
ForwardingStmtGraph.getBlockOf
(Stmt stmt) ImmutableBlockStmtGraph.getBlockOf
(Stmt stmt) BasicBlock<?>
MutableBlockStmtGraph.getBlockOf
(Stmt stmt) abstract BasicBlock<?>
StmtGraph.getBlockOf
(Stmt stmt) StmtGraph.getExtendedBasicBlockPathBetween
(Stmt from, Stmt to) Look for a path in graph, from def to use.boolean
BackwardsStmtGraph.hasEdgeConnecting
(Stmt source, Stmt target) boolean
ForwardingStmtGraph.hasEdgeConnecting
(Stmt from, Stmt to) boolean
ImmutableBlockStmtGraph.hasEdgeConnecting
(Stmt source, Stmt target) boolean
MutableBlockStmtGraph.hasEdgeConnecting
(Stmt source, Stmt target) abstract boolean
StmtGraph.hasEdgeConnecting
(Stmt source, Stmt target) returns true if there is a flow between source and target throws an Exception if at least one of the parameters is not contained in the graph.int
int
int
int
abstract int
returns the amount of ingoing flows into nodevoid
MutableBlockStmtGraph.insertBefore
(Stmt beforeStmt, List<FallsThroughStmt> stmts, Map<ClassType, Stmt> exceptionMap) abstract void
MutableStmtGraph.insertBefore
(Stmt beforeStmt, List<FallsThroughStmt> stmts, Map<ClassType, Stmt> exceptionMap) void
MutableStmtGraph.insertBefore
(Stmt beforeStmt, FallsThroughStmt newStmt) inserts the "newStmt" before the position of "beforeStmt" i.e.boolean
StmtGraph.isStmtBranchTarget
(Stmt targetStmt) int
int
int
int
abstract int
returns the amount of flows that start from nodeBackwardsStmtGraph.predecessors
(Stmt node) ForwardingStmtGraph.predecessors
(Stmt stmt) ImmutableBlockStmtGraph.predecessors
(Stmt node) MutableBlockStmtGraph.predecessors
(Stmt node) StmtGraph.predecessors
(Stmt node) returns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e.void
MutableBlockStmtGraph.putEdge
(BranchingStmt stmtA, int succesorIdx, Stmt stmtB) void
MutableBlockStmtGraph.putEdge
(FallsThroughStmt stmtA, Stmt stmtB) abstract void
MutableStmtGraph.putEdge
(BranchingStmt from, int successorIdx, Stmt to) abstract void
MutableStmtGraph.putEdge
(FallsThroughStmt from, Stmt to) Modifications of unexceptional flowsprotected void
MutableBlockStmtGraph.putEdge_internal
(Stmt stmtA, int succesorIdx, Stmt stmtB) MutableBlockStmtGraph.removeEdge
(Stmt from, Stmt to) MutableStmtGraph.removeEdge
(Stmt from, Stmt to) removes the current outgoing flows of "from" to "to"void
MutableBlockStmtGraph.removeExceptionalEdge
(Stmt node, ClassType exceptionType) abstract void
MutableStmtGraph.removeExceptionalEdge
(Stmt stmt, ClassType exception) removes an exceptional flow of the type "exception" flow from "stmt"void
ForwardingStmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType exceptionType, Stmt exceptionHandlerStmt) void
ImmutableBlockStmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType classType, Stmt exceptionHandlerStmt) void
MutableBlockStmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType exceptionType, Stmt exceptionHandlerStmt) abstract void
StmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType exceptionType, Stmt exceptionHandlerStmt) Removes the specified exceptional flow from all blocks.void
MutableBlockStmtGraph.removeNode
(Stmt stmt) void
MutableBlockStmtGraph.removeNode
(Stmt stmt, boolean keepFlow) Removes a Stmt from the StmtGraph.abstract void
MutableStmtGraph.removeNode
(Stmt stmt) removes "stmt" from the StmtGraphabstract void
MutableStmtGraph.removeNode
(Stmt stmt, boolean keepFlow) void
MutableBasicBlock.removeStmt
(Stmt stmt) void
MutableBasicBlockImpl.removeStmt
(Stmt stmt) void
MutableBlockStmtGraph.replaceNode
(Stmt oldStmt, Stmt newStmt) abstract void
MutableStmtGraph.replaceNode
(Stmt oldStmt, Stmt newStmt) Modification of stmts (without manipulating any flows; possible assigned exceptional flows stay the same as well)void
MutableBasicBlock.replaceStmt
(int idx, Stmt newStmt) void
MutableBasicBlock.replaceStmt
(Stmt oldStmt, Stmt newStmt) void
MutableBasicBlockImpl.replaceStmt
(int idx, Stmt newStmt) void
MutableBasicBlockImpl.replaceStmt
(Stmt oldStmt, Stmt newStmt) boolean
MutableBlockStmtGraph.replaceSucessorEdge
(Stmt from, Stmt oldTo, Stmt newTo) Replaces all SuccessorEdge(s) of from to oldTo by mewToabstract boolean
MutableStmtGraph.replaceSucessorEdge
(Stmt from, Stmt oldTo, Stmt newTo) void
MutableStmtGraph.setEdges
(BranchingStmt from, Stmt... targets) replaces the current outgoing flows of "from" to each target of "targets"void
MutableBlockStmtGraph.setStartingStmt
(Stmt startingStmt) abstract void
MutableStmtGraph.setStartingStmt
(Stmt firstStmt) MutableBasicBlock.splitBlockLinked
(Stmt splitStmt, boolean shouldBeNewHead) MutableBasicBlockImpl.splitBlockLinked
(Stmt splitStmt, boolean shouldBeNewHead) splits a BasicBlock into first|second we know splitStmt must be a FallsThroughStmtMutableBasicBlock.splitBlockUnlinked
(Stmt newTail, Stmt newHead) MutableBasicBlockImpl.splitBlockUnlinked
(Stmt newTail, Stmt newHead) splits a single MutableBasicBlock into two at splitIndex position, so that the Stmt at the splitIdx is the Head of the second MutableBasicBlock.BackwardsStmtGraph.successors
(Stmt node) ForwardingStmtGraph.successors
(Stmt stmt) ImmutableBlockStmtGraph.successors
(Stmt node) MutableBlockStmtGraph.successors
(Stmt node) StmtGraph.successors
(Stmt node) returns the outgoing flows of node as ordered List.protected void
MutableBasicBlockImpl.updateSuccessorContainer
(Stmt newStmt) Modifier and TypeMethodDescriptionvoid
The list of Stmts must contain only fallsthrough Stmts; A flow manipulating Stmt (BranchingStmt, return, throw) is only allowed at the Tail.void
The list of Stmts must contain only fallsthrough Stmts; A flow manipulating Stmt (BranchingStmt, return, throw) is only allowed at the Tail.void
creates a whole BasicBlock which contains the sequence of (n-1)*fallsthrough()-stmt + optional a non-fallsthrough() stmt at the end of the listabstract void
creates a whole BasicBlock with the details from the parametersabstract void
creates a whole BasicBlock with the details from the parametersvoid
abstract void
inserts a "stmt" with exceptional flows "traps" into the StmtGraphMutableBlockStmtGraph.getTrapComparator
(Map<Stmt, Integer> stmtsBlockIdx) Comparator which sorts the trap output in getTraps()void
MutableBlockStmtGraph.initializeWith
(List<List<Stmt>> blocks, Map<BranchingStmt, List<Stmt>> successorMap, List<Trap> traps) Creates a Graph representation from the 'legacy' representation i.e.void
MutableBlockStmtGraph.initializeWith
(List<List<Stmt>> blocks, Map<BranchingStmt, List<Stmt>> successorMap, List<Trap> traps) Creates a Graph representation from the 'legacy' representation i.e.void
MutableBlockStmtGraph.insertBefore
(Stmt beforeStmt, List<FallsThroughStmt> stmts, Map<ClassType, Stmt> exceptionMap) abstract void
MutableStmtGraph.insertBefore
(Stmt beforeStmt, List<FallsThroughStmt> stmts, Map<ClassType, Stmt> exceptionMap) void
MutableBlockStmtGraph.setEdges
(BranchingStmt fromStmt, List<Stmt> targets) abstract void
MutableStmtGraph.setEdges
(BranchingStmt from, List<Stmt> targets) replaces the current outgoing flows of "from" to "targets"ModifierConstructorDescriptionMutableBasicBlockImpl
(List<Stmt> stmts, Map<ClassType, MutableBasicBlock> exceptionMap) -
Uses of Stmt in sootup.core.jimple
-
Uses of Stmt in sootup.core.jimple.basic
Modifier and TypeMethodDescriptionLocal.getDefsForLocalUse
(StmtGraph<?> graph, Stmt stmt) Get all definition-stmts which define the given local used by the given stmt.Local.getStmtsUsingOrDefiningthisLocal
(Collection<Stmt> stmts, Stmt removedStmt) Modifier and TypeMethodDescriptionboolean
Local.getDefsForLocalUse
(StmtGraph<?> graph, Stmt stmt) Get all definition-stmts which define the given local used by the given stmt.Local.getStmtsUsingOrDefiningthisLocal
(Collection<Stmt> stmts, Stmt removedStmt) Trap.withBeginStmt
(Stmt beginStmt) Trap.withEndStmt
(Stmt endStmt) Trap.withHandlerStmt
(Stmt handlerStmt) Modifier and TypeMethodDescriptionLocal.getDefs
(Collection<Stmt> defs) returns a List that can contain: Locals, JFieldRefs, JArrayRefsLocal.getStmtsUsingOrDefiningthisLocal
(Collection<Stmt> stmts, Stmt removedStmt) -
Uses of Stmt in sootup.core.jimple.common.stmt
Modifier and TypeInterfaceDescriptioninterface
Interface for Stmts at which the execution does not necessarily continue with the following Stmt in the Listinterface
as an equivalent to BranchingStmtinterface
Interface for Stmts that could invoke a different method which will be executed before the next statement is executedModifier and TypeClassDescriptionclass
class
final class
Represents the assignment of one value to anotherclass
Unconditionally jumps to a target Stmtfinal class
final class
If the condition is true, jumps to the target, otherwise continues to the next stmt.final class
A method callfinal class
A no-operation statement.final class
A statement that ends the method, returning a value.final class
A statement that ends the method, returning no value.final class
A statement that throws an ExceptionModifier and TypeMethodDescriptionAbstractStmt.withNewUse
(Value oldUse, Value newUse) Use newUse to replace the oldUse in oldStmt.Stmt.withNewUse
(Value oldUse, Value newUse) Modifier and TypeMethodDescriptionBranchingStmt.getTargetStmts
(Body body) JGotoStmt.getTargetStmts
(Body body) JIfStmt.getTargetStmts
(Body body) -
Uses of Stmt in sootup.core.jimple.javabytecode.stmt
Modifier and TypeClassDescriptionfinal class
final class
A statement that enters a JVM monitor, thereby synchronizing its following statements.final class
A statement that exits a JVM monitor, thereby ending synchronization.final class
Represents the deprecated JVMret
statement (< java 1.6) - which is used in JSR Context - which is deprecated as well.class
Modifier and TypeMethodDescriptionJSwitchStmt.getDefaultTarget
(Body body) JSwitchStmt.getTargetStmts
(Body body) -
Uses of Stmt in sootup.core.jimple.visitor
Modifier and TypeMethodDescriptionvoid
AbstractStmtVisitor.defaultCaseStmt
(Stmt stmt) void
ReplaceUseStmtVisitor.defaultCaseStmt
(Stmt stmt) void
StmtVisitor.defaultCaseStmt
(Stmt stmt) protected void
-
Uses of Stmt in sootup.core.model
Modifier and TypeMethodDescriptionBody.getFirstNonIdentityStmt()
Returns the first non-identity stmt in this body.Body.getThisStmt()
Return unit containing the \@this-assignment *Modifier and TypeMethodDescriptionstatic Map<LValue,
Collection<Stmt>> Body.collectDefs
(Collection<Stmt> stmts) Collects all defining statements of a Local from a list of statementsstatic Map<Value,
Collection<Stmt>> Body.collectUses
(Collection<Stmt> stmts) Collects all using statements of a Local from a list of statementsBody.getBranchTargetsOf
(BranchingStmt fromStmt) returns a List of Branch targets of Branching StmtsBody.BodyBuilder.getStmts()
Body.getStmts()
returns the control flow graph that represents this body into a linear List of statements.Modifier and TypeMethodDescriptionboolean
Body.isStmtBranchTarget
(Stmt targetStmt) void
Body.BodyBuilder.removeDefLocalsOf
(Stmt stmt) Modifier and TypeMethodDescriptionstatic Map<LValue,
Collection<Stmt>> Body.collectDefs
(Collection<Stmt> stmts) Collects all defining statements of a Local from a list of statementsstatic Map<Value,
Collection<Stmt>> Body.collectUses
(Collection<Stmt> stmts) Collects all using statements of a Local from a list of statements -
Uses of Stmt in sootup.core.util.printer
Modifier and TypeFieldDescriptionLabeledStmtPrinter.labels
branch targets *LabeledStmtPrinter.references
for stmt references in Phi nodes (ms: and other occurences TODO: check and improve comment) *Modifier and TypeMethodDescriptionLabeledStmtPrinter.getLabels()
LabeledStmtPrinter.getReferences()
LabeledStmtPrinter.initializeSootMethod
(StmtGraph<?> stmtGraph) createLabelMapsModifier and TypeMethodDescriptionvoid
abstract void
void
abstract void
void
void
void
abstract void
-
Uses of Stmt in sootup.core.validation
-
Uses of Stmt in sootup.interceptors
Modifier and TypeMethodDescriptionLocalLivenessAnalyser.getLiveLocalsAfterStmt
(Stmt stmt) Get all live locals after the given stmt.LocalLivenessAnalyser.getLiveLocalsBeforeStmt
(Stmt stmt) Get all live locals before the given stmt. -
Uses of Stmt in sootup.interceptors.typeresolving
Modifier and TypeMethodDescriptionThis method is used to evaluate the type of the given value which the given stmt and body belongs to.TypeChecker.selectArrayType
(Type preType, Type newType, Stmt stmt) protected void
void
This method is used to check whether a value in a stmt needs a cast.abstract void
void
-
Uses of Stmt in sootup.java.bytecode.frontend.conversion
Modifier and TypeMethodDescriptionAsmMethodSource.getStmtsThatUse
(Value value) * returns all stmts that use this expr -
Uses of Stmt in sootup.java.frontend.conversion
Modifier and TypeMethodDescriptionInstructionConverter.convertInstruction
(com.ibm.wala.ssa.SSAInstruction inst, HashMap<Integer, Stmt> stmt2iIndex) protected Map<BranchingStmt,
List<Stmt>> InstructionConverter.setUpTargets
(HashMap<Integer, Stmt> stmt2iIndex) This methods adds stmts with all branch stmts to builder (JIfStmt
,JGotoStmt
,JSwitchStmt
) having set up their target stmts.Modifier and TypeMethodDescriptionInstructionConverter.convertInstruction
(com.ibm.wala.ssa.SSAInstruction inst, HashMap<Integer, Stmt> stmt2iIndex) protected Map<BranchingStmt,
List<Stmt>> InstructionConverter.setUpTargets
(HashMap<Integer, Stmt> stmt2iIndex) This methods adds stmts with all branch stmts to builder (JIfStmt
,JGotoStmt
,JSwitchStmt
) having set up their target stmts.