Changes between Version 1 and Version 2 of StaticAnalysis
- Timestamp:
- 05/07/19 17:18:21 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
StaticAnalysis
v1 v2 1 1 == Points-To Analysis== 2 The Flow-Insensitive Representation2 **The Flow-Insensitive Representation 3 3 * {{{AssignmentIF}}} : A flow-insensitive representation of a program is a set of {{{AssignmentIF}}}. An {{{AssignmentIF}}} instance represents an assignment in the program which is one of the following forms: 4 4 * Base: {{{ lhs = &rhs }}} … … 7 7 * Complex 2: {{{ lhs = *rhs }}} 8 8 9 For the case of {{{ *lhs = *rhs }}}, an auxiliary variable {{{tmp}}} is introduced: {{{ tmp = *rhs }}}, {{{ *rhs = tmp }}}. 10 11 For now, structs and array elements are all invisible for the flow-insensitive representation: so {{{ expr.id }}} is abstracted to {{{expr}}}; {{{expr->id}}} is abstracted to {{{*expr}}}; {{{a[I]}}} is abstracted to {{{a}}}; {{{*(p + i)}}}, where {{{I}}} is an integer, is abstracted to {{{*p}}}. 12 13 For the case of {{{lhs = a op b}}} (or `*lhs = a op b`), it is abstracted to `lhs = a` (or `*lhs = a`) and `lhs = b` (or `*lhs = b`) 14 9 15 10 16
