@@ -8,6 +8,12 @@ goto-analyzer \- Data-flow analysis for C programs and goto binaries
88
99.B goto\-analyzer [options] file.c|file.gb
1010
11+ .B goto\-analyzer [--no-standard-checks] \fI file.c \fB ...
12+
13+ .B goto\-analyzer [--no-standard-checks] [--pointer-check] \fI file.c \fB ...
14+
15+ .B goto\-analyzer [--no-bounds-check] \fI file.c \fB ...
16+
1117.SH DESCRIPTION
1218.B goto-analyzer
1319is an abstract interpreter which uses the same
@@ -494,6 +500,10 @@ list loaded goto functions
494500show the properties, but don't run analysis
495501.SS "Program instrumentation options:"
496502.TP
503+ \fB \-\- no \- standard \- checks \fR
504+ disable the standard (default) checks applied to a C/GOTO program
505+ (see below for more information)
506+ .TP
497507\fB \-\- property \fR id
498508enable selected properties only
499509.TP
@@ -569,6 +579,73 @@ set malloc failure mode to return null
569579.TP
570580\fB \-\- string \- abstraction \fR
571581track C string lengths and zero\- termination
582+ .SS "Standard Checks"
583+ From version \fB 6.0 \fR onwards, \fB cbmc \fR , \fB goto-analyzer \fR and some other tools
584+ apply some checks to the program by default (called the "standard checks"), with the
585+ aim to provide a better user experience for a non-expert user of the tool. These checks are:
586+ .TP
587+ \fB \-\- pointer \- check \fR
588+ enable pointer checks
589+ .TP
590+ \fB \-\- bounds \- check \fR
591+ enable array bounds checks
592+ .TP
593+ \fB \-\- undefined \- shift \- check \fR
594+ check shift greater than bit\- width
595+ .TP
596+ \fB \-\- div \- by \- zero \- check \fR
597+ enable division by zero checks
598+ .TP
599+ \fB \-\- pointer \- primitive \- check \fR
600+ checks that all pointers in pointer primitives are valid or null
601+ .TP
602+ \fB \-\- signed \- overflow \- check \fR
603+ enable signed arithmetic over\- and underflow checks
604+ .TP
605+ \fB \-\- malloc \- may \- fail \fR
606+ allow malloc calls to return a null pointer
607+ .TP
608+ \fB \-\- malloc \- fail \- null \fR
609+ set malloc failure mode to return null
610+ .TP
611+ \fB \-\- unwinding \- assertions \fR (\fB cbmc \fR \- only)
612+ generate unwinding assertions (cannot be
613+ used with \fB \-\- cover \fR )
614+ .PP
615+ These checks can all be deactivated at once by using the \fB \-\- no \- standard \- checks \fR flag
616+ like in the header example, or individually, by prepending a \fB no \- \fR before the flag, like
617+ so:
618+ .TP
619+ \fB \-\- no \- pointer \- check \fR
620+ disable pointer checks
621+ .TP
622+ \fB \-\- no \- bounds \- check \fR
623+ disable array bounds checks
624+ .TP
625+ \fB \-\- no \- undefined \- shift \- check \fR
626+ do not perform check for shift greater than bit\- width
627+ .TP
628+ \fB \-\- no \- div \- by \- zero \- check \fR
629+ disable division by zero checks
630+ .TP
631+ \fB \-\- no \- pointer \- primitive \- check \fR
632+ do not check that all pointers in pointer primitives are valid or null
633+ .TP
634+ \fB \-\- no \- signed \- overflow \- check \fR
635+ disable signed arithmetic over\- and underflow checks
636+ .TP
637+ \fB \-\- no \- malloc \- may \- fail \fR
638+ do not allow malloc calls to fail by default
639+ .TP
640+ \fB \-\- no \- malloc \- fail \- null \fR
641+ do not set malloc failure mode to return null pointer
642+ .TP
643+ \fB \-\- no \- unwinding \- assertions \fR (\fB cbmc \fR \- only)
644+ do not generate unwinding assertions (cannot be
645+ used with \fB \-\- cover \fR )
646+ .PP
647+ If an already set flag is re-set, like calling \fB \-\- pointer \- check \fR
648+ when default checks are already on, the flag is simply ignored.
572649.SS "Other options:"
573650.TP
574651\fB \-\- validate \- goto \- model \fR
0 commit comments