Class NullLiteral
- java.lang.Object
-
- it.unive.lisa.program.cfg.statement.Statement
-
- it.unive.lisa.program.cfg.statement.Expression
-
- it.unive.lisa.program.cfg.statement.literal.Literal<java.lang.Object>
-
- it.unive.lisa.program.cfg.statement.literal.NullLiteral
-
-
Constructor Summary
Constructors Constructor Description NullLiteral(CFG cfg, CodeLocation location)
Builds the null literal, happening at the given location in the program.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>>
AnalysisState<A,H,V,T>semantics(AnalysisState<A,H,V,T> entryState, InterproceduralAnalysis<A,H,V,T> interprocedural, StatementStore<A,H,V,T> expressions)
Computes the semantics of the statement, expressing how semantic information is transformed by the execution of this statement.-
Methods inherited from class it.unive.lisa.program.cfg.statement.literal.Literal
accept, equals, getValue, hashCode, setOffset, toString
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Expression
getMetaVariables, getParentStatement, getRootStatement, getStatementEvaluatedBefore, getStaticType, setParentStatement
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Statement
compareTo, getCFG, getEvaluationPredecessor, getLocation, getOffset, stopsExecution, throwsError
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.program.cfg.ProgramPoint
getProgram
-
-
-
-
Constructor Detail
-
NullLiteral
public NullLiteral(CFG cfg, CodeLocation location)
Builds the null literal, happening at the given location in the program. The type of a null literal isNullType
.- Parameters:
cfg
- the cfg that this expression belongs tolocation
- the location where the expression is defined within the program
-
-
Method Detail
-
semantics
public <A extends AbstractState<A,H,V,T>,H extends HeapDomain<H>,V extends ValueDomain<V>,T extends TypeDomain<T>> AnalysisState<A,H,V,T> semantics(AnalysisState<A,H,V,T> entryState, InterproceduralAnalysis<A,H,V,T> interprocedural, StatementStore<A,H,V,T> expressions) throws SemanticException
Description copied from class:Statement
Computes the semantics of the statement, expressing how semantic information is transformed by the execution of this statement. This method is also responsible for recursively invoking theStatement.semantics(AnalysisState, InterproceduralAnalysis, StatementStore)
of each nestedExpression
, saving the result of each call inexpressions
.- Overrides:
semantics
in classLiteral<java.lang.Object>
- Type Parameters:
A
- the type ofAbstractState
H
- the type of theHeapDomain
V
- the type of theValueDomain
T
- the type ofTypeDomain
- Parameters:
entryState
- the entry state that represents the abstract values of each program variable and memory location when the execution reaches this statementinterprocedural
- the interprocedural analysis of the program to analyzeexpressions
- the cache where analysis states of intermediate expressions must be stored- Returns:
- the
AnalysisState
representing the abstract result of the execution of this statement - Throws:
SemanticException
- if something goes wrong during the computation
-
-