diff --git a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 index ed7dc106207e973679b8036711f40bc63f9292bc..1c3111811334a19ca77ff011c42803f7231edc2e 100644 --- a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 +++ b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 @@ -46,17 +46,17 @@ compile the generated and the original (supplied) sources. By default no compilation is performed. .TP .B -D, --rt-debug -Enable runtime debug features, i.e., compile unoptimized executable +enable runtime debug features, i.e., compile unoptimized executable with assertions and extra checks. .TP .B --no-trace -Disable stack trace reporting in debug mode +disable stack trace reporting in debug mode .TP .B -V, --rt-verbose -Output extra messages when executing generated code +output extra messages when executing generated code .TP .B -X, --instrumented-only -Do not compile original code. Has effect only in the presence of the \fI-c\fP +do not compile original code. Has effect only in the presence of the \fI-c\fP flag. .TP .B -C, --compile-only @@ -70,7 +70,7 @@ By default the -\fIdebug\fP flag is unused. pass a value to the \fBFrama-C\fP -\fIverbose\fP option. By default the -\fIverbose\fP flag is unused. .TP -.B -V, --check +.B --check check integrity of the generated AST (mostly useful for developers). .TP .B -o, --ocode=\fI<FILE> @@ -157,25 +157,28 @@ Valid arguments are: \fIall\fP \- all of the above. .TP .B -A, --rte-select=\fI<OPTSTRING> -Restrict annotations to a given list of functions. +restrict annotations to a given list of functions. \fIOPTSTRING\fP is a comma-separated string comprising function names. .TP .B --stack-size=\fI<NUMBER> -Set the size (in MB) of the stack shadow space +set the size (in MB) of the stack shadow space .TP .B --heap-size=\fI<NUMBER> -Set the size (in MB) of the heap shadow space +set the size (in MB) of the heap shadow space .TP .B -k, --keep-going -Continue execution after an assertion failure +continue execution after an assertion failure .TP .B --free-valid-address -Trigger failure if a NULL-pointer is used as an input to free function +trigger failure if a NULL-pointer is used as an input to free function .TP .B --fail-with-code=\fI<NUMBER> -On assertion failure exit with the given integer code intead of raising an abort +on assertion failure exit with the given integer code intead of raising an abort signal .TP +.B --external-assert=\fI<FILE> +the filename that contains your own implementation of __e_acsl_assert +.TP .B -m, --memory-model=\fI<model> memory model (i.e., a runtime library for checking memory related annotations) to be linked against the instrumented file. @@ -186,54 +189,58 @@ Valid arguments are: By default the Patricia trie memory model is used. .TP -.B --print-models -Print the names of the supported memory models +.B --print-mmodels +print the names of the supported memory models .TP .B -I, --frama-c=\fI<FILE> the name of the \fBFrama-C\fP executable. By default the first \fIframa-c\fP executable found in the system path is used. .TP +.B --e-acsl-share=\fI<DIR> +the name of the \fBE-ACSL\fP share directory. If not provided, it is computed +from your setting. +.TP .B -G, --gcc=\fI<FILE> the name of the \fBGCC\fP executable. By default the first \fIgcc\fP executable found in the system path is used. .TP .B --then -Separate with a \fB-then\fP the first \fBFrama-C\fP options from the actual +separate with a \fB-then\fP the first \fBFrama-C\fP options from the actual launch of the \fBE-ACSL\fP plugin. Prepends \fB-e-acsl-prepare\fP to the list of options passed to \fBFrama-C\fP. .TP .B --e-acsl-extra=\fI<OPTS> -Adds \fI<OPTS>\fP to the list of options that will be given to the \fBE-ACSL\fP +add \fI<OPTS>\fP to the list of options that will be given to the \fBE-ACSL\fP analysis. Only useful when \fB--then\fP is in use, in which case \fI<OPTS>\fP will be placed after the \fB-then\fP on \fBFrama-C\fP's command-line. Otherwise, equivalent to \fB--frama-c-extra\fP .SH EXIT STATUS .TP .B 0 -Successful execution +successful execution .TP .B 1 -Invalid user input +invalid user input .TP .B \fBFrama-C\fP or \fBGCC\fP error code -Instrumentation- or compile-time error +instrumentation- or compile-time error .SH EXAMPLES .B e-acsl-gcc.sh foo.c -Instrument foo.c and output the instrumented code to \fIa.out.frama.c\fP. +instrument foo.c and output the instrumented code to \fIa.out.frama.c\fP. .B e-acsl-gcc.sh -P -c -ogen_foo.c -Ofoo foo.c -Instrument \fIfoo.c\fP, output the instrumented code to \fIgen_foo.c\fP and +instrument \fIfoo.c\fP, output the instrumented code to \fIgen_foo.c\fP and compile \fIfoo.c\fP into \fIfoo\fP and \fIgen_foo.c\fP into \fIfoo.e-acsl\fP. The \fB-P\fP option specifies that the instrumentation should omit debug functionality. .B e-acsl-gcc.sh --memory-model=bittree -C gen_foo.c -Assume \fIgen_foo.c\fP has been instrumented by \fBE-ACSL\fP and compile it into +assume \fIgen_foo.c\fP has been instrumented by \fBE-ACSL\fP and compile it into \fIa.out.e-acsl\fP using \fBbittree\fP memory model. .SH SEE ALSO diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp index 56f49d1a9d46970efcf0c5ef39c179969c342fd9..4e075e196a591c2729f55a6152d52ade99430459 100644 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp @@ -29,14 +29,20 @@ _eacsl_gcc() { prev="${COMP_WORDS[COMP_CWORD-1]}" opts=" - -i -C -p -d -o -O -v -f -E -L -M -l -e -g -q -s -F -P -N -D -I -G -X -a - -h -c -msegment -mbittree + -i -C -p -d -o -O -v -V -f -E -L -M -l -e -g -q -s -F -P -N -D -I -G -X -a + -h -c -T -k --verbose= --debug= --debug-log= --logfile= --quiet --rt-debug --help + --rt-verbose --check --then --keep-going --fail-with-code --external-assert= + --no-trace --ocode= --oexec= --oexec-e-acsl= --ld-flags= --cpp-flags= --extra-cpp-args= --frama-c-extra= --frama-c= --gcc= --e-acsl-share= --memory-model= - --compile --compile-only --print --frama-c-only --instrumented-only - --gmp --full-mmodel --rte --no-int-overflow --no-stdlib --frama-c-stdlib" + --e-acsl-extra= + --compile --compile-only --print-mmodels --frama-c-only --instrumented-only + --gmp --full-mmodel --rte= --rte-select= --no-int-overflow + --no-stdlib --frama-c-stdlib --libc-replacements + --temporal --free-valid-address --weak-validity --validate-format-strings + --heap-size --stack-size" case ${prev} in -*) diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh index 3baaacb93aaaf2866e66c17dcc930b2de2d3cbd5..63cd1360942be5f6cda145a3a5e5b430bd788004 100755 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh @@ -324,9 +324,11 @@ Usage: e-acsl-gcc.sh [options] files Options: -h show this help page -c compile instrumented code + -C assume that the input files have already been instrumented -l pass additional options to the linker -e pass additional options to the prepreprocessor -E pass additional arguments to the Frama-C preprocessor + -F pass additional options to the Frama-C command line -p output the generated code to STDOUT -o <file> output the generated code to <file> [a.out.frama.c] -O <file> output the generated executables to <file> [a.out, a.out.e-acsl]