This class produces InsensitiveFlows, AssignmentIFs as well
as AssignExprIFs
Remark that AssignExprIFs produced by an instance of this class are
all canonicalized. Comparison between AssignExprIFs produced by
different instances of this class is undefined.
-
Method Summary
Modifier and TypeMethodDescriptionassignAuxExpr(Type type) creates a typed auxiliary abstract objectassignFieldExpr(AssignExprIF struct, Field field) creates an abstract object representing a struct/union field of another abstract objectassignment(AssignExprIF lhs, boolean lhsDeref, AssignExprIF rhs, boolean rhsDeref, boolean rhsAddrof) creates a new instance ofAssignmentIFassignOffset(ExpressionNode offset, boolean positive) creates anAssignOffsetIFfrom an ExpressionNode of integer typeassignOffset(Integer val) creates anAssignOffsetIFrepresents the given constant integer.assignOffsetExpr(AssignExprIF base, AssignOffsetIF offset) creates an abstract object representing a pointer with an offsetcreates anAssignOffsetIFrepresents constant integral zero.assignStoreExpr(Variable store) creates an abstract object representing a variableassignStoreExpr(ExpressionNode store) creates an abstract object representing an allocation or a string literalassignSubscriptExpr(AssignExprIF array, AssignOffsetIF index) creates an abstract object representing an array element of another abstract objectfull()creates an abstract object representing a pointer to any possible objectInsensitiveFlow(Function function, InvocationGraphNode igNode) Creates a newInsensitiveFlowof the function body for a call instance of a function.
-
Method Details
-
InsensitiveFlow
Creates a new
InsensitiveFlowof the function body for a call instance of a function.- Parameters:
function- aFunctionentity that must be defined with a function bodyigNode- theInvocationGraphNodeassociated with a call instance to the given function- Returns:
- the generated insensitive flow representation
-
assignment
AssignmentIF assignment(AssignExprIF lhs, boolean lhsDeref, AssignExprIF rhs, boolean rhsDeref, boolean rhsAddrof) creates a new instance of
AssignmentIF- Parameters:
lhs- theAssignExprIFof the left-hand side of the assignmentlhsDeref- Is the left-hand side dereferenced ?rhs- lhs theAssignExprIFof the right-hand side of the assignmentrhsDeref- Is the right-hand side dereferenced ?rhsAddrof- Does the right-hand side be taken address-of ?- Returns:
-
assignStoreExpr
creates an abstract object representing an allocation or a string literal- Parameters:
store- an allocation (malloc call) or a string literal (string literal constant)
-
assignStoreExpr
creates an abstract object representing a variable- Parameters:
store- a variable
-
assignFieldExpr
creates an abstract object representing a struct/union field of another abstract object- Parameters:
struct- an abstract objectfield- aField
-
assignSubscriptExpr
creates an abstract object representing an array element of another abstract object- Parameters:
array- an abstract objectindex- an instance ofAssignOffsetIFrepresenting the index
-
assignOffsetExpr
creates an abstract object representing a pointer with an offset- Parameters:
array- an abstract objectindex- an instance ofAssignOffsetIFrepresenting the offset
-
assignAuxExpr
creates a typed auxiliary abstract object- Parameters:
type- the type of the creating auxiliary abstract object
-
assignOffset
creates an
AssignOffsetIFfrom an ExpressionNode of integer typeWhether the created integral parameter represents a constant integer depends on whether the given expression node has a constant value.
- Parameters:
offset- anExpressionNodeof integer typepositive- whether the given "offset" argument is positive or negative
-
assignOffsetZero
AssignOffsetIF assignOffsetZero()creates an
AssignOffsetIFrepresents constant integral zero. -
assignOffset
creates an
AssignOffsetIFrepresents the given constant integer. -
assignOffsetWild
AssignOffsetIF assignOffsetWild()- Returns:
- an instance representing an arbitrary offset
-
full
AssignExprIF full()creates an abstract object representing a pointer to any possible object
-