Uses of Interface
sootup.core.jimple.common.stmt.Stmt
Packages that use Stmt
Package
Description
-
Uses of Stmt in qilin.core
Fields in qilin.core with type parameters of type Stmt -
Uses of Stmt in qilin.core.builder
Methods in qilin.core.builder with parameters of type StmtModifier 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
Fields in qilin.core.builder.callgraph with type parameters of type StmtMethods in qilin.core.builder.callgraph with parameters of type StmtModifier 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
Fields in qilin.core.pag with type parameters of type StmtMethods in qilin.core.pag that return StmtConstructors in qilin.core.pag with parameters of type StmtModifierConstructorDescriptionExceptionThrowSite
(VarNode throwNode, Stmt unit, ContextMethod container) -
Uses of Stmt in qilin.core.reflection
Fields in qilin.core.reflection with type parameters of type StmtMethods in qilin.core.reflection that return types with arguments of type StmtModifier 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
Fields in qilin.pta.toolkits.conch with type parameters of type StmtModifier and TypeFieldDescriptionprotected final Map<SootMethod,
Map<Stmt, AllocNode>> AbstractPAG.symbolicHeaps
Methods in qilin.pta.toolkits.conch with parameters of type StmtModifier and TypeMethodDescriptionprotected AllocNode
AbstractPAG.getSymbolicHeapOf
(SootMethod method, Stmt invokeStmt) -
Uses of Stmt in qilin.stat
Method parameters in qilin.stat with type arguments of type StmtModifier and TypeMethodDescriptionvoid
Exporter.dumpMayFailCasts
(Map<SootMethod, Set<Stmt>> casts) -
Uses of Stmt in sootup.analysis.interprocedural.icfg
Fields in sootup.analysis.interprocedural.icfg with type parameters of type StmtModifier 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
Methods in sootup.analysis.interprocedural.icfg that return types with arguments of type StmtModifier and TypeMethodDescriptionAbstractJimpleBasedICFG.allNonCallEndNodes()
BackwardsInterproceduralCFG.allNonCallEndNodes()
AbstractJimpleBasedICFG.allNonCallStartNodes()
BackwardsInterproceduralCFG.allNonCallStartNodes()
AbstractJimpleBasedICFG.createStmtToOwnerMap()
BackwardsInterproceduralCFG.getCallersOf
(SootMethod m) JimpleBasedInterproceduralCFG.getCallersOf
(@NonNull 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) Methods in sootup.analysis.interprocedural.icfg with parameters of type StmtModifier and TypeMethodDescriptionBackwardsInterproceduralCFG.getCalleesOfCallAt
(Stmt n) JimpleBasedInterproceduralCFG.getCalleesOfCallAt
(@NonNull 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) Constructor parameters in sootup.analysis.interprocedural.icfg with type arguments of type StmtModifierConstructorDescription -
Uses of Stmt in sootup.analysis.interprocedural.ide
Classes in sootup.analysis.interprocedural.ide with type parameters of type StmtModifier and TypeClassDescriptionclass
DefaultJimpleIDETabulationProblem<D,
V, I extends heros.InterproceduralCFG<Stmt, SootMethod>> class
JimpleIDESolver<D,
V, I extends heros.InterproceduralCFG<Stmt, SootMethod>> Constructor parameters in sootup.analysis.interprocedural.ide with type arguments of type StmtModifierConstructorDescriptionJimpleIDESolver
(heros.IDETabulationProblem<Stmt, D, SootMethod, V, I> problem) -
Uses of Stmt in sootup.analysis.interprocedural.ifds
Classes in sootup.analysis.interprocedural.ifds with type parameters of type StmtModifier and TypeClassDescriptionclass
DefaultJimpleIFDSTabulationProblem<D,
I extends heros.InterproceduralCFG<Stmt, SootMethod>> class
JimpleIFDSSolver<D,
I extends heros.InterproceduralCFG<Stmt, SootMethod>> Constructor parameters in sootup.analysis.interprocedural.ifds with type arguments of type StmtModifierConstructorDescriptionJimpleIFDSSolver
(heros.IFDSTabulationProblem<Stmt, D, SootMethod, I> problem) -
Uses of Stmt in sootup.analysis.intraprocedural
Fields in sootup.analysis.intraprocedural with type parameters of type StmtModifier 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.Methods in sootup.analysis.intraprocedural with parameters of type StmtModifier and TypeMethodDescriptionprotected abstract void
FlowAnalysis.flowThrough
(@NonNull A in, Stmt d, @NonNull 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
(@NonNull Stmt s) Accessor function returning value of OUT set for s.@NonNull F
AbstractFlowAnalysis.getFlowBefore
(@NonNull Stmt s) Accessor function returning value of IN set for s.@NonNull A
FlowAnalysis.getFlowBefore
(@NonNull 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
Methods in sootup.analysis.intraprocedural.reachingdefs that return types with arguments of type Stmt -
Uses of Stmt in sootup.apk.frontend.instruction
Fields in sootup.apk.frontend.instruction declared as StmtModifier and TypeFieldDescriptionprotected Stmt
JumpInstruction.markerUnit
protected Stmt
SwitchInstruction.markerUnit
protected Stmt
DexLibAbstractInstruction.stmt
Methods in sootup.apk.frontend.instruction that return StmtModifier 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) Methods in sootup.apk.frontend.instruction with parameters of type Stmt -
Uses of Stmt in sootup.apk.frontend.interceptors
Fields in sootup.apk.frontend.interceptors with type parameters of type StmtMethods in sootup.apk.frontend.interceptors that return types with arguments of type StmtModifier and TypeMethodDescriptionDexDefUseAnalysis.collectDefinitionsWithAliases
(Local l) Collect definitions of l in body including the definitions of aliases of l.Methods in sootup.apk.frontend.interceptors with parameters of type StmtModifier 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.Method parameters in sootup.apk.frontend.interceptors with type arguments of type StmtModifier and TypeMethodDescriptionprotected Type
DexTransformer.findArrayType
(DexDefUseAnalysis dexDefUseAnalysis, Stmt arrayStmt, int depth, Set<Stmt> alreadyVisitedDefs) -
Uses of Stmt in sootup.apk.frontend.main
Methods in sootup.apk.frontend.main that return types with arguments of type StmtModifier and TypeMethodDescriptionDexBody.convertMultimap
(com.google.common.collect.LinkedListMultimap<BranchingStmt, List<Stmt>> multimap) com.google.common.collect.LinkedListMultimap<BranchingStmt,
List<Stmt>> DexBody.getBranchingMap()
Methods in sootup.apk.frontend.main with parameters of type StmtModifier and TypeMethodDescriptionvoid
void
DexBody.insertAfter
(Stmt tobeInserted, Stmt afterThisStmt) void
DexBody.insertBefore
(Stmt tobeInserted, Stmt beforeThisStmt) void
DexBody.replaceStmt
(Stmt toBeReplaced, Stmt newStmt) Method parameters in sootup.apk.frontend.main with type arguments of type StmtModifier 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
Methods in sootup.codepropertygraph.propertygraph.nodes that return StmtConstructors in sootup.codepropertygraph.propertygraph.nodes with parameters of type Stmt -
Uses of Stmt in sootup.core.graph
Methods in sootup.core.graph that return StmtModifier and TypeMethodDescription@NonNull Stmt
BasicBlock.getHead()
@NonNull Stmt
ForwardingBasicBlock.getHead()
@NonNull Stmt
ImmutableBasicBlock.getHead()
@NonNull Stmt
ImmutableBlockStmtGraph.ImmutableBasicBlock.getHead()
@NonNull Stmt
MutableBasicBlock.getHead()
@NonNull Stmt
MutableBasicBlockImpl.getHead()
BackwardsStmtGraph.getStartingStmt()
ForwardingStmtGraph.getStartingStmt()
@Nullable Stmt
ImmutableBlockStmtGraph.getStartingStmt()
@Nullable Stmt
MutableBlockStmtGraph.getStartingStmt()
abstract Stmt
StmtGraph.getStartingStmt()
@NonNull Stmt
BasicBlock.getTail()
@NonNull Stmt
ForwardingBasicBlock.getTail()
@NonNull Stmt
ImmutableBasicBlock.getTail()
@NonNull Stmt
ImmutableBlockStmtGraph.ImmutableBasicBlock.getTail()
@NonNull Stmt
MutableBasicBlock.getTail()
@NonNull Stmt
MutableBasicBlockImpl.getTail()
@NonNull Stmt
StmtGraphBlockIterator.next()
Methods in sootup.core.graph that return types with arguments of type StmtModifier and TypeMethodDescriptionForwardingStmtGraph.exceptionalPredecessors
(@NonNull Stmt node) ImmutableBlockStmtGraph.exceptionalPredecessors
(@NonNull Stmt node) MutableBlockStmtGraph.exceptionalPredecessors
(@NonNull MutableBasicBlock block) MutableBlockStmtGraph.exceptionalPredecessors
(@NonNull Stmt node) StmtGraph.exceptionalPredecessors
(@NonNull Stmt node) it is possible to reach traphandlers through inline code i.e. without any exceptional flowForwardingStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) ImmutableBlockStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) MutableBlockStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) StmtGraph.exceptionalSuccessors
(@NonNull Stmt node) StmtGraph.getAllSuccessors
(@NonNull Stmt stmt) Collects all successors i.e. unexceptional and exceptional successors of a given stmt into a list.StmtGraph.getBranchTargetsOf
(BranchingStmt fromStmt) @NonNull Collection<Stmt>
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
(@NonNull Stmt from, @NonNull Stmt to) Look for a path in graph, from def to use.@NonNull Collection<Stmt>
BackwardsStmtGraph.getNodes()
@NonNull Collection<Stmt>
ForwardingStmtGraph.getNodes()
ImmutableBlockStmtGraph.getNodes()
MutableBlockStmtGraph.getNodes()
abstract @NonNull 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
(@NonNull Stmt node) ForwardingStmtGraph.predecessors
(@NonNull Stmt stmt) ImmutableBlockStmtGraph.predecessors
(@NonNull Stmt node) MutableBlockStmtGraph.predecessors
(@NonNull Stmt node) StmtGraph.predecessors
(@NonNull Stmt node) returns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e. if a JSwitchStmt has multiple cases that brnach to `node`BackwardsStmtGraph.successors
(@NonNull Stmt node) ForwardingStmtGraph.successors
(@NonNull Stmt stmt) ImmutableBlockStmtGraph.successors
(@NonNull Stmt node) MutableBlockStmtGraph.successors
(@NonNull Stmt node) StmtGraph.successors
(@NonNull Stmt node) returns the outgoing flows of node as ordered List.Methods in sootup.core.graph with parameters of type StmtModifier and TypeMethodDescriptionvoid
MutableBlockStmtGraph.addExceptionalEdge
(@NonNull Stmt stmt, @NonNull ClassType exceptionType, @NonNull Stmt traphandlerStmt) abstract void
MutableStmtGraph.addExceptionalEdge
(@NonNull Stmt stmt, @NonNull ClassType exception, @NonNull 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
(@NonNull MutableBasicBlock block, @NonNull Stmt stmt) Adds a Stmt to the end of a block i.e. stmt will become the new tail.void
void
void
MutableBlockStmtGraph.clearExceptionalEdges
(@NonNull Stmt node) abstract void
MutableStmtGraph.clearExceptionalEdges
(@NonNull Stmt stmt) Modifications of exceptional flows removes all exceptional flows from "stmt"boolean
ForwardingStmtGraph.containsNode
(@NonNull Stmt node) boolean
ImmutableBlockStmtGraph.containsNode
(@NonNull Stmt node) boolean
MutableBlockStmtGraph.containsNode
(@NonNull Stmt node) abstract boolean
StmtGraph.containsNode
(@NonNull Stmt node) protected @NonNull org.apache.commons.lang3.tuple.Pair<Integer,
MutableBasicBlock> MutableBlockStmtGraph.createStmtsBlock
(@NonNull 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
(@NonNull Stmt node) ImmutableBlockStmtGraph.exceptionalPredecessors
(@NonNull Stmt node) MutableBlockStmtGraph.exceptionalPredecessors
(@NonNull Stmt node) StmtGraph.exceptionalPredecessors
(@NonNull Stmt node) it is possible to reach traphandlers through inline code i.e. without any exceptional flowForwardingStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) ImmutableBlockStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) MutableBlockStmtGraph.exceptionalSuccessors
(@NonNull Stmt node) StmtGraph.exceptionalSuccessors
(@NonNull Stmt node) StmtGraph.getAllSuccessors
(@NonNull Stmt stmt) Collects all successors i.e. unexceptional and exceptional successors of a given stmt into a list.BasicBlock<?>
ForwardingStmtGraph.getBlockOf
(@NonNull Stmt stmt) ImmutableBlockStmtGraph.getBlockOf
(@NonNull Stmt stmt) @Nullable BasicBlock<?>
MutableBlockStmtGraph.getBlockOf
(@NonNull Stmt stmt) abstract BasicBlock<?>
StmtGraph.getBlockOf
(@NonNull Stmt stmt) StmtGraph.getExtendedBasicBlockPathBetween
(@NonNull Stmt from, @NonNull Stmt to) Look for a path in graph, from def to use.boolean
BackwardsStmtGraph.hasEdgeConnecting
(@NonNull Stmt source, @NonNull Stmt target) boolean
ForwardingStmtGraph.hasEdgeConnecting
(@NonNull Stmt from, @NonNull Stmt to) boolean
ImmutableBlockStmtGraph.hasEdgeConnecting
(@NonNull Stmt source, @NonNull Stmt target) boolean
MutableBlockStmtGraph.hasEdgeConnecting
(@NonNull Stmt source, @NonNull Stmt target) abstract boolean
StmtGraph.hasEdgeConnecting
(@NonNull Stmt source, @NonNull 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 node@NonNull BasicBlock<?>
MutableBlockStmtGraph.insertAfter
(@NonNull Stmt existingStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) abstract BasicBlock<?>
MutableStmtGraph.insertAfter
(@NonNull Stmt afterStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) BasicBlock<?>
MutableStmtGraph.insertAfter
(@NonNull Stmt afterStmt, @NonNull FallsThroughStmt newStmt) inserts the "newStmt" after the position of "afterStmt"@NonNull BasicBlock<?>
MutableBlockStmtGraph.insertBefore
(@NonNull Stmt existingStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) abstract BasicBlock<?>
MutableStmtGraph.insertBefore
(@NonNull Stmt beforeStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) BasicBlock<?>
MutableStmtGraph.insertBefore
(@NonNull Stmt beforeStmt, @NonNull FallsThroughStmt newStmt) inserts the "newStmt" before the position of "beforeStmt" i.e.boolean
StmtGraph.isStmtBranchTarget
(@NonNull Stmt targetStmt) int
int
int
int
abstract int
returns the amount of flows that start from nodeBackwardsStmtGraph.predecessors
(@NonNull Stmt node) ForwardingStmtGraph.predecessors
(@NonNull Stmt stmt) ImmutableBlockStmtGraph.predecessors
(@NonNull Stmt node) MutableBlockStmtGraph.predecessors
(@NonNull Stmt node) StmtGraph.predecessors
(@NonNull Stmt node) returns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e. if a JSwitchStmt has multiple cases that brnach to `node`void
MutableBlockStmtGraph.putEdge
(@NonNull BranchingStmt stmtA, int succesorIdx, @NonNull Stmt stmtB) void
MutableBlockStmtGraph.putEdge
(@NonNull FallsThroughStmt stmtA, @NonNull Stmt stmtB) abstract void
MutableStmtGraph.putEdge
(@NonNull BranchingStmt from, int successorIdx, @NonNull Stmt to) abstract void
MutableStmtGraph.putEdge
(@NonNull FallsThroughStmt from, @NonNull Stmt to) Modifications of unexceptional flowsprotected void
MutableBlockStmtGraph.putEdge_internal
(@NonNull Stmt stmtA, int succesorIdx, @NonNull Stmt stmtB) MutableBlockStmtGraph.removeEdge
(@NonNull Stmt from, @NonNull Stmt to) MutableStmtGraph.removeEdge
(@NonNull Stmt from, @NonNull Stmt to) removes the current outgoing flows of "from" to "to"void
MutableBlockStmtGraph.removeExceptionalEdge
(@NonNull Stmt node, @NonNull ClassType exceptionType) abstract void
MutableStmtGraph.removeExceptionalEdge
(@NonNull Stmt stmt, @NonNull ClassType exception) removes an exceptional flow of the type "exception" flow from "stmt"void
ForwardingStmtGraph.removeExceptionalFlowFromAllBlocks
(@NonNull ClassType exceptionType, @NonNull Stmt exceptionHandlerStmt) void
ImmutableBlockStmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType classType, Stmt exceptionHandlerStmt) void
MutableBlockStmtGraph.removeExceptionalFlowFromAllBlocks
(@NonNull ClassType exceptionType, @NonNull Stmt exceptionHandlerStmt) abstract void
StmtGraph.removeExceptionalFlowFromAllBlocks
(ClassType exceptionType, Stmt exceptionHandlerStmt) Removes the specified exceptional flow from all blocks.void
MutableBlockStmtGraph.removeNode
(@NonNull Stmt stmt) void
MutableBlockStmtGraph.removeNode
(@NonNull Stmt stmt, boolean keepFlow) Removes a Stmt from the StmtGraph.abstract void
MutableStmtGraph.removeNode
(@NonNull Stmt stmt) removes "stmt" from the StmtGraphabstract void
MutableStmtGraph.removeNode
(@NonNull Stmt stmt, boolean keepFlow) void
MutableBasicBlock.removeStmt
(@NonNull Stmt stmt) void
MutableBasicBlockImpl.removeStmt
(@NonNull Stmt stmt) void
MutableBlockStmtGraph.replaceNode
(@NonNull Stmt oldStmt, @NonNull Stmt newStmt) abstract void
MutableStmtGraph.replaceNode
(@NonNull Stmt oldStmt, @NonNull 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
(@NonNull Stmt from, @NonNull Stmt oldTo, @NonNull Stmt newTo) Replaces all SuccessorEdge(s) of from to oldTo by mewToabstract boolean
MutableStmtGraph.replaceSucessorEdge
(@NonNull Stmt from, @NonNull Stmt oldTo, @NonNull Stmt newTo) void
MutableStmtGraph.setEdges
(@NonNull BranchingStmt from, @NonNull Stmt... targets) replaces the current outgoing flows of "from" to each target of "targets"void
MutableBlockStmtGraph.setStartingStmt
(@NonNull Stmt startingStmt) abstract void
MutableStmtGraph.setStartingStmt
(@NonNull Stmt firstStmt) @NonNull MutableBasicBlock
MutableBasicBlock.splitBlockLinked
(@NonNull Stmt splitStmt, boolean shouldBeNewHead) @NonNull MutableBasicBlockImpl
MutableBasicBlockImpl.splitBlockLinked
(@NonNull Stmt splitStmt, boolean shouldBeNewHead) splits a BasicBlock into first|second we know splitStmt must be a FallsThroughStmtMutableBasicBlock.splitBlockUnlinked
(@NonNull Stmt newTail, @NonNull Stmt newHead) MutableBasicBlockImpl.splitBlockUnlinked
(@NonNull Stmt newTail, @NonNull 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. this method does not link the splitted blocks.BackwardsStmtGraph.successors
(@NonNull Stmt node) ForwardingStmtGraph.successors
(@NonNull Stmt stmt) ImmutableBlockStmtGraph.successors
(@NonNull Stmt node) MutableBlockStmtGraph.successors
(@NonNull Stmt node) StmtGraph.successors
(@NonNull Stmt node) returns the outgoing flows of node as ordered List.protected void
MutableBasicBlockImpl.updateSuccessorContainer
(@NonNull Stmt newStmt) Method parameters in sootup.core.graph with type arguments of type StmtModifier 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 StmtGraphvoid
MutableBlockStmtGraph.initializeWith
(@NonNull List<List<Stmt>> blocks, @NonNull Map<BranchingStmt, List<Stmt>> successorMap, @NonNull List<Trap> traps) Creates a Graph representation from the 'legacy' representation i.e. a List of Stmts and Traps.void
MutableBlockStmtGraph.initializeWith
(@NonNull List<List<Stmt>> blocks, @NonNull Map<BranchingStmt, List<Stmt>> successorMap, @NonNull List<Trap> traps) Creates a Graph representation from the 'legacy' representation i.e. a List of Stmts and Traps.@NonNull BasicBlock<?>
MutableBlockStmtGraph.insertAfter
(@NonNull Stmt existingStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) abstract BasicBlock<?>
MutableStmtGraph.insertAfter
(@NonNull Stmt afterStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) @NonNull BasicBlock<?>
MutableBlockStmtGraph.insertBefore
(@NonNull Stmt existingStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) abstract BasicBlock<?>
MutableStmtGraph.insertBefore
(@NonNull Stmt beforeStmt, @NonNull List<FallsThroughStmt> stmts, @NonNull Map<ClassType, Stmt> exceptionMap) void
MutableBlockStmtGraph.setEdges
(@NonNull BranchingStmt fromStmt, @NonNull List<Stmt> targets) abstract void
MutableStmtGraph.setEdges
(@NonNull BranchingStmt from, @NonNull List<Stmt> targets) replaces the current outgoing flows of "from" to "targets"Constructor parameters in sootup.core.graph with type arguments of type StmtModifierConstructorDescriptionMutableBasicBlockImpl
(List<Stmt> stmts, Map<ClassType, MutableBasicBlock> exceptionMap) -
Uses of Stmt in sootup.core.jimple
Methods in sootup.core.jimple with parameters of type Stmt -
Uses of Stmt in sootup.core.jimple.basic
Methods in sootup.core.jimple.basic that return StmtModifier and TypeMethodDescription@NonNull Stmt
Trap.getBeginStmt()
@NonNull Stmt
Trap.getEndStmt()
@NonNull Stmt
Trap.getHandlerStmt()
Methods in sootup.core.jimple.basic that return types with arguments of type StmtModifier 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) Methods in sootup.core.jimple.basic with parameters of type StmtModifier 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) @NonNull Trap
Trap.withBeginStmt
(@NonNull Stmt beginStmt) @NonNull Trap
Trap.withEndStmt
(@NonNull Stmt endStmt) @NonNull Trap
Trap.withHandlerStmt
(@NonNull Stmt handlerStmt) Method parameters in sootup.core.jimple.basic with type arguments of type StmtModifier and TypeMethodDescriptionLocal.getDefs
(Collection<Stmt> defs) returns a List that can contain: Locals, JFieldRefs, JArrayRefsLocal.getStmtsUsingOrDefiningthisLocal
(Collection<Stmt> stmts, Stmt removedStmt) Constructors in sootup.core.jimple.basic with parameters of type Stmt -
Uses of Stmt in sootup.core.jimple.common.stmt
Subinterfaces of Stmt in sootup.core.jimple.common.stmtModifier 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 executedClasses in sootup.core.jimple.common.stmt that implement StmtModifier 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 ExceptionMethods in sootup.core.jimple.common.stmt that return StmtModifier and TypeMethodDescriptionAbstractStmt.withNewUse
(@NonNull Value oldUse, @NonNull Value newUse) Use newUse to replace the oldUse in oldStmt.Stmt.withNewUse
(@NonNull Value oldUse, @NonNull Value newUse) Methods in sootup.core.jimple.common.stmt that return types with arguments of type StmtModifier and TypeMethodDescriptionBranchingStmt.getTargetStmts
(Body body) JGotoStmt.getTargetStmts
(@NonNull Body body) JIfStmt.getTargetStmts
(@NonNull Body body) -
Uses of Stmt in sootup.core.jimple.javabytecode.stmt
Classes in sootup.core.jimple.javabytecode.stmt that implement StmtModifier 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
Methods in sootup.core.jimple.javabytecode.stmt that return types with arguments of type StmtModifier and TypeMethodDescriptionJSwitchStmt.getDefaultTarget
(@NonNull Body body) JSwitchStmt.getTargetStmts
(Body body) -
Uses of Stmt in sootup.core.jimple.visitor
Fields in sootup.core.jimple.visitor declared as StmtMethods in sootup.core.jimple.visitor that return StmtMethods in sootup.core.jimple.visitor with parameters of type StmtModifier and TypeMethodDescriptionvoid
AbstractStmtVisitor.defaultCaseStmt
(@NonNull Stmt stmt) void
ReplaceUseStmtVisitor.defaultCaseStmt
(@NonNull Stmt stmt) void
StmtVisitor.defaultCaseStmt
(Stmt stmt) protected void
-
Uses of Stmt in sootup.core.model
Methods in sootup.core.model that return StmtModifier and TypeMethodDescription@NonNull Stmt
Body.getFirstNonIdentityStmt()
Returns the first non-identity stmt in this body.@Nullable Stmt
Body.getThisStmt()
Return unit containing the \@this-assignment *Methods in sootup.core.model that return types with arguments of type StmtModifier and TypeMethodDescriptionstatic Map<LValue,
Collection<Stmt>> Body.collectDefs
(Collection<Stmt> stmts) Collects all defining statements of a Local from a list of statementsBody.collectUses
(Collection<Stmt> stmts) Collects all using statements of a Values from a list of statementsBody.getBranchTargetsOf
(@NonNull 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. for more detailed information of the underlying CFG - or just parts of it - have a look at getStmtGraph()Methods in sootup.core.model with parameters of type StmtModifier and TypeMethodDescriptionboolean
Body.isStmtBranchTarget
(@NonNull Stmt targetStmt) void
Body.BodyBuilder.removeDefLocalsOf
(@NonNull Stmt stmt) Method parameters in sootup.core.model with type arguments of type StmtModifier and TypeMethodDescriptionstatic Map<LValue,
Collection<Stmt>> Body.collectDefs
(Collection<Stmt> stmts) Collects all defining statements of a Local from a list of statementsBody.collectUses
(Collection<Stmt> stmts) Collects all using statements of a Values from a list of statements -
Uses of Stmt in sootup.core.util.printer
Fields in sootup.core.util.printer with type parameters of type StmtModifier and TypeFieldDescriptionLabeledStmtPrinter.labels
branch targets *LabeledStmtPrinter.references
for stmt references in Phi nodes (ms: and other occurences TODO: check and improve comment) *Methods in sootup.core.util.printer that return types with arguments of type StmtModifier and TypeMethodDescription@NonNull Collection<Stmt>
LabeledStmtPrinter.getLabeledStmts
(StmtGraph stmtGraph, List<Trap> traps) Returns the result of iterating through all Stmts in this body.LabeledStmtPrinter.getLabels()
LabeledStmtPrinter.getReferences()
LabeledStmtPrinter.initializeSootMethod
(@NonNull StmtGraph<?> stmtGraph) createLabelMapsMethods in sootup.core.util.printer with parameters of type StmtModifier and TypeMethodDescriptionvoid
abstract void
void
abstract void
void
void
void
abstract void
Method parameters in sootup.core.util.printer with type arguments of type StmtModifier and TypeMethodDescriptionLabeledStmtPrinter.getTrapComparator
(@NonNull Map<Stmt, Integer> stmtsBlockIdx) Comparator which sorts the trap output in getTraps() -
Uses of Stmt in sootup.core.validation
Constructors in sootup.core.validation with parameters of type Stmt -
Uses of Stmt in sootup.interceptors
Methods in sootup.interceptors with parameters of type StmtModifier and TypeMethodDescriptionLocalLivenessAnalyser.getLiveLocalsAfterStmt
(@NonNull Stmt stmt) Get all live locals after the given stmt.LocalLivenessAnalyser.getLiveLocalsBeforeStmt
(@NonNull Stmt stmt) Get all live locals before the given stmt. -
Uses of Stmt in sootup.interceptors.typeresolving
Fields in sootup.interceptors.typeresolving declared as StmtMethods in sootup.interceptors.typeresolving that return StmtMethods in sootup.interceptors.typeresolving with parameters of type StmtModifier and TypeMethodDescription@Nullable Type
AugEvalFunction.evaluate
(@NonNull Typing typing, @NonNull Value value, @NonNull Stmt stmt, @NonNull StmtGraph<?> graph) This method is used to evaluate the type of the given value which the given stmt and body belongs to.TypeChecker.selectArrayType
(@Nullable Type preType, @NonNull Type newType, @NonNull Stmt stmt) protected void
void
This method is used to check whether a value in a stmt needs a cast.abstract void
void
Constructors in sootup.interceptors.typeresolving with parameters of type Stmt -
Uses of Stmt in sootup.java.bytecode.frontend.conversion
Methods in sootup.java.bytecode.frontend.conversion that return types with arguments of type StmtModifier and TypeMethodDescriptionAsmMethodSource.getStmtsThatUse
(@NonNull Value value) * returns all stmts that use this expr -
Uses of Stmt in sootup.java.core.exceptions
Methods in sootup.java.core.exceptions with parameters of type StmtModifier and TypeMethodDescriptionvoid
ExceptionInferStmtVisitor.defaultCaseStmt
(@NonNull Stmt stmt) StmtExceptionAnalyzer.mightThrow
(@NonNull Stmt stmt, @NonNull StmtGraph<? extends BasicBlock<?>> graph) StmtExceptionAnalyzer.mightThrowImplicitly
(Stmt stmt)