- All Superinterfaces:
CIVLSetType,CIVLType
A CIVLType representing a set of memory locations.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceImplementations ofCIVLMemType.MemoryLocationReferencerepresent references to a subset of a value of a variable/heap objectNested classes/interfaces inherited from interface dev.civl.mc.model.IF.type.CIVLType
CIVLType.TypeKind -
Method Summary
Modifier and TypeMethodDescriptiondev.civl.sarl.IF.UnaryOperator<dev.civl.sarl.IF.expr.SymbolicExpression> memValueCollector(dev.civl.sarl.IF.SymbolicUniverse u, dev.civl.sarl.IF.expr.SymbolicExpression collectedScopeValue) Returns aUnaryOperatorto $mem values that will clean up references in the $mem value.memValueCreator(dev.civl.sarl.IF.SymbolicUniverse u) Function<dev.civl.sarl.IF.expr.SymbolicExpression, Iterable<CIVLMemType.MemoryLocationReference>> Methods inherited from interface dev.civl.mc.model.IF.type.CIVLSetType
elementTypeMethods inherited from interface dev.civl.mc.model.IF.type.CIVLType
analyze, areSubtypesScalar, copyAs, freeVariables, getDynamicType, getDynamicTypeIndex, getStateVariable, hasReferences, hasState, isArrayType, isBoolType, isBundleType, isCharType, isDomainType, isEnumerationType, isFunction, isHeapType, isIncompleteArrayType, isIntegerType, isNumericType, isPointerType, isProcessType, isRangeType, isRealType, isScalar, isScopeType, isSetType, isSetTypeOf, isStructType, isSuperTypeOf, isUnionType, isVoidType, setStateVariable, typeKind
-
Method Details
-
memValueIterator
Function<dev.civl.sarl.IF.expr.SymbolicExpression,Iterable<CIVLMemType.MemoryLocationReference>> memValueIterator()- Returns:
- a
Functionthat maps dynamic $mem type values to a set ofCIVLMemType.MemoryLocationReference.
-
memValueCreator
Function<List<dev.civl.sarl.IF.expr.SymbolicExpression[]>,dev.civl.sarl.IF.expr.SymbolicExpression> memValueCreator(dev.civl.sarl.IF.SymbolicUniverse u) - Parameters:
u- a reference toSymbolicUniverse- Returns:
- a
Functionthat maps a set of symbolic expression arrays, to a value of dynamic $mem type. Each symbolic expression array must have five elements, each of which represents: 1. variable ID, 2. heap ID, 3. malloc ID, 4. scopeValue and 5. value set template respectively. Such five elements will form a reference to a subset of a variable/heap object.heap ID is the ID of a lexical malloc statement which creates the heap object; malloc ID is the ID of a run-time call to a malloc statement which creates the heap object. When the symbolic expression array represents a reference to a subset of a variable value (not heap object), heapID and mallocID are not significant.
-
memValueCollector
dev.civl.sarl.IF.UnaryOperator<dev.civl.sarl.IF.expr.SymbolicExpression> memValueCollector(dev.civl.sarl.IF.SymbolicUniverse u, dev.civl.sarl.IF.expr.SymbolicExpression collectedScopeValue) Returns aUnaryOperatorto $mem values that will clean up references in the $mem value. The references in the $mem value that refer to the variable/heap objects, that are no longer alive, will be collected.- Parameters:
u- a reference toSymbolicUniversecollectedScopeValue- the unique scope value representing a collected scope. Once a scope is collected, its scope value must equal to this parameter.- Returns:
- a
UnaryOperatorto $mem values that will clean up references in the $mem value.
-