File tree 2 files changed +15
-2
lines changed
2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -30,9 +30,12 @@ To be documented.
30
30
31
31
To be documented.
32
32
33
- \subsection analyses-constant-propagation Constant propagation (constant_propagator_ait)
33
+ \subsection analyses-constant-propagation Constant propagation (\ref constant_propagator_ait)
34
34
35
- To be documented.
35
+ A simple, unsound constant propagator. Replaces RHS symbol expressions (variable
36
+ reads) with their values when they appear to have a unique value at a particular
37
+ program point. Unsound with respect to pointer operations on the left-hand side
38
+ of assignments.
36
39
37
40
\subsection analyses-taint Taint analysis (custom_bitvector_analysist)
38
41
Original file line number Diff line number Diff line change @@ -8,6 +8,16 @@ Author: Peter Schrammel
8
8
9
9
// / \file
10
10
// / Constant propagation
11
+ // /
12
+ // / A simple, unsound constant propagator. Assignments to symbols (local and
13
+ // / global variables) are tracked, and propagated if a unique value is found
14
+ // / at a given use site. Function calls are accounted for (they are assumed to
15
+ // / overwrite all address-taken variables; see \ref dirtyt), but assignments
16
+ // / through pointers are not (they are assumed to have no effect).
17
+ // /
18
+ // / Can be restricted to operate over only particular symbols by passing a
19
+ // / predicate to a \ref constant_propagator_ait constructor, in which case this
20
+ // / can be rendered sound by restricting it to non-address-taken variables.
11
21
12
22
#ifndef CPROVER_ANALYSES_CONSTANT_PROPAGATOR_H
13
23
#define CPROVER_ANALYSES_CONSTANT_PROPAGATOR_H
You can’t perform that action at this time.
0 commit comments