| | 11 | 4. variable addressed-of: a variable that's used as the operand of the address-of operator `&`. |
| | 12 | |
| | 13 | === Impact memory unit analysis === |
| | 14 | The analysis below is an over approximation. |
| | 15 | ==== Expressions ==== |
| | 16 | let `e` be an expression, let `le` be an left-hand-side expression, let `impact(e)` be the set of impact memory units of `e`. |
| | 17 | |
| | 18 | 1. abstract function call: `e = f(e0,e1, ...)` |
| | 19 | `impact(f(e0,e1, ...)) = impact(e0) U impact(e1) ...` |
| | 20 | 2. address-of: `e=&le` |
| | 21 | `impact($le)=impact(sub(le))` |
| | 22 | 3. |
| | 23 | |
| | 24 | ==== Sub-expressions ==== |
| | 25 | let `e` be an expression, let `sub(e)` be the set of sub-expressions of `e`. |
| | 26 | |
| | 27 | 1. abstract function call: `e = f(e0,e1, ...)` |
| | 28 | `sub(f(e0,e1, ...)) = {e0, e1, ...}` |
| | 29 | 2. address-of: `e=&le` |
| | 30 | `sub(&le)=sub(le)` |
| | 31 | 3. |
| | 32 | |