@@ -85,7 +85,7 @@ a better picture of exactly what is computed.
85
85
: Every property in the program is checked to see whether it is true
86
86
(it always holds), unreachable, false if it is reachable (due to the
87
87
over-approximate analysis, it is not clear if locations are reachable
88
- or if it is an overapproximation , so this is the best that can be
88
+ or if it is an over-approximation , so this is the best that can be
89
89
achieved) or unknown. If there are multiple points of execution that
90
90
reach the same location, each will be checked and the answers
91
91
combined, with unknown taking precedence.
@@ -99,8 +99,8 @@ value. If this makes instructions unreachable (for example if `GOTO`
99
99
can be shown to never be taken) they will be removed. Removal can be
100
100
deactivated by passing ` --no-simplify-slicing ` . In the ideal world
101
101
simplify would be idempotent (i.e. running it a second time would not
102
- simply anything more than the first). However there are edge cases
103
- which are difficult or prohibitatively expensive to handle in the
102
+ simplify anything more than the first). However there are edge cases
103
+ which are difficult or prohibitively expensive to handle in the
104
104
domain which can result in a second (or more) runs giving
105
105
simplification. Submitting bug reports for these is helpful but they
106
106
may not be viable to fix.
@@ -284,7 +284,7 @@ element is stored for every entry in the array.
284
284
: This controls the handling of pointers. The default, ` top-bottom ` effectively
285
285
ignores pointers, this is OK if they are just read (all reads return
286
286
top) but if they are written then there is the problem that we know
287
- that a variable is changed but we don't which one, so we have to set
287
+ that a variable is changed but we know don't which one, so we have to set
288
288
the whole domain to top. ` constants ` is somewhat misleadingly named as it
289
289
uses an abstract object that tracks a pointer to a single variable.
290
290
This includes the offset within the variable; a stack of field names
@@ -300,7 +300,7 @@ described above.
300
300
variable of union type.
301
301
302
302
` --vsd-data-dependencies `
303
- : Wraps each abstract object with a set of locations whether the
303
+ : Wraps each abstract object with a set of locations where the
304
304
variable was last modified. The set is reset when the variable is
305
305
written and takes the union of the two sides' sets on merge. This was
306
306
originally intended for ` --dependence-graph-vs ` but has proved useful
@@ -383,8 +383,8 @@ is visited. There is not a direct form of program transformation that
383
383
matches this but it is similar to the per-path analysis that symbolic
384
384
execution does. The scalability and the risk of non-termination if
385
385
` n ` is ` 0 ` remain the same. Note that the goto-programs generated by
386
- various language front-ends have a condition forwards jump to exit the
387
- loop if the condition fails at the start and a unconditional backwards
386
+ various language front-ends have a conditional forwards jump to exit the
387
+ loop if the condition fails at the start and an unconditional backwards
388
388
jump at the end. This means that ` --branching ` can wind up
389
389
distinguishing different loop iterations -- "has not exited for the
390
390
last 3 iterations" rather than "has jumped back to the top 3 times".
0 commit comments