public class UserFunctionCalls
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static void |
attemptMaterializeVariableObj(State state)
Materialize singleton object for the variable object and the top of the scope chain, if necessary and if possible.
|
static void |
declareFunction(DeclareFunctionNode n,
GenericSolver.SolverInterface c)
Declares a function in the current state.
|
static void |
enterUserFunction(ObjectLabel obj_f,
FunctionCalls.CallInfo call,
boolean implicit,
GenericSolver.SolverInterface c)
Enters a user-defined function.
|
static BasicBlock |
implicitUserFunctionCall(ObjectLabel obj_f,
FunctionCalls.CallInfo callinfo,
GenericSolver.SolverInterface c)
Implicit call to a user function.
|
static Value |
implicitUserFunctionReturn(java.util.Collection<Value> result,
boolean weak,
BasicBlock implicitAfterCall,
GenericSolver.SolverInterface c)
Extract return flow from implicit call to a user function.
|
static ObjectLabel |
instantiateFunction(Function fun,
ScopeChain scope,
AbstractNode node,
State state,
GenericSolver.SolverInterface c)
Instantiates a function at the given node and state.
|
static ObjectLabel |
instantiateGlobalScopeFunction(Function function,
AbstractNode node,
State state,
GenericSolver.SolverInterface c)
Instantiates a function with the scope set to global.
|
static void |
leaveUserFunction(Value returnval,
boolean exceptional,
Function f,
State state,
GenericSolver.SolverInterface c,
NodeAndContext<Context> specific_caller,
Context specific_edge_context,
boolean implicit)
Leaves a user-defined function.
|
static Value |
mergeFunctionReturn(State return_state,
State caller_state,
State calledge_state,
State caller_entry_state,
Summarized callee_summarized,
Value returnval,
Value exval)
Replaces all definitely non-modified parts of the return state by the corresponding parts of the given states.
|
public static void attemptMaterializeVariableObj(State state)
public static void declareFunction(DeclareFunctionNode n, GenericSolver.SolverInterface c)
public static void enterUserFunction(ObjectLabel obj_f, FunctionCalls.CallInfo call, boolean implicit, GenericSolver.SolverInterface c)
public static BasicBlock implicitUserFunctionCall(ObjectLabel obj_f, FunctionCalls.CallInfo callinfo, GenericSolver.SolverInterface c)
obj_f
- the function to callcallinfo
- information about the callpublic static Value implicitUserFunctionReturn(java.util.Collection<Value> result, boolean weak, BasicBlock implicitAfterCall, GenericSolver.SolverInterface c)
result
- list of values containing results (may be extended by this call), or null if n/aweak
- if set, keep current stateimplicitAfterCall
- the implicit-after-call block, or null if n/apublic static ObjectLabel instantiateFunction(Function fun, ScopeChain scope, AbstractNode node, State state, GenericSolver.SolverInterface c)
fun
- the function to instantiatescope
- the scope of the functionnode
- the node the function is instantiated atstate
- the state the function is instantiated inc
- SolverInterfacepublic static ObjectLabel instantiateGlobalScopeFunction(Function function, AbstractNode node, State state, GenericSolver.SolverInterface c)
public static void leaveUserFunction(Value returnval, boolean exceptional, Function f, State state, GenericSolver.SolverInterface c, NodeAndContext<Context> specific_caller, Context specific_edge_context, boolean implicit)
public static Value mergeFunctionReturn(State return_state, State caller_state, State calledge_state, State caller_entry_state, Summarized callee_summarized, Value returnval, Value exval)
Copyright © 2009-2019 Aarhus University