@@ -8,6 +8,12 @@ cbmc \- Bounded Model Checker for C/C++ and Java programs
8
8
9
9
.B cbmc [--all-properties] \fI file.c \fB ...
10
10
11
+ .B cbmc [--no-standard-checks] \fI file.c \fB ...
12
+
13
+ .B cbmc [--no-standard-checks] [--pointer-check] \fI file.c \fB ...
14
+
15
+ .B cbmc [--no-bounds-check] \fI file.c \fB ...
16
+
11
17
.B goto-cc [-I \fI include-path \fB ] [-c] \fI file.c \fB [-o \fI outfile.o \fB ]
12
18
13
19
.B goto-instrument \fI infile \fB \fI outfile \fR
@@ -41,8 +47,79 @@ The usual flow is to (1) translate source into a GOTO binary using
41
47
goto-cc, then (2) perform instrumentation with goto-instrument, and
42
48
finally (3) perform the analysis with cbmc.
43
49
.SH OPTIONS
50
+ .SS "Standard Checks"
51
+ From version \fB 6.0 \fR onwards, \fB cbmc \fR , \fB goto-analyzer \fR and some other tools
52
+ apply some checks to the program by default (called the "standard checks"), with the
53
+ aim to provide a better user experience for a non-expert user of the tool. These checks are:
54
+ .TP
55
+ \fB \-\- pointer \- check \fR
56
+ enable pointer checks
57
+ .TP
58
+ \fB \-\- bounds \- check \fR
59
+ enable array bounds checks
60
+ .TP
61
+ \fB \-\- undefined \- shift \- check \fR
62
+ check shift greater than bit\- width
63
+ .TP
64
+ \fB \-\- div \- by \- zero \- check \fR
65
+ enable division by zero checks
66
+ .TP
67
+ \fB \-\- pointer \- primitive \- check \fR
68
+ checks that all pointers in pointer primitives are valid or null
69
+ .TP
70
+ \fB \-\- signed \- overflow \- check \fR
71
+ enable signed arithmetic over\- and underflow checks
72
+ .TP
73
+ \fB \-\- malloc \- may \- fail \fR
74
+ allow malloc calls to return a null pointer
75
+ .TP
76
+ \fB \-\- malloc \- fail \- null \fR
77
+ set malloc failure mode to return null
78
+ .TP
79
+ \fB \-\- unwinding \- assertions \fR (\fB cbmc \fR \- only)
80
+ generate unwinding assertions (cannot be
81
+ used with \fB \-\- cover \fR )
82
+ .PP
83
+ These checks can all be deactivated at once by using the \fB \-\- no \- standard \- checks \fR flag
84
+ like in the header example, or individually, by prepending a \fB no \- \fR before the flag, like
85
+ so:
86
+ .TP
87
+ \fB \-\- no \- pointer \- check \fR
88
+ disable pointer checks
89
+ .TP
90
+ \fB \-\- no \- bounds \- check \fR
91
+ disable array bounds checks
92
+ .TP
93
+ \fB \-\- no \- undefined \- shift \- check \fR
94
+ do not perform check for shift greater than bit\- width
95
+ .TP
96
+ \fB \-\- no \- div \- by \- zero \- check \fR
97
+ disable division by zero checks
98
+ .TP
99
+ \fB \-\- no \- pointer \- primitive \- check \fR
100
+ do not check that all pointers in pointer primitives are valid or null
101
+ .TP
102
+ \fB \-\- no \- signed \- overflow \- check \fR
103
+ disable signed arithmetic over\- and underflow checks
104
+ .TP
105
+ \fB \-\- no \- malloc \- may \- fail \fR
106
+ do not allow malloc calls to fail by default
107
+ .TP
108
+ \fB \-\- no \- malloc \- fail \- null \fR
109
+ do not set malloc failure mode to return null pointer
110
+ .TP
111
+ \fB \-\- no \- unwinding \- assertions \fR (\fB cbmc \fR \- only)
112
+ do not generate unwinding assertions (cannot be
113
+ used with \fB \-\- cover \fR )
114
+ .PP
115
+ If an already set flag is re-set, like calling \fB \-\- pointer \- check \fR
116
+ when default checks are already on, the flag is simply ignored.
44
117
.SS "Analysis options:"
45
118
.TP
119
+ \fB \-\- no \- standard \- checks \fR
120
+ disable the standard (default) checks applied to a C/GOTO program
121
+ (see above for more information)
122
+ .TP
46
123
\fB \-\- show \- properties \fR
47
124
show the properties, but don't run analysis
48
125
.TP
0 commit comments