Package it.unive.lisa.imp.expressions
Class IMPNewArray
- java.lang.Object
-
- it.unive.lisa.program.cfg.statement.Statement
-
- it.unive.lisa.program.cfg.statement.Expression
-
- it.unive.lisa.program.cfg.statement.NaryExpression
-
- it.unive.lisa.imp.expressions.IMPNewArray
-
- All Implemented Interfaces:
it.unive.lisa.program.cfg.ProgramPoint,it.unive.lisa.program.CodeElement,it.unive.lisa.util.datastructures.graph.Node<it.unive.lisa.program.cfg.statement.Statement,it.unive.lisa.program.cfg.edge.Edge,it.unive.lisa.program.cfg.CFG>,java.lang.Comparable<it.unive.lisa.program.cfg.statement.Statement>
public class IMPNewArray extends it.unive.lisa.program.cfg.statement.NaryExpressionAn expression modeling the array allocation operation (new type[...]). The type of this expression is theTypeof the array's elements. Note that the dimensions of the array are ignored. This expression corresponds to aHeapAllocation.
-
-
Constructor Summary
Constructors Constructor Description IMPNewArray(it.unive.lisa.program.cfg.CFG cfg, java.lang.String sourceFile, int line, int col, it.unive.lisa.type.Type type, it.unive.lisa.program.cfg.statement.Expression[] dimensions)Builds the array allocation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A extends it.unive.lisa.analysis.AbstractState<A,H,V,T>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>,T extends it.unive.lisa.analysis.value.TypeDomain<T>>
it.unive.lisa.analysis.AnalysisState<A,H,V,T>expressionSemantics(it.unive.lisa.interprocedural.InterproceduralAnalysis<A,H,V,T> interprocedural, it.unive.lisa.analysis.AnalysisState<A,H,V,T> state, it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.SymbolicExpression>[] params, it.unive.lisa.analysis.StatementStore<A,H,V,T> expressions)-
Methods inherited from class it.unive.lisa.program.cfg.statement.NaryExpression
accept, equals, getConstructName, getOrder, getStatementEvaluatedBefore, getSubExpressions, hashCode, semantics, setOffset, toString
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Expression
getMetaVariables, getParentStatement, getRootStatement, getStaticType, setParentStatement
-
-
-
-
Constructor Detail
-
IMPNewArray
public IMPNewArray(it.unive.lisa.program.cfg.CFG cfg, java.lang.String sourceFile, int line, int col, it.unive.lisa.type.Type type, it.unive.lisa.program.cfg.statement.Expression[] dimensions)Builds the array allocation.- Parameters:
cfg- theCFGwhere this operation liessourceFile- the source file name where this operation is definedline- the line number where this operation is definedcol- the column where this operation is definedtype- the type of the array's elementsdimensions- the dimensions of the array
-
-
Method Detail
-
expressionSemantics
public <A extends it.unive.lisa.analysis.AbstractState<A,H,V,T>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>,T extends it.unive.lisa.analysis.value.TypeDomain<T>> it.unive.lisa.analysis.AnalysisState<A,H,V,T> expressionSemantics(it.unive.lisa.interprocedural.InterproceduralAnalysis<A,H,V,T> interprocedural, it.unive.lisa.analysis.AnalysisState<A,H,V,T> state, it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.SymbolicExpression>[] params, it.unive.lisa.analysis.StatementStore<A,H,V,T> expressions) throws it.unive.lisa.analysis.SemanticException- Specified by:
expressionSemanticsin classit.unive.lisa.program.cfg.statement.NaryExpression- Throws:
it.unive.lisa.analysis.SemanticException
-
-