diff --git a/share/analysis-scripts/make_wrapper.py b/share/analysis-scripts/make_wrapper.py index 0ae1736eebe66d66ca052706a244501f4d6f643b..3dba6e1c2752541daab67256f0ec4568c602298d 100755 --- a/share/analysis-scripts/make_wrapper.py +++ b/share/analysis-scripts/make_wrapper.py @@ -43,9 +43,9 @@ if sys.version_info < MIN_PYTHON: # We first test with 'gmake', then 'make', then fail. make_cmd = "gmake" get_make_major_version_args = r" --version | grep 'GNU Make\s\+\([0-9]\+\)\..*$' | sed -E 's|GNU Make +([0-9]+)\..*|\1|'" -if os.system(f"test $({make_cmd} {get_make_major_version_args}) -ge 4") != 0: +if os.system(f"command -v {make_cmd} >{os.devnull} && test \"$({make_cmd} {get_make_major_version_args})\" -ge 4 2>{os.devnull}") != 0: make_cmd = "make" - if os.system(f"test $({make_cmd} {get_make_major_version_args}) -ge 4") != 0: + if os.system(f"command -v {make_cmd} >{os.devnull} && test \"$({make_cmd} {get_make_major_version_args})\" -ge 4 2>{os.devnull}") != 0: sys.exit("error: could not find GNU make >= 4.0 (tried 'gmake' and 'make')") parser = argparse.ArgumentParser(description=""" diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog index 7581059237cfcf961bb0ff31a7b4a3a9be2f81cb..1976998a6fea11f1c4c50142815bc3213f1882c8 100644 --- a/src/plugins/e-acsl/doc/Changelog +++ b/src/plugins/e-acsl/doc/Changelog @@ -25,6 +25,11 @@ Plugin E-ACSL <next-release> ############################ +- E-ACSL [2021-10-20] Add option -e-acsl-assert-print-data + (--assert-print-data in e-acsl-gcc.sh) to print data + contributing to a failed assertion along with the error message. + Add option --external-print-value in e-acsl-gcc.sh to provide a + custom implementation of __e_acsl_print_value(). - E-ACSL [2021-10-07] Support for \prod and \numof. -* E-ACSL [2021-09-29] Fix translation order of the default behavior's requires clauses. They are now translated before the evaluation diff --git a/src/plugins/e-acsl/doc/refman/.gitignore b/src/plugins/e-acsl/doc/refman/.gitignore index b4014d512227c85fcc1877d8a66393172faeb8b8..3436ea4bc793f4beec375ee0b723b7edd82527eb 100644 --- a/src/plugins/e-acsl/doc/refman/.gitignore +++ b/src/plugins/e-acsl/doc/refman/.gitignore @@ -1,3 +1,5 @@ +anr-logo.png +eu-flag.jpg frama-c-book.cls frama-c-cover.pdf frama-c-left.pdf diff --git a/src/plugins/e-acsl/doc/userman/.gitignore b/src/plugins/e-acsl/doc/userman/.gitignore index 3ffa44f89d754052b750df77ee3ef0975b691b4d..539ba638159cd08695034fbb376305cf552ba474 100644 --- a/src/plugins/e-acsl/doc/userman/.gitignore +++ b/src/plugins/e-acsl/doc/userman/.gitignore @@ -1,3 +1,5 @@ +anr-logo.png +eu-flag.jpg frama-c-book.cls frama-c-cover.pdf frama-c-left.pdf diff --git a/src/plugins/e-acsl/doc/userman/changes.tex b/src/plugins/e-acsl/doc/userman/changes.tex index 0d53e9d25dceefdf9e5f1d2e1f31a7288909e102..cbdddcd2a4d79e312b40c913ba71a700538bcf8a 100644 --- a/src/plugins/e-acsl/doc/userman/changes.tex +++ b/src/plugins/e-acsl/doc/userman/changes.tex @@ -6,6 +6,14 @@ release. First we list changes of the last release. % Next version %\section*{E-ACSL \eacslpluginversion \eacslplugincodename} +\section*{E-ACSL \eacslpluginversion \eacslplugincodename} + +\begin{itemize} +\item \textbf{Runtime Monitor Behavior}: Document new options + \longopt{assert-print-data} and \longopt{external-print-value} of + \eacslgcc, and update documentation for option \longopt{external-assert}. +\end{itemize} + \section*{E-ACSL 22.0 Titanium} \begin{itemize} diff --git a/src/plugins/e-acsl/doc/userman/examples/assert_sign.c b/src/plugins/e-acsl/doc/userman/examples/assert_sign.c index 7d2fb1842f2799b6c9fe34eac9d7d08429086828..fe59d044f44d9b8fa9ec568abd02476d8c72c8a9 100644 --- a/src/plugins/e-acsl/doc/userman/examples/assert_sign.c +++ b/src/plugins/e-acsl/doc/userman/examples/assert_sign.c @@ -1,2 +1 @@ -void __e_acsl_assert(int pred, const char *kind, const char *func_name, - const char *pred_txt, const char * file, int line); +void __e_acsl_assert(int predicate, __e_acsl_assert_data_t * data); diff --git a/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c b/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c index 54948acabb34603ad326da9f69746e4e096e980f..1610681b16dbce6e48a5f08934ecb5fb1c24320d 100644 --- a/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c +++ b/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c @@ -8,24 +8,24 @@ #include "stddef.h" #include "stdio.h" struct __e_acsl_contract_t; -typedef struct __e_acsl_contract_t __attribute__((__FC_BUILTIN__)) __e_acsl_contract_t; +typedef struct __e_acsl_contract_t __attribute__((FC_BUILTIN)) __e_acsl_contract_t; struct __e_acsl_mpz_struct { int _mp_alloc ; int _mp_size ; unsigned long *_mp_d ; }; typedef struct __e_acsl_mpz_struct __e_acsl_mpz_struct; -typedef __e_acsl_mpz_struct ( __attribute__((__FC_BUILTIN__)) __e_acsl_mpz_t)[1]; +typedef __e_acsl_mpz_struct ( __attribute__((FC_BUILTIN)) __e_acsl_mpz_t)[1]; struct __e_acsl_mpq_struct { __e_acsl_mpz_struct _mp_num ; __e_acsl_mpz_struct _mp_den ; }; typedef struct __e_acsl_mpq_struct __e_acsl_mpq_struct; -typedef __e_acsl_mpq_struct ( __attribute__((__FC_BUILTIN__)) __e_acsl_mpq_t)[1]; +typedef __e_acsl_mpq_struct ( __attribute__((FC_BUILTIN)) __e_acsl_mpq_t)[1]; typedef unsigned long __e_acsl_mp_bitcnt_t; /*@ requires pred != 0; assigns \nothing; */ - __attribute__((__FC_BUILTIN__)) void __e_acsl_assert(int pred, + __attribute__((FC_BUILTIN)) void __e_acsl_assert(int pred, char const *kind, char const *fct, char const *pred_txt, diff --git a/src/plugins/e-acsl/doc/userman/examples/my_assert.c b/src/plugins/e-acsl/doc/userman/examples/my_assert.c index d6f42e6db325c3b424a3d7f3e3e6f81ada680633..3a34ac2fa87bb04f6e1ff95ba3a63bf127fbeab1 100644 --- a/src/plugins/e-acsl/doc/userman/examples/my_assert.c +++ b/src/plugins/e-acsl/doc/userman/examples/my_assert.c @@ -1,16 +1,24 @@ -#include "stdio.h" +#include <stdio.h> +#include <e_acsl.h> extern int __e_acsl_sound_verdict; -void __e_acsl_assert(int pred, const char *kind, const char *func_name, - const char *pred_text, const char *file, int line) { +void __e_acsl_assert(int predicate, __e_acsl_assert_data_t * data) { printf("%s in file %s at line %d in function %s is %s (%s).\n\ The verified predicate was: `%s'.\n", - kind, - file, - line, - func_name, - pred ? "valid" : "invalid", + data->kind, + data->file, + data->line, + data->fct, + predicate ? "valid" : "invalid", __e_acsl_sound_verdict ? "trustworthy" : "UNTRUSTWORTHY", - pred_text); + data->pred_txt); + if (data->values) { + printf("With values:\n"); + __e_acsl_assert_data_value_t * value = data->values; + while (value != NULL) { + __e_acsl_print_value(value); + value = value->next; + } + } } diff --git a/src/plugins/e-acsl/doc/userman/examples/my_print_value.c b/src/plugins/e-acsl/doc/userman/examples/my_print_value.c new file mode 100644 index 0000000000000000000000000000000000000000..184752a032acdd96f3b2b038d2833ae1d675de8e --- /dev/null +++ b/src/plugins/e-acsl/doc/userman/examples/my_print_value.c @@ -0,0 +1,6 @@ +#include <stdio.h> +#include <e_acsl.h> + +void __e_acsl_print_value(__e_acsl_assert_data_value_t * value) { + printf("\t- custom print for %s\n", value->name); +} diff --git a/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c b/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c new file mode 100644 index 0000000000000000000000000000000000000000..bf928ebfa21b87e15e2bebf8f0fbea2ed351bdfc --- /dev/null +++ b/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c @@ -0,0 +1 @@ +void __e_acsl_print_value(__e_acsl_assert_data_value_t * value); diff --git a/src/plugins/e-acsl/doc/userman/provides.tex b/src/plugins/e-acsl/doc/userman/provides.tex index f393932c92ffcd66ac781425ac4f6380ad53e955..8c7055d64dcebd9fa0d79502a989828e242ab435 100644 --- a/src/plugins/e-acsl/doc/userman/provides.tex +++ b/src/plugins/e-acsl/doc/userman/provides.tex @@ -652,6 +652,20 @@ following signature: \cinput{examples/assert_sign.c} +With \texttt{data} a structure containing the following fields: +\begin{itemize} + \item \texttt{blocking}: integer representing if the assertion is blocking or + not; + \item \texttt{kind}: C string representing a kind of annotation (e.g., + "Assertion"); + \item \texttt{pred\_txt}: stringified predicate; + \item \texttt{file}: un-instrumented file of predicate placement; + \item \texttt{fct}: function of predicate placement in the un-instrumented + file; + \item \texttt{line}: line of predicate placement in the un-instrumented file; + \item \texttt{values}: values contributing to the predicate. +\end{itemize} + Additionally, it may depends on the global variable \texttt{\_\_e\_acsl\_sound\_verdict}\codeidxdef{e\_acsl\_sound\_verdict}. This variable of type \texttt{int} is set to \texttt{0} as soon as the verdict @@ -668,7 +682,7 @@ A monitored program that uses custom definition of \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert} can then be generated as follows using \longopt{external-assert} option of \eacslgcc to replace the default implementation of \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert} -with the customized one specified in \texttt{my\_assert.c} +with the customized one specified in \texttt{my\_assert.c}. \begin{shell} \$ e-acsl-gcc.sh -c -X first.i -Ofirst --external-assert=my_assert.c @@ -679,6 +693,91 @@ Assertion in file first.i at line 4 in function main is invalid (trustworthy). The verified predicate was: `x == 1'. \end{shell} +The default assertion function prints the values contributing to an assertion +along with the error message. + +\begin{shell} +\$ e-acsl-gcc.sh -c -X first.i -Ofirst +\$ ./first.e-acsl +first.i: In function 'main' +first.i:4: Error: Assertion failed: + The failing predicate is: + x == 1. + With values: + - x: 0 +\end{shell} + +This behavior can be overriden by using the \longopt{no-assert-print-data} +option of \eacslgcc. + +\begin{shell} + \$ e-acsl-gcc.sh -c -X first.i -Ofirst --no-assert-print-data + \$ ./first.e-acsl + first.i: In function 'main' + first.i:4: Error: Assertion failed: + The failing predicate is: + x == 1. +\end{shell} + +As with the assertion function, \eacslgcc provides a way to use an alternative +definition of +\texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value}. + +Custom implementation of \texttt{\_\_e\_acsl\_print\_value} +\codeidxdef{e\_acsl\_print\_value} should be provided in a separate \C +(or object file) and respect the following signature: + +\cinput{examples/print_value_sign.c} + +The details and documentation of the structure +\texttt{\_\_e\_acsl\_assert\_data\_value\_t} can be found in the file +\texttt{e\_acsl\_assert\_data.h} distributed with \eacsl in the installation +folder \texttt{share/frama-c/e-acsl/instrumentation\_model}. + +Below is an example which prints only the name of the variable contributing to +an assertion. + +\listingname{my\_print\_value.c} +\cinput{examples/my_print_value.c} + +A monitored program that uses custom definition of +\texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value} can then be +generated as follows using \longopt{external-print-value} option of \eacslgcc to +replace the default implementation of \texttt{\_\_e\_acsl\_print\_value} +\codeidxdef{e\_acsl\_print\_value} with the customized one specified in +\texttt{my\_print\_value.c}. + +\begin{shell} +\$ e-acsl-gcc.sh -c -X first.i -Ofirst \ + --external-print-value=my_print_value.c +\$ ./first.e-acsl +first.i: In function 'main' +first.i:4: Error: Assertion failed: + The failing predicate is: + x == 1. + With values: + - custom print for x +\end{shell} + +The custom definitions of \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert} +and \texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value} can be +used at the same time. + +\begin{shell} +\$ e-acsl-gcc.sh -c -X first.i -Ofirst \ + --external-assert=my_assert.c \ + --external-print-value=my_print_value.c +\$ ./first.e-acsl +Assertion in file first.i at line 3 in function main is valid (trustworthy). +The verified predicate was: `x == 0'. +With values: + - custom print for x +Assertion in file first.i at line 4 in function main is invalid (trustworthy). +The verified predicate was: `x == 1'. +With values: + - custom print for x +\end{shell} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>>> diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index 1583aff49c066558adf6739bbd324b7ac10aee43..b6729b91e48eab50f97bc67615a78bfc01ee7664 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -14,6 +14,9 @@ man/e-acsl-gcc.sh.1: CEA_LGPL_OR_PROPRIETARY.E_ACSL scripts/e-acsl-gcc.sh: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_assert.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_assert_data.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_contract.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_contract.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_temporal.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL 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 691002b883ef4ffa218c6e8b13f4a2c6bed81dfd..c90d2f72e9f0eeba14107f91a87557dd846dfb9b 100644 --- a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 +++ b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 @@ -183,9 +183,20 @@ trigger failure if a NULL-pointer is used as an input to free function on assertion failure exit with the given integer code intead of raising an abort signal .TP +.B --assert-print-data +print data contributing to the failed assertion along with the runtime error +message +.TP +.B --no-assert-print-data +do notprint data contributing to the failed assertion along with the runtime +error message +.TP .B --external-assert=\fI<FILE> the filename that contains your own implementation of __e_acsl_assert .TP +.B --external-print-value=\fI<FILE> +the filename that contains your own implementation of __e_acsl_print_value +.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. diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp index 882753cc9ef21def1ec2913b3d6cb694c44b674f..5ecd949e9a102f06d548ad22cc69a1913b395500 100644 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp @@ -33,6 +33,7 @@ _eacsl_gcc() { -h -c -T -k --verbose= --debug= --logfile= --quiet --rt-debug --help --rt-verbose --check --then --keep-going --fail-with-code --external-assert= + --assert-print-data --no-assert-print-data --external-print-value= --no-trace --ocode= --oexec= --oexec-e-acsl= --ld-flags= --cpp-flags= --extra-cpp-args= diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh index d3aab38b258c6ea2fc76e48d3f9b0ce14364233d..cab1f3ede72d4cfd8635ba6c0089894e5dbc2060 100755 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh @@ -278,6 +278,10 @@ mmodel_features() { flags="$flags -DE_ACSL_EXTERNAL_ASSERT" fi + if [ -n "$OPTION_EXTERNAL_PRINT_VALUE" ]; then + flags="$flags -DE_ACSL_EXTERNAL_PRINT_VALUE" + fi + if [ -n "$OPTION_NO_TRACE" ]; then flags="$flags -DE_ACSL_NO_TRACE" fi @@ -299,9 +303,10 @@ LONGOPTIONS="help,compile,compile-only,debug:,ocode:,oexec:,verbose:, frama-c:,gcc:,e-acsl-share:,instrumented-only,rte:,oexec-e-acsl:, print-mmodels,rt-debug,rte-select:,then,e-acsl-extra:,check,fail-with-code:, temporal,weak-validity,stack-size:,heap-size:,rt-verbose,free-valid-address, - external-assert:,assert-print-data,validate-format-strings,no-trace, - libc-replacements,with-dlmalloc:,dlmalloc-from-sources,dlmalloc-compile-only, - dlmalloc-compile-flags:,odlmalloc:,ar:,ranlib:,mbits:" + external-assert:,assert-print-data,no-assert-print-data,external-print-value:, + validate-format-strings,no-trace,libc-replacements,with-dlmalloc:, + dlmalloc-from-sources,dlmalloc-compile-only,dlmalloc-compile-flags:, + odlmalloc:,ar:,ranlib:,mbits:" SHORTOPTIONS="h,c,C,d:,D,o:,O:,v:,f,E:,L,M,l:,e:,g,q,s:,F:,m:,I:,G:,X,a:,T,k,V" # Prefix for an error message due to wrong arguments ERROR="ERROR parsing arguments:" @@ -349,6 +354,7 @@ OPTION_HEAP_SIZE=128 # Size of a stack shadow space (in MB) OPTION_KEEP_GOING= # Report failing assertions but do not abort execution OPTION_EXTERNAL_ASSERT="" # Use custom definition of assert function OPTION_ASSERT_PRINT_DATA= # Print data contributing to a failed runtime assertion +OPTION_EXTERNAL_PRINT_VALUE="" # Use custom definition of printing value function OPTION_WITH_DLMALLOC="" # Use provided dlmalloc library OPTION_DLMALLOC_FROM_SOURCES= # Compile dlmalloc from sources OPTION_DLMALLOC_COMPILE_ONLY= # Only compile dlmalloc @@ -662,6 +668,16 @@ do shift; OPTION_ASSERT_PRINT_DATA="-e-acsl-assert-print-data" ;; + --no-assert-print-data) + shift; + OPTION_ASSERT_PRINT_DATA="-e-acsl-no-assert-print-data" + ;; + # Custom function for printing value + --external-print-value) + shift; + OPTION_EXTERNAL_PRINT_VALUE="$1" + shift; + ;; # Check output format functions --validate-format-strings) shift; @@ -934,7 +950,7 @@ if [ -n "$OPTION_VALIDATE_FORMAT_STRINGS" ]; then fi # C, CPP and LD flags for compilation of E-ACSL-generated sources -EACSL_CFLAGS="$OPTION_EXTERNAL_ASSERT" +EACSL_CFLAGS="$OPTION_EXTERNAL_ASSERT $OPTION_EXTERNAL_PRINT_VALUE" EACSL_CPPFLAGS="-I$EACSL_SHARE" EACSL_LDFLAGS="$DLMALLOC_LIB_PATH -lgmp -lm" diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl.h b/src/plugins/e-acsl/share/e-acsl/e_acsl.h index 249e65692e356519b1c7f3032eab640b29b634e8..19c078c497a1685171d4f57a71e14a9ff6772950 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl.h +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl.h @@ -54,6 +54,7 @@ * assertion failure * E_ACSL_FAIL_EXITCODE - do not issue abort signal but exit with a * given code + * E_ACSL_DEBUG_ASSERT - print the valid predicates. * Shadow spaces (only for segment model): * E_ACSL_STACK_SIZE - size (in MB) of the tracked program stack * E_ACSL_HEAP_SIZE - size (in MB) of the tracked program heap @@ -64,6 +65,9 @@ * E_ACSL_EXTERNAL_ASSERT - if this macro is defined then function * `__e_acsl_assert` is excluded from compilation. This is to allow * providing alternative definitions of assertions by users. + * E_ACSL_EXTERNAL_PRINT_VALUE - if this macro is defined then function + * `__e_acsl_print_value` is excluded from compilation. This is to allow + * providing alternative definitions of data printing functions by users. * Memory deallocation: * E_ACSL_FREE_VALID_ADDRESS -- Clause 7.20.3.2 of C99 standard states * that NULL is a valid input to free: @@ -81,6 +85,7 @@ /************************************************************************/ #include "instrumentation_model/e_acsl_assert.h" +#include "instrumentation_model/e_acsl_assert_data.h" #include "observation_model/e_acsl_heap.h" /* }}} */ @@ -89,6 +94,7 @@ /*** Generated code API {{{ ***/ /************************************************************************/ +#include "instrumentation_model/e_acsl_assert_data_api.h" #include "instrumentation_model/e_acsl_contract.h" #include "instrumentation_model/e_acsl_temporal.h" #include "numerical_model/e_acsl_floating_point.h" diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c index a8ea00d2dcefad194a621fdada02adc85d1c0df9..27f55c75898e0a2026ee8d9ad4cea26c043314ba 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c @@ -45,6 +45,7 @@ // Instrumentation model #include "instrumentation_model/e_acsl_assert.c" +#include "instrumentation_model/e_acsl_assert_data_api.c" #include "instrumentation_model/e_acsl_contract.c" #include "instrumentation_model/e_acsl_temporal.c" diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c index f5903c27cebde17678869f611dc67b077a86ea81..10a7975406f4b8646b0dbbcb75310236187f1978 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c @@ -34,33 +34,190 @@ int eacsl_runtime_sound_verdict = 1; +void eacsl_print_values(eacsl_assert_data_t *data) { + eacsl_assert_data_value_t *value = data->values; + if (value != NULL) { + STDERR("\tWith values:\n"); + } + while (value != NULL) { + eacsl_print_value(value); + value = value->next; + } +} + #ifndef E_ACSL_EXTERNAL_ASSERT /*! \brief Default implementation of E-ACSL runtime assertions */ -void eacsl_runtime_assert(int predicate, int blocking, const char *kind, - const char *fct, const char *pred_txt, - const char *file, int line) { +void eacsl_runtime_assert(int predicate, eacsl_assert_data_t *data) { if (eacsl_runtime_sound_verdict) { if (!predicate) { + // clang-format off STDERR("%s: In function '%s'\n" "%s:%d: Error: %s failed:\n" "\tThe failing predicate is:\n" "\t%s.\n", - file, fct, file, line, kind, pred_txt); - if (blocking) { + data->file, data->fct, + data->file, data->line, data->kind, + data->pred_txt); + // clang-format on + eacsl_print_values(data); + if (data->blocking) { # ifndef E_ACSL_NO_ASSERT_FAIL /* Do fail on assertions */ # ifdef E_ACSL_FAIL_EXITCODE /* Fail by exit with a given code */ exit(E_ACSL_FAIL_EXITCODE); # else - raise_abort(file, line); /* Raise abort signal */ + raise_abort(data->file, data->line); /* Raise abort signal */ # endif # endif } } - } else +# ifdef E_ACSL_DEBUG_ASSERT + else { + // clang-format off + STDERR("%s: In function '%s'\n" + "%s:%d: %s valid:\n" + "\t%s.\n", + data->file, data->fct, + data->file, data->line, data->kind, + data->pred_txt); + // clang-format on + eacsl_print_values(data); + } +# endif + } else { + // clang-format off STDERR("%s: In function '%s'\n" "%s:%d: Warning: no sound verdict for %s (guess: %s).\n" "\tthe considered predicate is:\n" "\t%s\n", - file, fct, file, line, kind, predicate ? "ok" : "FAIL", pred_txt); + data->file, data->fct, + data->file, data->line, data->kind, predicate ? "ok" : "FAIL", + data->pred_txt); + // clang-format on + eacsl_print_values(data); + } +} +#endif + +#ifndef E_ACSL_EXTERNAL_PRINT_VALUE +void eacsl_print_int_content(const char *name, + eacsl_assert_data_int_content_t *int_content) { + switch (int_content->kind) { + case E_ACSL_IBOOL: + fprintf(stderr, "\t- %s: %s%d\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_bool); + break; + case E_ACSL_ICHAR: + fprintf(stderr, "\t- %s: %s%d\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_char); + break; + case E_ACSL_ISCHAR: + fprintf(stderr, "\t- %s: %s%hhd\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_schar); + break; + case E_ACSL_IUCHAR: + fprintf(stderr, "\t- %s: %s%hhu\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_uchar); + break; + case E_ACSL_IINT: + fprintf(stderr, "\t- %s: %s%d\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_int); + break; + case E_ACSL_IUINT: + fprintf(stderr, "\t- %s: %s%u\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_uint); + break; + case E_ACSL_ISHORT: + fprintf(stderr, "\t- %s: %s%hd\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_short); + break; + case E_ACSL_IUSHORT: + fprintf(stderr, "\t- %s: %s%hu\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_ushort); + break; + case E_ACSL_ILONG: + fprintf(stderr, "\t- %s: %s%ld\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_long); + break; + case E_ACSL_IULONG: + fprintf(stderr, "\t- %s: %s%lu\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_ulong); + break; + case E_ACSL_ILONGLONG: + fprintf(stderr, "\t- %s: %s%lld\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_llong); + break; + case E_ACSL_IULONGLONG: + fprintf(stderr, "\t- %s: %s%llu\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_ullong); + break; + case E_ACSL_IMPZ: + __gmp_fprintf(stderr, "\t- %s: %s%Zd\n", name, + int_content->is_enum ? "<enum> " : "", + int_content->value.value_mpz); + break; + } +} + +void eacsl_print_real_content(const char *name, + eacsl_assert_data_real_content_t *real_content) { + switch (real_content->kind) { + case E_ACSL_RFLOAT: + fprintf(stderr, "\t- %s: %e\n", name, real_content->value.value_float); + break; + case E_ACSL_RDOUBLE: + fprintf(stderr, "\t- %s: %le\n", name, real_content->value.value_double); + break; + case E_ACSL_RLONGDOUBLE: + fprintf(stderr, "\t- %s: %Le\n", name, real_content->value.value_ldouble); + break; + case E_ACSL_RMPQ: + __gmp_fprintf(stderr, "\t- %s: %Qd\n", name, real_content->value.value_mpq); + break; + } +} + +void eacsl_print_value(eacsl_assert_data_value_t *value) { + switch (value->type) { + case E_ACSL_INT: + eacsl_print_int_content(value->name, &value->content.int_content); + break; + case E_ACSL_REAL: + eacsl_print_real_content(value->name, &value->content.real_content); + break; + case E_ACSL_PTR: + fprintf(stderr, "\t- %s: %p\n", value->name, value->content.value_ptr); + break; + case E_ACSL_ARRAY: + fprintf(stderr, "\t- %s: <array>\n\t\t- address: %p\n", value->name, + value->content.value_array); + break; + case E_ACSL_FUN: + fprintf(stderr, "\t- %s: <function>\n", value->name); + break; + case E_ACSL_STRUCT: + fprintf(stderr, "\t- %s: <struct>\n", value->name); + break; + case E_ACSL_UNION: + fprintf(stderr, "\t- %s: <union>\n", value->name); + break; + case E_ACSL_OTHER: + fprintf(stderr, "\t- %s: <other>\n", value->name); + break; + default: + fprintf(stderr, "\t- %s: <unknown>\n", value->name); + break; + } } #endif diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h index 5a7dec8c2e9af58f59269a73abcc152cbddad4c3..124a7ccc32d14d5f4ca5db18440222c32896b241 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h @@ -29,9 +29,11 @@ #define E_ACSL_ASSERT_H #include "../internals/e_acsl_alias.h" +#include "e_acsl_assert_data.h" #define eacsl_runtime_sound_verdict export_alias(sound_verdict) #define eacsl_runtime_assert export_alias(assert) +#define eacsl_print_value export_alias(print_value) /*! E-ACSL instrumentation automatically sets this global to 0 if its verdict becomes unsound. @@ -40,25 +42,24 @@ extern int __attribute__((FC_BUILTIN)) eacsl_runtime_sound_verdict; /*! \brief Runtime assertion verifying a given predicate - * \param pred integer code of a predicate - * \param blocking integer representing if the assertion is blocking or not - * \param kind C string representing a kind of annotation (e.g., "Assertion") - * \param fct - * \param pred_txt stringified predicate - * \param file un-instrumented file of predicate placement - * \param line line of predicate placement in the un-instrumented file */ -/*@ assigns \nothing; + * \param predicate integer code of a predicate + * \param data context data for the predicate. */ +/*@ requires \valid_read(data) && \initialized(data); + @ assigns \nothing; @ behavior blocking: - @ assumes blocking != 0; - @ requires pred != 0; + @ assumes data->blocking != 0; + @ requires predicate != 0; @ behavior non_blocking: - @ assumes blocking == 0; - @ check requires pred != 0; + @ assumes data->blocking == 0; + @ check requires predicate != 0; @ complete behaviors; @ disjoint behaviors; */ -void eacsl_runtime_assert(int pred, int blocking, const char *kind, - const char *fct, const char *pred_txt, - const char *file, int line) +void eacsl_runtime_assert(int predicate, eacsl_assert_data_t *data) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid_read(value) && \initialized(value); + @ assigns \nothing; */ +void eacsl_print_value(eacsl_assert_data_value_t *value) __attribute__((FC_BUILTIN)); #endif // E_ACSL_ASSERT_H diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h new file mode 100644 index 0000000000000000000000000000000000000000..f4d7eff2c762e569764de6f275ccb0cc38a5d4ee --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h @@ -0,0 +1,205 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL data for assertions. + **************************************************************************/ + +#ifndef E_ACSL_ASSERT_DATA_H +#define E_ACSL_ASSERT_DATA_H + +#include <stdint.h> + +#include "../internals/e_acsl_alias.h" +#include "../numerical_model/e_acsl_gmp_api.h" + +#define eacsl_assert_data_type_t export_alias(assert_data_type_t) +#define eacsl_assert_data_ikind_t export_alias(assert_data_ikind_t) +#define eacsl_assert_data_rkind_t export_alias(assert_data_rkind_t) +#define eacsl_assert_data_int_value_t export_alias(assert_data_int_value_t) +#define eacsl_assert_data_real_value_t export_alias(assert_data_real_value_t) +#define eacsl_assert_data_int_content_t export_alias(assert_data_int_content_t) +#define eacsl_assert_data_real_content_t \ + export_alias(assert_data_real_content_t) +#define eacsl_assert_data_content_t export_alias(assert_data_content_t) +#define eacsl_assert_data_value_t export_alias(assert_data_value_t) +#define eacsl_assert_data_t export_alias(assert_data_t) + +/*! Type of data contributing to an assertion. */ +typedef enum eacsl_assert_data_type_t { + /*! Integer data. */ + E_ACSL_INT = 0, + + /*! Real data. */ + E_ACSL_REAL, + + /*! Pointer data. */ + E_ACSL_PTR, + /*! Array data. */ + E_ACSL_ARRAY, + /*! Function data. */ + E_ACSL_FUN, + + /*! Structure data. */ + E_ACSL_STRUCT, + /*! Union data. */ + E_ACSL_UNION, + + /*! Other type of data. */ + E_ACSL_OTHER = 1000 +} __attribute__((FC_BUILTIN)) eacsl_assert_data_type_t; + +/*! Kind of integer */ +typedef enum eacsl_assert_data_ikind_t { + E_ACSL_IBOOL, + E_ACSL_ICHAR, + E_ACSL_ISCHAR, + E_ACSL_IUCHAR, + E_ACSL_IINT, + E_ACSL_IUINT, + E_ACSL_ISHORT, + E_ACSL_IUSHORT, + E_ACSL_ILONG, + E_ACSL_IULONG, + E_ACSL_ILONGLONG, + E_ACSL_IULONGLONG, + E_ACSL_IMPZ, +} __attribute__((FC_BUILTIN)) eacsl_assert_data_ikind_t; + +/*! Kind of real */ +typedef enum eacsl_assert_data_rkind_t { + /*! Floating point data of type float. */ + E_ACSL_RFLOAT, + /*! Floating point data of type double. */ + E_ACSL_RDOUBLE, + /*! Floating point data of type long double. */ + E_ACSL_RLONGDOUBLE, + /*! Rational data of type mpq_t. */ + E_ACSL_RMPQ, +} __attribute__((FC_BUILTIN)) eacsl_assert_data_rkind_t; + +/*! Union type holding the value of an integer. */ +typedef union eacsl_assert_data_int_value_t { + _Bool value_bool; + char value_char; + signed char value_schar; + unsigned char value_uchar; + int value_int; + unsigned int value_uint; + short value_short; + unsigned short value_ushort; + long value_long; + unsigned long value_ulong; + long long value_llong; + unsigned long long value_ullong; + /* Store a pointer to `struct eacsl_mpz_struct` instead of a `mpz_t` value to + optimize the size of the union. With this optimization the size of the + union is `sizeof(unsigned long long)` whereas, without the optimization, it + is at least `sizeof(int) + sizeof(int) + sizeof(unsigned long *)`. + In return, we need to manually allocate the memory for + `struct eacsl_mpz_struct` before calling `__gmpz_init_set()`. */ + struct eacsl_mpz_struct *value_mpz; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_int_value_t; + +/*! Union type holding the value of a real. */ +typedef union eacsl_assert_data_real_value_t { + float value_float; + double value_double; + long double value_ldouble; + /* Store a pointer to `struct eacsl_mpq_struct` instead of a `mpq_t` value to + optimize the size of the union. With this optimization the size of the + union is `sizeof(unsigned long long)` whereas, without the optimization, it + is at least `2*sizeof(int) + 2*sizeof(int) + 2*sizeof(unsigned long *)`. + In return, we need to manually allocate the memory for + `struct eacsl_mpq_struct` before calling `__gmpq_init_set()`. */ + struct eacsl_mpq_struct *value_mpq; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_real_value_t; + +/*! Value of an integer. */ +typedef struct eacsl_assert_data_int_content_t { + /*! True if the integer is an enum value, false otherwise */ + int is_enum; + /*! Kind of integer. */ + eacsl_assert_data_ikind_t kind; + /*! Value of the integer. + The active member of the union is identified with the field `kind`. */ + eacsl_assert_data_int_value_t value; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_int_content_t; + +/*! Value of a real. */ +typedef struct eacsl_assert_data_real_content_t { + /*! Kind of real. */ + eacsl_assert_data_rkind_t kind; + /*! Value of the real. + The active member of the union is identified with the field `kind`. */ + eacsl_assert_data_real_value_t value; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_real_content_t; + +/*! Union type holding the value of a piece of data. */ +typedef union eacsl_assert_data_content_t { + eacsl_assert_data_int_content_t int_content; + + eacsl_assert_data_real_content_t real_content; + + uintptr_t value_ptr; + uintptr_t value_array; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_content_t; + +/*! Piece of data contributing to an assertion. + + The structure is a single linked list that will hold all data that contributed + to the assertion. */ +typedef struct eacsl_assert_data_value_t { + /*! Name of the piece of data */ + const char *name; + /*! Type of the piece of data */ + eacsl_assert_data_type_t type; + /*! Value of the piece of data. + The active member of the union is identified with the field `type`. */ + eacsl_assert_data_content_t content; + /*! Pointer to the next value in the list, or NULL if this is the last + value. + We can use a list here because the number of data in an assertion is + small enough. */ + struct eacsl_assert_data_value_t *next; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_value_t; + +/*! Data holding context information for E-ACSL assertions. */ +typedef struct eacsl_assert_data_t { + /*! integer representing if the assertion is blocking or not */ + int blocking; + /*! C string representing a kind of annotation (e.g., "Assertion") */ + const char *kind; + /*! stringified predicate */ + const char *pred_txt; + /*! un-instrumented file of predicate placement */ + const char *file; + /*! function of predicate placement in the un-instrumented file */ + const char *fct; + /*! line of predicate placement in the un-instrumented file */ + int line; + /*! values contributing to the predicate */ + eacsl_assert_data_value_t *values; +} __attribute__((FC_BUILTIN)) eacsl_assert_data_t; + +#endif // E_ACSL_ASSERT_DATA_H diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c new file mode 100644 index 0000000000000000000000000000000000000000..9be8e0f579f111122cc5a1210ad0c5b719f3a0f7 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c @@ -0,0 +1,434 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL utility functions for assertions. + **************************************************************************/ + +#include <stdlib.h> +#include <string.h> + +#include "../internals/e_acsl_debug.h" +#include "../internals/e_acsl_malloc.h" + +#include "e_acsl_assert_data_api.h" + +/** + * Test for equality between the integer values `lhs` and `rhs` + */ +int eacsl_assert_data_int_equal(eacsl_assert_data_int_content_t *lhs, + eacsl_assert_data_int_content_t *rhs) { + if (lhs->kind != rhs->kind) { + return 0; + } else if (lhs->is_enum != rhs->is_enum) { + return 0; + } else { + switch (lhs->kind) { + case E_ACSL_IBOOL: + return lhs->value.value_bool == rhs->value.value_bool; + case E_ACSL_ICHAR: + return lhs->value.value_char == rhs->value.value_char; + case E_ACSL_ISCHAR: + return lhs->value.value_schar == rhs->value.value_schar; + case E_ACSL_IUCHAR: + return lhs->value.value_uchar == rhs->value.value_uchar; + case E_ACSL_IINT: + return lhs->value.value_int == rhs->value.value_int; + case E_ACSL_IUINT: + return lhs->value.value_uint == rhs->value.value_uint; + case E_ACSL_ISHORT: + return lhs->value.value_short == rhs->value.value_short; + case E_ACSL_IUSHORT: + return lhs->value.value_ushort == rhs->value.value_ushort; + case E_ACSL_ILONG: + return lhs->value.value_long == rhs->value.value_long; + case E_ACSL_IULONG: + return lhs->value.value_ulong == rhs->value.value_ulong; + case E_ACSL_ILONGLONG: + return lhs->value.value_llong == rhs->value.value_llong; + case E_ACSL_IULONGLONG: + return lhs->value.value_ullong == rhs->value.value_ullong; + case E_ACSL_IMPZ: + return __gmpz_cmp(lhs->value.value_mpz, rhs->value.value_mpz) == 0; + } + private_abort("Unsupported integer kind: %d\n", lhs->kind); + return 1; + } +} + +/** + * Test for equality between the real values `lhs` and `rhs` + */ +int eacsl_assert_data_real_equal(eacsl_assert_data_real_content_t *lhs, + eacsl_assert_data_real_content_t *rhs) { + if (lhs->kind != rhs->kind) { + return 0; + } else { + switch (lhs->kind) { + case E_ACSL_RFLOAT: + return lhs->value.value_float == rhs->value.value_float; + case E_ACSL_RDOUBLE: + return lhs->value.value_double == rhs->value.value_double; + case E_ACSL_RLONGDOUBLE: + return lhs->value.value_ldouble == rhs->value.value_ldouble; + case E_ACSL_RMPQ: + return __gmpq_cmp(lhs->value.value_mpq, rhs->value.value_mpq) == 0; + } + private_abort("Unsupported real kind: %d\n", lhs->kind); + return 1; + } +} + +/** Test for equality between the value `lhs` and the value represented by + * `rhs_name`, `rhs_type` and `rhs_content`. + */ +int eacsl_assert_data_equal(eacsl_assert_data_value_t *lhs, + const char *rhs_name, + eacsl_assert_data_type_t rhs_type, + eacsl_assert_data_content_t *rhs_content) { + if (lhs->type != rhs_type) { + return 0; + } + if (strcmp(lhs->name, rhs_name) != 0) { + return 0; + } + switch (lhs->type) { + case E_ACSL_INT: + return eacsl_assert_data_int_equal(&lhs->content.int_content, + &rhs_content->int_content); + case E_ACSL_REAL: + return eacsl_assert_data_real_equal(&lhs->content.real_content, + &rhs_content->real_content); + case E_ACSL_PTR: + return lhs->content.value_ptr == rhs_content->value_ptr; + case E_ACSL_ARRAY: + return lhs->content.value_array == rhs_content->value_array; + case E_ACSL_FUN: + case E_ACSL_STRUCT: + case E_ACSL_UNION: + case E_ACSL_OTHER: + // No data for those cases so two values with the same names and types are + // considered equal. + return 1; + } + private_abort("Unsupported data type: %d\n", lhs->type); + return 1; +} + +void eacsl_assert_register_data(eacsl_assert_data_t *data, const char *name, + eacsl_assert_data_type_t type, + eacsl_assert_data_content_t content) { + // Check if the value has already been registered + eacsl_assert_data_value_t *value = data->values; + while (value != NULL) { + if (eacsl_assert_data_equal(value, name, type, &content)) { + // The value has already been registered, return immediately + return; + } + value = value->next; + } + + // This is a new value, we need to add it to the context + value = private_malloc(sizeof(eacsl_assert_data_value_t)); + DVASSERT(value != NULL, + "Unable to allocate %d bytes of memory for assert_register_data_t", + sizeof(eacsl_assert_data_value_t)); + value->name = name; + value->type = type; + value->content = content; + value->next = data->values; + data->values = value; +} + +void eacsl_assert_register_generic_int(eacsl_assert_data_t *data, + const char *name, int is_enum, + eacsl_assert_data_ikind_t kind, + eacsl_assert_data_int_value_t value) { + eacsl_assert_register_data( + data, name, E_ACSL_INT, + (eacsl_assert_data_content_t){ + .int_content = {.kind = kind, .value = value, .is_enum = is_enum}}); +} + +void eacsl_assert_register_bool(eacsl_assert_data_t *data, const char *name, + int is_enum, _Bool value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IBOOL, + (eacsl_assert_data_int_value_t){.value_bool = value}); +} + +void eacsl_assert_register_char(eacsl_assert_data_t *data, const char *name, + int is_enum, char value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_ICHAR, + (eacsl_assert_data_int_value_t){.value_char = value}); +} + +void eacsl_assert_register_schar(eacsl_assert_data_t *data, const char *name, + int is_enum, signed char value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_ISCHAR, + (eacsl_assert_data_int_value_t){.value_schar = value}); +} + +void eacsl_assert_register_uchar(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned char value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IUCHAR, + (eacsl_assert_data_int_value_t){.value_uchar = value}); +} + +void eacsl_assert_register_int(eacsl_assert_data_t *data, const char *name, + int is_enum, int value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IINT, + (eacsl_assert_data_int_value_t){.value_int = value}); +} + +void eacsl_assert_register_uint(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned int value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IUINT, + (eacsl_assert_data_int_value_t){.value_uint = value}); +} + +void eacsl_assert_register_short(eacsl_assert_data_t *data, const char *name, + int is_enum, short value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_ISHORT, + (eacsl_assert_data_int_value_t){.value_short = value}); +} + +void eacsl_assert_register_ushort(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned short value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IUSHORT, + (eacsl_assert_data_int_value_t){.value_ushort = value}); +} + +void eacsl_assert_register_long(eacsl_assert_data_t *data, const char *name, + int is_enum, long value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_ILONG, + (eacsl_assert_data_int_value_t){.value_long = value}); +} + +void eacsl_assert_register_ulong(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned long value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IULONG, + (eacsl_assert_data_int_value_t){.value_ulong = value}); +} + +void eacsl_assert_register_longlong(eacsl_assert_data_t *data, const char *name, + int is_enum, long long value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_ILONGLONG, + (eacsl_assert_data_int_value_t){.value_llong = value}); +} + +void eacsl_assert_register_ulonglong(eacsl_assert_data_t *data, + const char *name, int is_enum, + unsigned long long value) { + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IULONGLONG, + (eacsl_assert_data_int_value_t){.value_ullong = value}); +} + +void eacsl_assert_register_mpz(eacsl_assert_data_t *data, const char *name, + int is_enum, const eacsl_mpz_t value) { + struct eacsl_mpz_struct *new_value = + private_malloc(sizeof(struct eacsl_mpz_struct)); + __gmpz_init_set(new_value, value); + eacsl_assert_register_generic_int( + data, name, is_enum, E_ACSL_IMPZ, + (eacsl_assert_data_int_value_t){.value_mpz = new_value}); +} + +void eacsl_assert_register_generic_real(eacsl_assert_data_t *data, + const char *name, + eacsl_assert_data_rkind_t kind, + eacsl_assert_data_real_value_t value) { + eacsl_assert_register_data( + data, name, E_ACSL_REAL, + (eacsl_assert_data_content_t){ + .real_content = {.kind = kind, .value = value}}); +} + +void eacsl_assert_register_float(eacsl_assert_data_t *data, const char *name, + float value) { + eacsl_assert_register_generic_real( + data, name, E_ACSL_RFLOAT, + (eacsl_assert_data_real_value_t){.value_float = value}); +} + +void eacsl_assert_register_double(eacsl_assert_data_t *data, const char *name, + double value) { + eacsl_assert_register_generic_real( + data, name, E_ACSL_RDOUBLE, + (eacsl_assert_data_real_value_t){.value_double = value}); +} + +void eacsl_assert_register_longdouble(eacsl_assert_data_t *data, + const char *name, long double value) { + eacsl_assert_register_generic_real( + data, name, E_ACSL_RLONGDOUBLE, + (eacsl_assert_data_real_value_t){.value_ldouble = value}); +} + +void eacsl_assert_register_mpq(eacsl_assert_data_t *data, const char *name, + const eacsl_mpq_t value) { + struct eacsl_mpq_struct *new_value = + private_malloc(sizeof(struct eacsl_mpq_struct)); + __gmpq_init(new_value); + __gmpq_set(new_value, value); + eacsl_assert_register_generic_real( + data, name, E_ACSL_RMPQ, + (eacsl_assert_data_real_value_t){.value_mpq = new_value}); +} + +void eacsl_assert_register_ptr(eacsl_assert_data_t *data, const char *name, + void *ptr) { + eacsl_assert_register_data(data, name, E_ACSL_PTR, + (eacsl_assert_data_content_t){.value_ptr = ptr}); +} + +void eacsl_assert_register_array(eacsl_assert_data_t *data, const char *name, + void *array) { + eacsl_assert_register_data( + data, name, E_ACSL_ARRAY, + (eacsl_assert_data_content_t){.value_array = array}); +} + +void eacsl_assert_register_fun(eacsl_assert_data_t *data, const char *name) { + eacsl_assert_register_data(data, name, E_ACSL_FUN, + (eacsl_assert_data_content_t){}); +} + +void eacsl_assert_register_struct(eacsl_assert_data_t *data, const char *name) { + eacsl_assert_register_data(data, name, E_ACSL_STRUCT, + (eacsl_assert_data_content_t){}); +} + +void eacsl_assert_register_union(eacsl_assert_data_t *data, const char *name) { + eacsl_assert_register_data(data, name, E_ACSL_UNION, + (eacsl_assert_data_content_t){}); +} + +void eacsl_assert_register_other(eacsl_assert_data_t *data, const char *name) { + eacsl_assert_register_data(data, name, E_ACSL_OTHER, + (eacsl_assert_data_content_t){}); +} + +void eacsl_assert_free_value(eacsl_assert_data_value_t *value) { + if (value != NULL) { + switch (value->type) { + case E_ACSL_INT: + if (value->content.int_content.kind == E_ACSL_IMPZ) { + __gmpz_clear(value->content.int_content.value.value_mpz); + private_free(value->content.int_content.value.value_mpz); + } + break; + case E_ACSL_REAL: + if (value->content.real_content.kind == E_ACSL_RMPQ) { + __gmpq_clear(value->content.real_content.value.value_mpq); + private_free(value->content.real_content.value.value_mpq); + } + break; + case E_ACSL_PTR: + case E_ACSL_ARRAY: + case E_ACSL_FUN: + case E_ACSL_STRUCT: + case E_ACSL_UNION: + case E_ACSL_OTHER: + // No allocated memory in value content + break; + } + eacsl_assert_free_value(value->next); + private_free(value); + } +} + +void eacsl_assert_copy_value(eacsl_assert_data_t *dest, + eacsl_assert_data_value_t *value) { + if (value != NULL) { + switch (value->type) { + case E_ACSL_INT: { + eacsl_assert_data_int_content_t content = value->content.int_content; + if (content.kind == E_ACSL_IMPZ) { + eacsl_assert_register_mpz(dest, value->name, content.is_enum, + content.value.value_mpz); + } else { + eacsl_assert_register_generic_int(dest, value->name, content.is_enum, + content.kind, content.value); + } + break; + } + case E_ACSL_REAL: { + eacsl_assert_data_real_content_t content = value->content.real_content; + if (content.kind == E_ACSL_RMPQ) { + eacsl_assert_register_mpq(dest, value->name, content.value.value_mpq); + } else { + eacsl_assert_register_generic_real(dest, value->name, content.kind, + content.value); + } + break; + } + case E_ACSL_PTR: { + eacsl_assert_register_ptr(dest, value->name, value->content.value_ptr); + break; + } + case E_ACSL_ARRAY: { + eacsl_assert_register_array(dest, value->name, + value->content.value_array); + break; + } + case E_ACSL_FUN: { + eacsl_assert_register_fun(dest, value->name); + break; + } + case E_ACSL_STRUCT: { + eacsl_assert_register_struct(dest, value->name); + break; + } + case E_ACSL_UNION: { + eacsl_assert_register_union(dest, value->name); + break; + } + case E_ACSL_OTHER: { + eacsl_assert_register_other(dest, value->name); + break; + } + } + } +} + +void eacsl_assert_copy_values(eacsl_assert_data_t *dest, + eacsl_assert_data_t *src) { + eacsl_assert_copy_value(dest, src->values); +} + +void eacsl_assert_clean(eacsl_assert_data_t *data) { + eacsl_assert_free_value(data->values); + data->values = NULL; // Protect against successive calls to clean. +} diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h new file mode 100644 index 0000000000000000000000000000000000000000..9519dbe7d26008af5b8e896d410b85a3e225ab28 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h @@ -0,0 +1,294 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL utility functions for assertions. + **************************************************************************/ + +#ifndef E_ACSL_ASSERT_DATA_API_H +#define E_ACSL_ASSERT_DATA_API_H + +#include "../internals/e_acsl_alias.h" +#include "../numerical_model/e_acsl_gmp_api.h" +#include "e_acsl_assert_data.h" + +#ifdef __FC_FEATURES_H +# include <__fc_alloc_axiomatic.h> +#else +/*@ ghost extern int __fc_heap_status; */ +#endif + +#define eacsl_assert_register_bool export_alias(assert_register_bool) +#define eacsl_assert_register_char export_alias(assert_register_char) +#define eacsl_assert_register_schar export_alias(assert_register_schar) +#define eacsl_assert_register_uchar export_alias(assert_register_uchar) +#define eacsl_assert_register_int export_alias(assert_register_int) +#define eacsl_assert_register_uint export_alias(assert_register_uint) +#define eacsl_assert_register_short export_alias(assert_register_short) +#define eacsl_assert_register_ushort export_alias(assert_register_ushort) +#define eacsl_assert_register_long export_alias(assert_register_long) +#define eacsl_assert_register_ulong export_alias(assert_register_ulong) +#define eacsl_assert_register_longlong export_alias(assert_register_longlong) +#define eacsl_assert_register_ulonglong export_alias(assert_register_ulonglong) +#define eacsl_assert_register_mpz export_alias(assert_register_mpz) +#define eacsl_assert_register_float export_alias(assert_register_float) +#define eacsl_assert_register_double export_alias(assert_register_double) +#define eacsl_assert_register_longdouble \ + export_alias(assert_register_longdouble) +#define eacsl_assert_register_mpq export_alias(assert_register_mpq) +#define eacsl_assert_register_ptr export_alias(assert_register_ptr) +#define eacsl_assert_register_array export_alias(assert_register_array) +#define eacsl_assert_register_fun export_alias(assert_register_fun) +#define eacsl_assert_register_struct export_alias(assert_register_struct) +#define eacsl_assert_register_union export_alias(assert_register_union) +#define eacsl_assert_register_other export_alias(assert_register_other) +#define eacsl_assert_copy_values export_alias(assert_copy_values) +#define eacsl_assert_clean export_alias(assert_clean) + +/************************************************************************/ +/*** Register integers {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_bool(eacsl_assert_data_t *data, const char *name, + int is_enum, _Bool value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_char(eacsl_assert_data_t *data, const char *name, + int is_enum, char value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_schar(eacsl_assert_data_t *data, const char *name, + int is_enum, signed char value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_uchar(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned char value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; */ +/* @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_int(eacsl_assert_data_t *data, const char *name, + int is_enum, int value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_uint(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned int value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_short(eacsl_assert_data_t *data, const char *name, + int is_enum, short value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_ushort(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned short value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_long(eacsl_assert_data_t *data, const char *name, + int is_enum, long value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_ulong(eacsl_assert_data_t *data, const char *name, + int is_enum, unsigned long value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_longlong(eacsl_assert_data_t *data, const char *name, + int is_enum, long long value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_ulonglong(eacsl_assert_data_t *data, + const char *name, int is_enum, + unsigned long long value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_mpz(eacsl_assert_data_t *data, const char *name, + int is_enum, const eacsl_mpz_t value) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** Register reals {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_float(eacsl_assert_data_t *data, const char *name, + float value) __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_double(eacsl_assert_data_t *data, const char *name, + double value) __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_longdouble(eacsl_assert_data_t *data, + const char *name, long double value) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, value; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_mpq(eacsl_assert_data_t *data, const char *name, + const eacsl_mpq_t value) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** Register pointers {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, ptr; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_ptr(eacsl_assert_data_t *data, const char *name, + void *ptr) __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status, array; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_array(eacsl_assert_data_t *data, const char *name, + void *array) __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** Register composite {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_fun(eacsl_assert_data_t *data, const char *name) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_struct(eacsl_assert_data_t *data, const char *name) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_union(eacsl_assert_data_t *data, const char *name) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** Register other types {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(data); + @ requires data->values == \null || \valid(data->values); + @ assigns data->values \from indirect:__fc_heap_status; + @ // admit ensures \valid(data->values); */ +void eacsl_assert_register_other(eacsl_assert_data_t *data, const char *name) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** Miscellaneous functions {{{ ***/ +/************************************************************************/ + +/*@ requires \valid(dest) && \valid(src); + @ requires dest->values == \null || \valid(dest->values); + @ requires src->values == \null || \valid(src->values); + @ assigns dest->values \from indirect:__fc_heap_status, indirect:src->values; + @ // admit ensures dest->values == \null || \valid(dest->values); */ +void eacsl_assert_copy_values(eacsl_assert_data_t *dest, + eacsl_assert_data_t *src) + __attribute__((FC_BUILTIN)); + +/*@ requires \valid(data); + @ assigns \nothing; */ +void eacsl_assert_clean(eacsl_assert_data_t *data) __attribute__((FC_BUILTIN)); + +/* }}} */ + +#endif // E_ACSL_ASSERT_DATA_API_H diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h index d39f910421780a69e719773ae8c89af29530d051..93396d88fe674b77adbde777bd3ee3709bf0ddb7 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h @@ -52,7 +52,7 @@ /*! \brief Structure to hold pieces of information about function and statement * contracts at runtime. */ -typedef struct contract_t __attribute__((__FC_BUILTIN__)) contract_t; +typedef struct contract_t __attribute__((FC_BUILTIN)) contract_t; /*! \brief Allocate and initialize a structure to hold pieces of information * about `size` behaviors. diff --git a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h index eede828f6a9481e960d1612f2d0b9e5ac0b4f96a..26522aec365c51ddf62464d4e5b915d3b9875cf8 100644 --- a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h +++ b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h @@ -35,6 +35,7 @@ #include "../internals/e_acsl_alias.h" #include <stddef.h> +#include <stdio.h> #define eacsl_mpz_struct export_alias(mpz_struct) #define eacsl_mpz_t export_alias(mpz_t) @@ -49,7 +50,7 @@ struct eacsl_mpz_struct { }; typedef struct eacsl_mpz_struct eacsl_mpz_struct; -typedef eacsl_mpz_struct(__attribute__((__FC_BUILTIN__)) eacsl_mpz_t)[1]; +typedef eacsl_mpz_struct(__attribute__((FC_BUILTIN)) eacsl_mpz_t)[1]; struct eacsl_mpq_struct { eacsl_mpz_struct _mp_num; @@ -57,7 +58,7 @@ struct eacsl_mpq_struct { }; typedef struct eacsl_mpq_struct eacsl_mpq_struct; -typedef eacsl_mpq_struct(__attribute__((__FC_BUILTIN__)) eacsl_mpq_t)[1]; +typedef eacsl_mpq_struct(__attribute__((FC_BUILTIN)) eacsl_mpq_t)[1]; /** * Counts of bits of a multi-precision number are represented in the C type @@ -365,4 +366,11 @@ extern double __gmpq_get_d(const eacsl_mpq_t q) __attribute__((FC_BUILTIN)); extern unsigned long __gmpz_get_ui(const eacsl_mpz_t z) __attribute__((FC_BUILTIN)); +/************************/ +/* Output functions */ +/************************/ + +extern int __gmp_fprintf(FILE *fp, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + #endif diff --git a/src/plugins/e-acsl/src/code_generator/assert.ml b/src/plugins/e-acsl/src/code_generator/assert.ml index 636da0de6b8037b04f407b588f42a3d32b8d1164..cc6c4b5f77741e62595835f3bac32c6d9f4b098f 100644 --- a/src/plugins/e-acsl/src/code_generator/assert.ml +++ b/src/plugins/e-acsl/src/code_generator/assert.ml @@ -31,7 +31,10 @@ open Cil_types type data = { (** Indicates if some data have been registered in the context or not. *) data_registered: bool; - (* FIXME: fields added to hold information about the C variable in MR !3288 *) + (** [varinfo] representing the C variable for the assertion data. *) + data_vi: varinfo; + (** [exp] representing a pointer to the C variable for the assertion data. *) + data_ptr: exp; } (** External type representing the assertion context. Either [Some data] if we @@ -40,29 +43,125 @@ type t = data option let no_data = None +(** C type for the [assert_data_t] structure. *) +let assert_data_ctyp_lazy = + lazy (Globals.Types.find_type + Logic_typing.Typedef (Functions.RTL.mk_api_name "assert_data_t")) + let empty ~loc kf env = - (* FIXME: C variable created in MR !3288 *) - ignore (loc, kf); - let data = { data_registered = false } in + let assert_data_cty = Lazy.force assert_data_ctyp_lazy in + let data_vi, _, env = + Env.new_var + ~loc + ~name:"assert_data" + env + kf + None + assert_data_cty + (fun vi _ -> + [ Smart_stmt.struct_local_init + ~loc + vi + [ "values", Smart_exp.null ~loc ] ]) + in + let data = + { data_registered = false; + data_vi; + data_ptr = Cil.mkAddrOfVi data_vi } + in Some data , env let with_data_from ~loc kf env from = match from with - | Some _from -> + | Some from -> let adata, env = empty ~loc kf env in - (* FIXME: values copied from [from] to [adata] in MR !3288 *) - adata, env + let adata = Option.get adata in + let env = + if from.data_registered then + let stmt = + Smart_stmt.rtl_call + ~loc + "assert_copy_values" + [ adata.data_ptr; from.data_ptr ] + in + Env.add_stmt env kf stmt + else env + in + Some { adata with data_registered = from.data_registered }, env | None -> None, env let merge_right ~loc kf env adata1 adata2 = match adata1, adata2 with - | Some _adata1, Some adata2 -> - (* FIXME: values copied from [adata1] to [adata2] in MR !3288 *) - ignore (loc, kf); + | Some adata1, Some adata2 when adata1.data_registered -> + let stmt = + Smart_stmt.rtl_call + ~loc + "assert_copy_values" + [ adata2.data_ptr; adata1.data_ptr ] + in + let adata2 = + { adata2 with + data_registered = true } + in + let env = Env.add_stmt env kf stmt in Some adata2, env - | None, Some adata -> Some adata, env + | Some _, Some adata | None, Some adata -> Some adata, env | Some _, None | None, None -> None, env +let clean ~loc kf env adata = + match adata with + | Some { data_registered; data_ptr } when data_registered-> + let clean_stmt = Smart_stmt.rtl_call ~loc "assert_clean" [ data_ptr ] in + Env.add_stmt env kf clean_stmt + | Some _ | None -> + env + +let ikind_to_string = function + | IBool -> "bool" + | IChar -> "char" + | ISChar -> "schar" + | IUChar -> "uchar" + | IInt -> "int" + | IUInt -> "uint" + | IShort -> "short" + | IUShort -> "ushort" + | ILong -> "long" + | IULong -> "ulong" + | ILongLong -> "longlong" + | IULongLong -> "ulonglong" + +let do_register_data ~loc kf env { data_ptr } name e = + let ty = Cil.typeOf e in + let fct, args = + if Gmp_types.Z.is_t ty then + "mpz", [ Cil.zero ~loc; e ] + else if Gmp_types.Q.is_t ty then + "mpq", [ e ] + else + match Cil.unrollType ty with + | TInt (ikind, _) -> ikind_to_string ikind, [ Cil.zero ~loc; e ] + | TFloat (FFloat, _) -> "float", [ e ] + | TFloat (FDouble, _) -> "double", [ e ] + | TFloat (FLongDouble, _) -> "longdouble", [ e ] + | TPtr _ -> "ptr", [ e ] + | TArray _ -> "array", [ e ] + | TFun _ -> "fun", [] + | TComp ({ cstruct = true }, _, _) -> "struct", [] + | TComp ({ cstruct = false }, _, _) -> "union", [] + | TEnum ({ ekind }, _) -> ikind_to_string ekind, [ Cil.one ~loc; e ] + | TVoid _ + | TBuiltin_va_list _ -> "other", [] + | TNamed _ -> + Options.fatal + "named types in '%a' should have been unrolled" + Printer.pp_typ ty + in + let fct = "assert_register_" ^ fct in + let name = Cil.mkString ~loc name in + let args = data_ptr :: name :: args in + let stmt = Smart_stmt.rtl_call ~loc fct args in + Env.add_stmt env kf stmt + let register ~loc kf env ?(force=false) name e adata = if Options.Assert_print_data.get () then match adata, e.enode with @@ -75,11 +174,9 @@ let register ~loc kf env ?(force=false) name e adata = The registration can be forced for expressions like [sizeof(int)] for instance that are [Const] values but not directly known. *) Some adata, env - | Some _adata, _ -> - let adata = { data_registered = true } in - (* FIXME: value registered to [adata] in MR !3288 *) - ignore (loc, kf, env, name); - Some adata, env + | Some adata, _ -> + let adata = { adata with data_registered = true } in + Some adata, do_register_data ~loc kf env adata name e | None, _ -> None, env else adata, env @@ -89,8 +186,13 @@ let register_term ~loc kf env ?force t e adata = register ~loc kf env name ?force e adata let register_pred ~loc kf env ?force p e adata = - let name = Format.asprintf "@[%a@]" Printer.pp_predicate p in - register ~loc kf env name ?force e adata + if Env.annotation_kind env == Smart_stmt.RTE then + (* When translating RTE, we do not want to print the result of the predicate + because they should be the only predicate in an assertion clause. *) + adata, env + else + let name = Format.asprintf "@[%a@]" Printer.pp_predicate p in + register ~loc kf env name ?force e adata let kind_to_string loc k = Cil.mkString @@ -103,7 +205,17 @@ let kind_to_string loc k = | Smart_stmt.Variant -> "Variant" | Smart_stmt.RTE -> "RTE") -let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e = +let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env predicate_e = + let env = Env.push env in + let data_registered, data_ptr, data_vi, env = + match adata with + | Some { data_registered; data_ptr; data_vi } -> + data_registered, data_ptr, data_vi, env + | None -> + let adata, env = empty ~loc kf env in + let adata = Option.get adata in + false, adata.data_ptr, adata.data_vi, env + in let blocking = match pred_kind with | Assert -> Cil.one ~loc @@ -111,27 +223,41 @@ let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e = | Admit -> Options.fatal "No runtime check should be generated for 'admit' clauses" in - let file = (fst loc).Filepath.pos_path in - let line = (fst loc).Filepath.pos_lnum in - (* FIXME: [adata] support in MR !3288 *) - ignore adata; - let stmt = - Smart_stmt.rtl_call ~loc - "assert" - [ e; - blocking; - kind_to_string loc kind; - Cil.mkString ~loc (Functions.RTL.get_original_name kf); - Cil.mkString ~loc msg; - Cil.mkString ~loc (Filepath.Normalized.to_pretty_string file); - Cil.integer loc line ] + let kind = kind_to_string loc kind in + let pred_txt = Cil.mkString ~loc msg in + let start_pos = fst loc in + let file = + Cil.mkString + ~loc + (Filepath.Normalized.to_pretty_string start_pos.Filepath.pos_path) in - stmt, env + let fct = Cil.mkString ~loc (Functions.RTL.get_original_name kf) in + let line = Cil.integer ~loc start_pos.Filepath.pos_lnum in + let stmts = + [ Smart_stmt.rtl_call ~loc "assert" [ predicate_e; data_ptr ]; + Smart_stmt.assigns_field ~loc data_vi "line" line; + Smart_stmt.assigns_field ~loc data_vi "fct" fct; + Smart_stmt.assigns_field ~loc data_vi "file" file; + Smart_stmt.assigns_field ~loc data_vi "pred_txt" pred_txt; + Smart_stmt.assigns_field ~loc data_vi "kind" kind; + Smart_stmt.assigns_field ~loc data_vi "blocking" blocking ] + in + let stmts= + if data_registered then + Smart_stmt.rtl_call ~loc "assert_clean" [ data_ptr ] :: stmts + else + stmts + in + let block, env = + Env.pop_and_get + env + (Smart_stmt.block_from_stmts (List.rev stmts)) + ~global_clear:false + Env.Middle + in + Smart_stmt.block_stmt block, env let runtime_check ~adata ~pred_kind kind kf env e p = let loc = p.pred_loc in - let msg = - Kernel.Unicode.without_unicode - (Format.asprintf "%a@?" Printer.pp_predicate) p - in + let msg = Format.asprintf "%a@?" Printer.pp_predicate p in runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e diff --git a/src/plugins/e-acsl/src/code_generator/assert.mli b/src/plugins/e-acsl/src/code_generator/assert.mli index b159b6110e63518d28c8bec14567ff77aec15b9d..be06f33382bda1d909da1ae64b63d4a0ab7ff44c 100644 --- a/src/plugins/e-acsl/src/code_generator/assert.mli +++ b/src/plugins/e-acsl/src/code_generator/assert.mli @@ -50,6 +50,12 @@ val merge_right: loc:location -> kernel_function -> Env.t -> t -> t -> t * Env.t (** [merge_right ~loc kf env adata1 adata2] merges the assertion data of [adata1] into [adata2] if [adata2] is not a "no data" assertion context. *) +val clean: loc:location -> kernel_function -> Env.t -> t -> Env.t +(** [clean ~loc kf env adata] generates a call to the C cleanup function for the + assertion context. This function *must* be used if the assertion context is + not given to [runtime_check] or [runtime_check_with_msg], otherwise the + memory allocated in the C structure will not be freed. *) + val register: loc:location -> kernel_function -> diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index 5964cedbcf0f2e4f2bda5df6a81fad34446385c4..f4686759f3d9cdde894266b34ed634e2080a6f93 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -790,18 +790,18 @@ let inject_global_handler file main = file.globals <- file.globals @ globals_func (** Add a call to [__e_acsl_memory_init] and [__e_acsl_memory_clean] if the - memory tracking analysis is running. + memory tracking analysis is running or if the option [assert-print-data] is + used. [__e_acsl_memory_init] initializes memory storage and potentially records program arguments. Parameters to [__e_acsl_memory_init] are addresses of program arguments or NULLs if [main] is declared without arguments. [__e_acsl_memory_clean] clean the memory allocated by [__e_acsl_memory_init]. *) let inject_mtracking_handler main = - (* Only inject memory init and memory clean if the memory model analysis is - running *) - if Memory_tracking.use_monitoring () then begin + if Memory_tracking.use_monitoring () || + Options.Assert_print_data.get () then begin let loc = Location.unknown in - let nulls = [ Cil.zero loc ; Cil.zero loc ] in + let nulls = [ Smart_exp.null ~loc ; Smart_exp.null ~loc ] in let handle_main main = let fundec = try Kernel_function.get_definition main diff --git a/src/plugins/e-acsl/src/code_generator/quantif.ml b/src/plugins/e-acsl/src/code_generator/quantif.ml index 7d1c2c06e67858ea75df5d127882991d8520ef30..be2f7f342069e7b048c43038f8c3f3b7a77dbed1 100644 --- a/src/plugins/e-acsl/src/code_generator/quantif.ml +++ b/src/plugins/e-acsl/src/code_generator/quantif.ml @@ -82,7 +82,7 @@ let convert kf env loc ~is_forall quantif = let z = zero ~loc in let o = one ~loc in if is_forall then o, z, fun x -> x - else z, o, fun e -> new_exp ~loc:e.eloc (UnOp(LNot, e, intType)) + else z, o, fun e -> Smart_exp.lnot ~loc:e.eloc e in (* transform [bound_vars] into [lscope_var list], and update logic scope in the process *) diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.ml b/src/plugins/e-acsl/src/code_generator/smart_exp.ml index c9fd5ff96c0dcf13d24b8c3727b3a495efebad9d..3f23688e85f474bf3b2a52dae972402e9f716e86 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_exp.ml +++ b/src/plugins/e-acsl/src/code_generator/smart_exp.ml @@ -44,6 +44,33 @@ let ptr_sizeof ~loc typ = | TPtr (t', _) -> Cil.new_exp ~loc (SizeOf t') | _ -> assert false +let lnot ~loc e = + let ty = Cil.typeOf e in + if not (Cil.isScalarType ty) then + Options.fatal + ~current:true + "Trying to create a logical not on an expression that is not scalar: %a" + Printer.pp_exp e; + match Cil.isInteger e with + | None -> begin + (* The expression is not an integer constant. Simplify the case where a + logical not is already present, but otherwise return a new expression + with the [LNot] operator. *) + match e.enode with + | UnOp (LNot, e, _) -> e + | _ -> Cil.new_exp ~loc (UnOp (LNot, e, Cil.intType)) + end + | Some i when Integer.equal i Integer.zero -> + (* The expression is an integer equal to zero, directly return one. *) + Cil.one ~loc + | _ -> + (* The expression is an integer that is not equal to zero, directly return + zero. *) + Cil.zero ~loc + +let null ~loc = + Cil.mkCast (TPtr (TVoid [], [])) (Cil.zero ~loc) + (* Local Variables: compile-command: "make -C ../../../../.." diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.mli b/src/plugins/e-acsl/src/code_generator/smart_exp.mli index 45ec7b3809254c7ad3326c39a55c6d813ee40405..b010fabe6694271508b5d8e2b165577630543c4f 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_exp.mli +++ b/src/plugins/e-acsl/src/code_generator/smart_exp.mli @@ -40,6 +40,12 @@ val ptr_sizeof: loc:location -> typ -> exp (** [ptr_sizeof ~loc ptr_typ] takes the pointer typ [ptr_typ] that points to a [typ] typ and returns [sizeof(typ)]. *) +val lnot: loc:location -> exp -> exp +(** [lnot ~loc e] creates a logical not on the given expression [e]. *) + +val null: loc:location -> exp +(** [null ~loc] creates an expression to represent the NULL pointer. *) + (* Local Variables: compile-command: "make -C ../../../../.." diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml index 03c60a57aaa876b23ea79bf3357ee5af75ee8e17..12a6240601840832e9f75b355ef24da508da159b 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml @@ -34,11 +34,61 @@ let call_instr ~loc ?result e args = instr (Call(result, e, args, loc)) let assigns ~loc ~result e = instr (Set(result, e, loc)) +let assigns_field ~loc vi name value = + let ty = vi.vtype in + let compinfo = + match Cil.unrollType ty with + | TComp (compinfo, _, _) -> compinfo + | _ -> + Options.fatal + "type of %a (%a) is not a structure" + Printer.pp_varinfo vi + Printer.pp_typ ty + in + let field = + try + Cil.getCompField compinfo name + with Not_found -> + Options.fatal + "Unable to find field '%s' in structure '%a'" + name + Printer.pp_typ ty + in + let result = Var vi, (Field (field, NoOffset)) in + assigns ~loc ~result value + let if_stmt ~loc ~cond ?(else_blk=Cil.mkBlock []) then_blk = stmt (If (cond, then_blk, else_blk, loc)) let break ~loc = stmt (Break loc) +let struct_local_init ~loc vi fields = + vi.vdefined <- true; + let ty = vi.vtype in + let compinfo = + match Cil.unrollType ty with + | TComp (compinfo, _, _) -> compinfo + | _ -> + Options.fatal + "type of %a (%a) is not a structure" + Printer.pp_varinfo vi + Printer.pp_typ ty + in + let fields = + List.map + (fun (name, e) -> + try + let field = Cil.getCompField compinfo name in + Field (field, NoOffset), SingleInit e + with Not_found -> + Options.fatal + "Unable to find field '%s' in structure '%a'" + name + Printer.pp_typ ty) + fields + in + instr (Local_init (vi, AssignInit (CompoundInit (ty, fields)), loc)) + let block stmt b = match b.bstmts with | [] -> (match stmt.skind with diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli index ddf4f39ee602a0ce89d14af0ba2eded06f5d094e..c9aa2faad52df5d9fcbd2f8b5be5a236b57daf65 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli @@ -40,18 +40,28 @@ val block_from_stmts: stmt list -> stmt (** Create a block statement from a statement list. *) val assigns: loc:location -> result:lval -> exp -> stmt -(** [assigns ~loc ~result value] create a statement to assign the [value] +(** [assigns ~loc ~result value] creates a statement to assign the [value] expression to the [result] lval. *) +val assigns_field: loc:location -> varinfo -> string -> exp -> stmt +(** [assigns_field ~loc vi field value] creates a statement to assign the + [value] expression to the [field] of the structure in the variable [vi]. *) + val if_stmt: loc:location -> cond:exp -> ?else_blk:block -> block -> stmt -(** [if ~loc ~cond ~then_blk ~else_blk] create an if statement with [cond] +(** [if ~loc ~cond ~then_blk ~else_blk] creates an if statement with [cond] as condition and [then_blk] and [else_blk] as respectively "then" block and "else" block. *) val break: loc:location -> stmt (** Create a break statement *) +val struct_local_init: loc:location -> varinfo -> (string * exp) list -> stmt +(** [struct_local_init ~loc vi fields] creates a local initialization for the + structure variable [vi]. [fields] is a list of couple [(name, e)] where + [name] is the name of a field in the structure and [e] is the expression to + initialize that field. *) + (* ********************************************************************** *) (* E-ACSL specific code: build calls to its RTL API *) (* ********************************************************************** *) diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index b0c3d6a1339d342555305618a54b60683025d3f1..d11f6481ab8bec7bd4cb0ccab07050fbdff2d617 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -373,7 +373,7 @@ and context_insensitive_term_to_exp ~adata kf env t = else begin assert (Cil.isIntegralType ty); let e, adata, env = term_to_exp ~adata kf env t in - let e = Cil.new_exp ~loc (UnOp(LNot, e, Cil.intType)) in + let e = Smart_exp.lnot ~loc e in e, adata, env, Typed_number.C_number, "" end | TBinOp(PlusA | MinusA | Mult as bop, t1, t2) -> @@ -402,13 +402,14 @@ and context_insensitive_term_to_exp ~adata kf env t = | TBinOp(Div | Mod as bop, t1, t2) -> let ty = Typing.get_typ ~lenv:(Env.Local_vars.get env) t in let e1, adata, env = term_to_exp ~adata kf env t1 in - (* Creating a second assertion context that will hold the data contributing - to the guard of the denominator. The context will be merged to [adata] - afterward so that the calling assertion context holds all data. *) - let adata2, env = Assert.empty ~loc kf env in - let e2, adata2, env = term_to_exp ~adata:adata2 kf env t2 in - let adata, env = Assert.merge_right ~loc kf env adata2 adata in + let t2_to_exp adata env = term_to_exp ~adata kf env t2 in if Gmp_types.Z.is_t ty then + (* Creating a second assertion context that will hold the data contributing + to the guard of the denominator. The context will be merged to [adata] + afterward so that the calling assertion context holds all data. *) + let adata2, env = Assert.empty ~loc kf env in + let e2, adata2, env = t2_to_exp adata2 env in + let adata, env = Assert.merge_right ~loc kf env adata2 adata in (* TODO: preventing division by zero should not be required anymore. RTE should do this automatically. *) let ctx = Typing.get_number_ty ~lenv:(Env.Local_vars.get env) t in @@ -446,11 +447,13 @@ and context_insensitive_term_to_exp ~adata kf env t = let _, e, env = Env.new_var_and_mpz_init ~loc ~name env kf t mk_stmts in e, adata, env, Typed_number.C_number, "" else if Gmp_types.Q.is_t ty then + let e2, adata, env = t2_to_exp adata env in let e, env = Rational.binop ~loc bop e1 e2 env kf (Some t) in e, adata, env, Typed_number.C_number, "" else begin assert (Logic_typing.is_integral_type t.term_type); (* no guard required since RTEs are generated separately *) + let e2, adata, env = t2_to_exp adata env in let e = Cil.new_exp ~loc (BinOp(bop, e1, e2, ty)) in e, adata, env, Typed_number.C_number, "" end @@ -464,17 +467,19 @@ and context_insensitive_term_to_exp ~adata kf env t = | TBinOp((Shiftlt | Shiftrt) as bop, t1, t2) -> (* left/right shift *) let ty = Typing.get_typ ~lenv:(Env.Local_vars.get env) t in - (* Creating secondary assertion contexts [adata1] and [adata2] to hold the - data contributing to the guards of [t1] and [t2]. - Both secondary contexts will be merged to [adata] afterward so that the - calling assertion context holds all data. *) - let adata1, env = Assert.empty ~loc kf env in - let adata2, env = Assert.empty ~loc kf env in - let e1, adata1, env = term_to_exp ~adata:adata1 kf env t1 in - let e2, adata2, env = term_to_exp ~adata:adata2 kf env t2 in - let adata, env = Assert.merge_right ~loc kf env adata1 adata in - let adata, env = Assert.merge_right ~loc kf env adata2 adata in + let t1_to_exp adata env = term_to_exp ~adata kf env t1 in + let t2_to_exp adata env = term_to_exp ~adata kf env t2 in if Gmp_types.Z.is_t ty then + (* Creating secondary assertion contexts [adata1] and [adata2] to hold the + data contributing to the guards of [t1] and [t2]. + Both secondary contexts will be merged to [adata] afterward so that the + calling assertion context holds all data. *) + let adata1, env = Assert.empty ~loc kf env in + let adata2, env = Assert.empty ~loc kf env in + let e1, adata1, env = t1_to_exp adata1 env in + let e2, adata2, env = t2_to_exp adata2 env in + let adata, env = Assert.merge_right ~loc kf env adata1 adata in + let adata, env = Assert.merge_right ~loc kf env adata2 adata in (* If the given term is an lvalue variable or a cast from an lvalue variable, retrieve the name of this variable. Otherwise return default *) @@ -592,7 +597,17 @@ and context_insensitive_term_to_exp ~adata kf env t = let e1_guard, _, env = let name = e1_name ^ bop_name ^ "_guard" in comparison_to_exp - ~adata:Assert.no_data ~loc kf env Typing.gmpz ~e1 ~name Ge t1 zero t + ~adata:Assert.no_data + ~loc + kf + env + Typing.gmpz + ~e1 + ~name + Ge + t1 + zero + t in let e1_guard_cond, env = let pred = Logic_const.prel ~loc (Rge, t1, zero) in @@ -612,6 +627,9 @@ and context_insensitive_term_to_exp ~adata kf env t = in Some e1_guard_cond, env else + (* Manual clean because [runtime_check] has not been called on + [adata1]. *) + let env = Assert.clean ~loc kf env adata1 in None, env in let mk_stmts _ e = @@ -625,6 +643,8 @@ and context_insensitive_term_to_exp ~adata kf env t = e, adata, env, Typed_number.C_number, "" else begin assert (Logic_typing.is_integral_type t.term_type); + let e1, adata, env = t1_to_exp adata env in + let e2, adata, env = t2_to_exp adata env in let e = Cil.new_exp ~loc (BinOp(bop, e1, e2, ty)) in e, adata, env, Typed_number.C_number, "" end @@ -826,7 +846,7 @@ and context_insensitive_term_to_exp ~adata kf env t = e, adata, env, Typed_number.C_number, name | Tblock_length _ -> Env.not_yet env "labeled \\block_length" | Tnull -> - let e = Cil.mkCast (TPtr(TVoid [], [])) (Cil.zero ~loc) in + let e = Smart_exp.null ~loc in e, adata, env, Typed_number.C_number, "null" | TUpdate _ -> Env.not_yet env "functional update" | Ttypeof _ -> Env.not_yet env "typeof" @@ -1096,7 +1116,7 @@ and predicate_content_to_exp ~adata ?name kf env p = Logic_const.pimplies ~loc (p2, p1))) | Pnot p -> let e, adata, env = predicate_to_exp ~adata kf env p in - Cil.new_exp ~loc (UnOp(LNot, e, Cil.intType)), adata, env + Smart_exp.lnot ~loc e, adata, env | Pif(t, p2, p3) -> Extlib.flatten (Env.with_rte_and_result env true diff --git a/src/plugins/e-acsl/src/options.ml b/src/plugins/e-acsl/src/options.ml index b414bc0c7298f8c2d9934cbe20f0a470760af6bc..e4f6bdddd94e5c6ad94c656f6e85e0dea9120e16 100644 --- a/src/plugins/e-acsl/src/options.ml +++ b/src/plugins/e-acsl/src/options.ml @@ -100,9 +100,8 @@ module Builtins = let help = "C functions which can be used in the E-ACSL specifications" end) -let () = Parameter_customize.is_invisible () module Assert_print_data = - False + True (struct let option_name = "-e-acsl-assert-print-data" let help = "print data contributing to the failed assertion along with \ diff --git a/src/plugins/e-acsl/src/project_initializer/rtl.ml b/src/plugins/e-acsl/src/project_initializer/rtl.ml index ab11845a3d08fddbbc59ed0afe1c348e7c5c9c2c..2666f70349900e1e38437991b775f84f36ae1f90 100644 --- a/src/plugins/e-acsl/src/project_initializer/rtl.ml +++ b/src/plugins/e-acsl/src/project_initializer/rtl.ml @@ -56,7 +56,7 @@ module Symbols: sig exception Unregistered of string val find_vi: string -> varinfo (* may raise Unregistered *) val libc_replacement: varinfo -> varinfo - (* val debug: unit -> unit*) + val _debug: unit -> unit end = struct let globals: unit Global.Hashtbl.t = Global.Hashtbl.create 17 @@ -88,27 +88,17 @@ end = struct name fvi.vname -(* - let debug () = + let _debug () = Global.Hashtbl.iter - (fun g1 () -> Format.printf "RTL %a@." Printer.pp_global g1) - rtl; - Varinfo.Hashtbl.iter - (fun g1 g2 -> Format.printf "VAR %a -> %a@." - Printer.pp_varinfo g1 - Printer.pp_varinfo g2) - vars; - Typ.Hashtbl.iter - (fun g1 g2 -> Format.printf "TYP %a -> %a@." - Printer.pp_typ g1 - Printer.pp_typ g2) - types; - Global_annotation.Hashtbl.iter - (fun g1 g2 -> Format.printf "ANNOT %a -> %a@." - Printer.pp_global_annotation g1 - Printer.pp_global_annotation g2) - annots -*) + (fun g () -> Format.printf "GLOBAL %a@." Printer.pp_global g) + globals; + Kernel_function.Hashtbl.iter + (fun kf () -> Format.printf "KF %a@." Kernel_function.pretty kf) + kfs; + Datatype.String.Hashtbl.iter + (fun s vi -> Format.printf "VAR %s -> %a@." s Printer.pp_varinfo vi) + vars + end (* Internal module to store the associations between symbols in the RTL project @@ -519,7 +509,7 @@ let link rtl_prj = let rtl_ast = create_rtl_ast rtl_prj in let ast = Ast.get () in let rtl_globals = lookup_rtl_globals rtl_ast in - (* Symbols.debug ();*) + (* Symbols._debug (); *) insert_rtl_globals rtl_prj rtl_globals ast; Assocs.clear (); Ast.mark_as_grown () diff --git a/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle index 08773711f3037fb6b3bc861371f0aacffca2fe99..34e731d5ad0d0bdc9c3c97e1d2dba446b7c58b54 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle @@ -2,11 +2,29 @@ [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/arith/arith.i:18: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/arith.i:34: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/arith/arith.i:34: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/arith/arith.i:34: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/arith.i:34: Warning: - signed overflow. assert -2147483648 ≤ 1 + __gen_e_acsl__7; + signed overflow. assert -2147483648 <= 1 + __gen_e_acsl__7; [eva:alarm] tests/arith/arith.i:34: Warning: - signed overflow. assert 1 + __gen_e_acsl__7 ≤ 2147483647; + signed overflow. assert 1 + __gen_e_acsl__7 <= 2147483647; [eva:alarm] tests/arith/arith.i:34: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/arith.i:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle index c1008f0532893f6c5af5afe4bb908dfae70f97b0..cf187d20cbb98bb3458c0d2f21c9214c81f3aebd 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle @@ -1,18 +1,117 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/array.i:110: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:111: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:21: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:21: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:22: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:22: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:23: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:23: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:32: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:40: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:40: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:41: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:41: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:42: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:42: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:43: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:43: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:49: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:49: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:50: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:50: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:51: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:51: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:55: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:55: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:55: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:56: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:56: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:56: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:59: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:59: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:60: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:60: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:61: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:61: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:61: Warning: assertion got status unknown. +[eva:alarm] tests/arith/array.i:62: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/array.i:62: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/array.i:62: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle index 32f1b6bd00c37b0339a747425af99af34ba9d32b..5da4281c39239544ad85481ab92ebc7dfa81be97 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle @@ -1,9 +1,27 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/at.i:38: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at.i:13: Warning: assertion got status unknown. [eva:alarm] tests/arith/at.i:15: Warning: assertion got status unknown. [eva:alarm] tests/arith/at.i:54: Warning: assertion got status unknown. [eva:alarm] tests/arith/at.i:55: Warning: assertion got status unknown. [eva:alarm] tests/arith/at.i:56: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at.i:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at.i:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] :0: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at.i:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at.i:29: Warning: assertion got status unknown. [eva:alarm] tests/arith/at.i:31: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at.i:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle index 148dc33df38c13a50a713349fe97d407e8884572..3a7845abb59f641246ca76632c0e1d4c7c63d93a 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle @@ -9,30 +9,119 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:28: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:31: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:38: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: + function __e_acsl_assert, behavior blocking: precondition got status invalid. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: + function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:45: Warning: accessing uninitialized left-value. assert \initialized(__gen_e_acsl_at_6 + (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) + (int)(__gen_e_acsl_v_3 - -4))); -[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: - function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:44: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: function __gen_e_acsl_f: postcondition got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: assertion got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:59: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/at_on-purely-logic-variables.c:59: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:56: Warning: assertion got status unknown. [eva:alarm] tests/arith/at_on-purely-logic-variables.c:66: Warning: diff --git a/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle index 1d829537034b569747b7f2216f3b8e1c335b4c05..003f08adf305df9a3b60ac49bd3056c69a547860 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle @@ -1,9 +1,69 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/bitwise.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:28: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:30: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:32: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:32: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:34: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:34: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:36: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:36: Warning: + function __e_acsl_assert_register_uint: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:42: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:42: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/arith/bitwise.c:42: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/bitwise.c:42: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/bitwise.c:44: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:44: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/arith/bitwise.c:44: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/bitwise.c:44: Warning: @@ -18,10 +78,22 @@ function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/bitwise.c:50: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/bitwise.c:57: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:57: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/arith/bitwise.c:57: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/bitwise.c:57: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/bitwise.c:59: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/arith/bitwise.c:59: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/arith/bitwise.c:59: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/bitwise.c:59: Warning: diff --git a/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle index 91932086457759e419ca8dfd663c8ec59a66b00d..acad8d1eb7b682cd564bbd96fb231e83cf5768a9 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle @@ -2,3 +2,9 @@ [e-acsl] tests/arith/cast.i:22: Warning: E-ACSL construct `R to Int' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/cast.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/cast.i:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle index efd026311297e55d8fefb674326118e6ece88624..5d4daf159f1f24c7dee5acad3168ce8d537283bd 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle @@ -1,2 +1,11 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/comparison.i:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/comparison.i:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/comparison.i:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle index e8c1201d2fab96550a0a4713cbf0033d66af1405..4e1051e5af2af0c3bd87e9ae158c60c8e539dc1f 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle @@ -1,31 +1,37 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: - signed overflow. assert 2 * __gen_e_acsl_k ≤ 2147483647; + signed overflow. assert 2 * __gen_e_acsl_k <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: signed overflow. - assert __gen_e_acsl_accumulator + __gen_e_acsl_lambda ≤ 2147483647; + assert __gen_e_acsl_accumulator + __gen_e_acsl_lambda <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: - signed overflow. assert __gen_e_acsl_k + __gen_e_acsl_one ≤ 2147483647; + signed overflow. assert __gen_e_acsl_k + __gen_e_acsl_one <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: - signed overflow. assert __gen_e_acsl_k_2 + __gen_e_acsl_one_2 ≤ 2147483647; + signed overflow. assert __gen_e_acsl_k_2 + __gen_e_acsl_one_2 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: signed overflow. - assert __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 ≤ 2147483647; + assert __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: @@ -37,60 +43,66 @@ [eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: signed overflow. assert - -9223372036854775808 ≤ __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7; + -9223372036854775808 <= __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7; [eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: - signed overflow. assert __gen_e_acsl_k_7 + __gen_e_acsl_one_7 ≤ 2147483647; + signed overflow. assert __gen_e_acsl_k_7 + __gen_e_acsl_one_7 <= 2147483647; +[eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:17: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:17: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: - signed overflow. assert __gen_e_acsl_k_8 + __gen_e_acsl_one_8 ≤ 2147483647; + signed overflow. assert __gen_e_acsl_k_8 + __gen_e_acsl_one_8 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: signed overflow. - assert __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 ≤ 2147483647; + assert __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: signed overflow. - assert __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 ≤ 2147483647; + assert __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: signed overflow. - assert __gen_e_acsl_k_10 + __gen_e_acsl_one_10 ≤ 2147483647; + assert __gen_e_acsl_k_10 + __gen_e_acsl_one_10 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: signed overflow. - assert __gen_e_acsl_k_11 + __gen_e_acsl_one_11 ≤ 2147483647; + assert __gen_e_acsl_k_11 + __gen_e_acsl_one_11 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: signed overflow. - assert __gen_e_acsl_k_12 + __gen_e_acsl_one_12 ≤ 2147483647; + assert __gen_e_acsl_k_12 + __gen_e_acsl_one_12 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: assertion got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: - signed overflow. assert 2 * __gen_e_acsl_k_13 ≤ 2147483647; + signed overflow. assert 2 * __gen_e_acsl_k_13 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: signed overflow. - assert __gen_e_acsl_k_13 + __gen_e_acsl_one_13 ≤ 2147483647; + assert __gen_e_acsl_k_13 + __gen_e_acsl_one_13 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: - signed overflow. assert 2 * __gen_e_acsl_k_14 ≤ 2147483647; + signed overflow. assert 2 * __gen_e_acsl_k_14 <= 2147483647; [eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: signed overflow. - assert __gen_e_acsl_k_14 + __gen_e_acsl_one_14 ≤ 2147483647; + assert __gen_e_acsl_k_14 + __gen_e_acsl_one_14 <= 2147483647; +[eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: diff --git a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle index 185e1121e6bf48381adef9c9c0aadfb859c57489..2302271bd58149493aa4708a4f47e773d53b31ee 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle @@ -1,15 +1,63 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/functions.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/functions.c:50: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/functions.c:52: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:52: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/functions.c:53: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions.c:54: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions.c:55: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/functions.c:60: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:60: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:63: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:63: Warning: + function __e_acsl_assert_register_char: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:65: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:65: Warning: + function __e_acsl_assert_register_short: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:70: Warning: + function __e_acsl_assert_register_struct: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:70: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/functions.c:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/functions.c:75: Warning: non-finite double value. assert \is_finite(__gen_e_acsl__10); +[eva:alarm] tests/arith/functions.c:75: Warning: + function __e_acsl_assert_register_double: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/functions.c:75: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions.c:77: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle index c2c703a86c9eb38d948028c4a56227cdf248c991..e347f3c4d934a2e3be83cd2bde43540992c6ea44 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle @@ -49,16 +49,15 @@ [eva:alarm] tests/arith/functions_rec.c:13: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions_rec.c:13: Warning: - division by zero. assert __gen_e_acsl_f2_9 ≢ 0; + division by zero. assert __gen_e_acsl_f2_9 != 0; [eva:alarm] tests/arith/functions_rec.c:13: Warning: - signed overflow. - assert -2147483648 ≤ __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7; + signed overflow. assert -2147483648 <= __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7; [eva:alarm] tests/arith/functions_rec.c:13: Warning: - signed overflow. assert __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 ≤ 2147483647; + signed overflow. assert __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. assert - (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 ≤ + (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:13: Warning: accessing uninitialized left-value. @@ -67,30 +66,30 @@ accessing uninitialized left-value. assert \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8); [eva:alarm] tests/arith/functions_rec.c:13: Warning: - division by zero. assert __gen_e_acsl_f2_14 ≢ 0; + division by zero. assert __gen_e_acsl_f2_14 != 0; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. - assert -2147483648 ≤ __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12; + assert -2147483648 <= __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. - assert __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 ≤ 2147483647; + assert __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. assert - (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14 ≤ + (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:13: Warning: - division by zero. assert __gen_e_acsl_f2_19 ≢ 0; + division by zero. assert __gen_e_acsl_f2_19 != 0; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. - assert -2147483648 ≤ __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17; + assert -2147483648 <= __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. - assert __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 ≤ 2147483647; + assert __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:13: Warning: signed overflow. assert - (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19 ≤ + (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19 <= 2147483647; [eva:alarm] tests/arith/functions_rec.c:32: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. @@ -129,6 +128,9 @@ function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions_rec.c:38: Warning: assertion got status unknown. +[eva:alarm] tests/arith/functions_rec.c:40: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/functions_rec.c:40: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/functions_rec.c:40: Warning: diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c b/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c index 7553a951c4b52aaf9400d6577e9a93dd3e0e5d4a..0999a0ce617945582c0a9f22e5ce81b3c923439b 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c @@ -1,95 +1,294 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = -3; int y = 2; long z = 2L; - __e_acsl_assert(-3 == x,1,"Assertion","main","-3 == x", - "tests/arith/arith.i",10); - /*@ assert -3 ≡ x; */ ; - __e_acsl_assert(x == -3,1,"Assertion","main","x == -3", - "tests/arith/arith.i",11); - /*@ assert x ≡ -3; */ ; - __e_acsl_assert(1,1,"Assertion","main","0 != ~0","tests/arith/arith.i",12); - /*@ assert 0 ≢ ~0; */ ; - __e_acsl_assert(x + 1L == -2L,1,"Assertion","main","x + 1 == -2", - "tests/arith/arith.i",14); - /*@ assert x + 1 ≡ -2; */ ; - __e_acsl_assert(x - 1L == -4L,1,"Assertion","main","x - 1 == -4", - "tests/arith/arith.i",15); - /*@ assert x - 1 ≡ -4; */ ; - __e_acsl_assert(x * 3L == -9L,1,"Assertion","main","x * 3 == -9", - "tests/arith/arith.i",16); - /*@ assert x * 3 ≡ -9; */ ; - __e_acsl_assert(x / 3 == -1,1,"Assertion","main","x / 3 == -1", - "tests/arith/arith.i",17); - /*@ assert x / 3 ≡ -1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "-3 == x"; + __gen_e_acsl_assert_data.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(-3 == x,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert -3 == x; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "x == -3"; + __gen_e_acsl_assert_data_2.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(x == -3,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert x == -3; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "0 != ~0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 12; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_3); + } + /*@ assert 0 != ~0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "x + 1 == -2"; + __gen_e_acsl_assert_data_4.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(x + 1L == -2L,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert x + 1 == -2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "x - 1 == -4"; + __gen_e_acsl_assert_data_5.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(x - 1L == -4L,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert x - 1 == -4; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "x * 3 == -9"; + __gen_e_acsl_assert_data_6.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 16; + __e_acsl_assert(x * 3L == -9L,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert x * 3 == -9; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "x / 3 == -1"; + __gen_e_acsl_assert_data_7.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 17; + __e_acsl_assert(x / 3 == -1,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert x / 3 == -1; */ ; { __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_div_guard; __e_acsl_mpz_t __gen_e_acsl_div; long __gen_e_acsl__3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl_,"309485009821345068724781055",10); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__2,0L); __gen_e_acsl_div_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); __gmpz_init(__gen_e_acsl_div); - /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard != 0,1,"Assertion","main", - "0xffffffffffffffffffffff != 0","tests/arith/arith.i",18); + /*@ assert E_ACSL: 0xffffffffffffffffffffff != 0; */ + { + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "0xffffffffffffffffffffff != 0"; + __gen_e_acsl_assert_data_9.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 18; + __e_acsl_assert(__gen_e_acsl_div_guard != 0, + & __gen_e_acsl_assert_data_9); + } __gmpz_tdiv_q(__gen_e_acsl_div, (__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div)); - __e_acsl_assert(__gen_e_acsl__3 == 1L,1,"Assertion","main", - "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1", - "tests/arith/arith.i",18); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1"; + __gen_e_acsl_assert_data_8.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 18; + __e_acsl_assert(__gen_e_acsl__3 == 1L,& __gen_e_acsl_assert_data_8); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_div); } - /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff ≡ 1; */ ; - __e_acsl_assert(x % 2 == -1,1,"Assertion","main","x % 2 == -1", - "tests/arith/arith.i",19); - /*@ assert x % 2 ≡ -1; */ ; - __e_acsl_assert(1,1,"Assertion","main","-3 % -2 == -1", - "tests/arith/arith.i",20); - /*@ assert -3 % -2 ≡ -1; */ ; - __e_acsl_assert(1,1,"Assertion","main","3 % -2 == 1","tests/arith/arith.i", - 21); - /*@ assert 3 % -2 ≡ 1; */ ; - __e_acsl_assert(((x * 2L + (3L + y)) - 4L) + (x - (long)y) == -10L,1, - "Assertion","main", - "((x * 2 + (3 + y)) - 4) + (x - y) == -10", - "tests/arith/arith.i",23); - /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) ≡ -10; */ ; - __e_acsl_assert(1,1,"Assertion","main","(0 == 1) == !(0 == 0)", - "tests/arith/arith.i",25); - /*@ assert (0 ≡ 1) ≡ !(0 ≡ 0); */ ; - __e_acsl_assert(1,1,"Assertion","main","(0 <= -1) == (0 > 0)", - "tests/arith/arith.i",26); - /*@ assert (0 ≤ -1) ≡ (0 > 0); */ ; - __e_acsl_assert(1,1,"Assertion","main","(0 >= -1) == (0 <= 0)", - "tests/arith/arith.i",27); - /*@ assert (0 ≥ -1) ≡ (0 ≤ 0); */ ; - __e_acsl_assert(1,1,"Assertion","main","(0 != 1) == !(0 != 0)", - "tests/arith/arith.i",28); - /*@ assert (0 ≢ 1) ≡ !(0 ≢ 0); */ ; - __e_acsl_assert(1,1,"Assertion","main","(0 != 0) == !(1 != 0)", - "tests/arith/arith.i",30); - /*@ assert (0 ≢ 0) ≡ !(1 ≢ 0); */ ; - __e_acsl_assert(y != 0,1,"RTE","main","division_by_zero: y != 0", - "tests/arith/arith.i",31); - __e_acsl_assert(4 / y == 2,1,"Assertion","main","4 / y == 2", - "tests/arith/arith.i",31); - /*@ assert 4 / y ≡ 2; */ ; + /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "x % 2 == -1"; + __gen_e_acsl_assert_data_10.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 19; + __e_acsl_assert(x % 2 == -1,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + } + /*@ assert x % 2 == -1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "-3 % -2 == -1"; + __gen_e_acsl_assert_data_11.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 20; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_11); + } + /*@ assert -3 % -2 == -1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "3 % -2 == 1"; + __gen_e_acsl_assert_data_12.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 21; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_12); + } + /*@ assert 3 % -2 == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "((x * 2 + (3 + y)) - 4) + (x - y) == -10"; + __gen_e_acsl_assert_data_13.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 23; + __e_acsl_assert(((x * 2L + (3L + y)) - 4L) + (x - (long)y) == -10L, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + } + /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) == -10; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "(0 == 1) == !(0 == 0)"; + __gen_e_acsl_assert_data_14.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 25; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_14); + } + /*@ assert (0 == 1) == !(0 == 0); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "(0 <= -1) == (0 > 0)"; + __gen_e_acsl_assert_data_15.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 26; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_15); + } + /*@ assert (0 <= -1) == (0 > 0); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "(0 >= -1) == (0 <= 0)"; + __gen_e_acsl_assert_data_16.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 27; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_16); + } + /*@ assert (0 >= -1) == (0 <= 0); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "(0 != 1) == !(0 != 0)"; + __gen_e_acsl_assert_data_17.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 28; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_17); + } + /*@ assert (0 != 1) == !(0 != 0); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "(0 != 0) == !(1 != 0)"; + __gen_e_acsl_assert_data_18.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 30; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_18); + } + /*@ assert (0 != 0) == !(1 != 0); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"y",0,y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"y",0,y); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "RTE"; + __gen_e_acsl_assert_data_20.pred_txt = "division_by_zero: y != 0"; + __gen_e_acsl_assert_data_20.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 31; + __e_acsl_assert(y != 0,& __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "4 / y == 2"; + __gen_e_acsl_assert_data_19.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 31; + __e_acsl_assert(4 / y == 2,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); + } + /*@ assert 4 / y == 2; */ ; { __e_acsl_mpz_t __gen_e_acsl_z; __e_acsl_mpz_t __gen_e_acsl__4; @@ -99,29 +298,51 @@ int main(void) int __gen_e_acsl_div_guard_2; __e_acsl_mpz_t __gen_e_acsl_div_2; long __gen_e_acsl__7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_21,"z",0,z); __gmpz_init_set_si(__gen_e_acsl_z,z); __gmpz_init_set_si(__gen_e_acsl__4,1L); __gmpz_init(__gen_e_acsl_add); __gmpz_add(__gen_e_acsl_add, (__e_acsl_mpz_struct const *)(__gen_e_acsl_z), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"y",0,y); __gmpz_init_set_si(__gen_e_acsl__5,y - 123456789123456789L); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_21, + & __gen_e_acsl_assert_data_22); __gmpz_init_set_si(__gen_e_acsl__6,0L); __gen_e_acsl_div_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__5), (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); __gmpz_init(__gen_e_acsl_div_2); - /*@ assert E_ACSL: y - 123456789123456789 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,1,"Assertion","main", - "y - 123456789123456789 != 0","tests/arith/arith.i",34); + /*@ assert E_ACSL: y - 123456789123456789 != 0; */ + { + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "y - 123456789123456789 != 0"; + __gen_e_acsl_assert_data_22.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 34; + __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); + } __gmpz_tdiv_q(__gen_e_acsl_div_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gen_e_acsl__7 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_2)); - /*@ assert Eva: signed_overflow: -2147483648 ≤ 1 + __gen_e_acsl__7; */ - /*@ assert Eva: signed_overflow: 1 + __gen_e_acsl__7 ≤ 2147483647; */ - __e_acsl_assert(1 + __gen_e_acsl__7 == 1,1,"Assertion","main", - "1 + (z + 1) / (y - 123456789123456789) == 1", - "tests/arith/arith.i",34); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "1 + (z + 1) / (y - 123456789123456789) == 1"; + __gen_e_acsl_assert_data_21.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 34; + /*@ assert Eva: signed_overflow: -2147483648 <= 1 + __gen_e_acsl__7; */ + /*@ assert Eva: signed_overflow: 1 + __gen_e_acsl__7 <= 2147483647; */ + __e_acsl_assert(1 + __gen_e_acsl__7 == 1,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); __gmpz_clear(__gen_e_acsl_z); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_add); @@ -129,11 +350,24 @@ int main(void) __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_div_2); } - /*@ assert 1 + (z + 1) / (y - 123456789123456789) ≡ 1; */ ; - __e_acsl_assert(1L - x == - ((long)x) + 1L,1,"Assertion","main", - "1 - x == -x + 1","tests/arith/arith.i",36); - /*@ assert 1 - x ≡ -x + 1; */ ; + /*@ assert 1 + (z + 1) / (y - 123456789123456789) == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "1 - x == -x + 1"; + __gen_e_acsl_assert_data_23.file = "tests/arith/arith.i"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 36; + __e_acsl_assert(1L - x == - ((long)x) + 1L,& __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); + } + /*@ assert 1 - x == -x + 1; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_array.c b/src/plugins/e-acsl/tests/arith/oracle/gen_array.c index fd738aa7b4b03d0f062ee3a3e6d84032b9fb135e..3254f52fc740d4553daf2c375e8b8d514877f8a2 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_array.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_array.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -18,6 +18,11 @@ void arrays(void) int d[6] = {1, 2, 3, 4, 5, 6}; { int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data,"b", + (void *)(b)); __gen_e_acsl_ne = 0; if (1) { unsigned long __gen_e_acsl_iter; @@ -31,12 +36,24 @@ void arrays(void) } } else __gen_e_acsl_ne = 1; - __e_acsl_assert(__gen_e_acsl_ne,1,"Assertion","arrays","a != b", - "tests/arith/array.i",21); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "a != b"; + __gen_e_acsl_assert_data.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data.fct = "arrays"; + __gen_e_acsl_assert_data.line = 21; + __e_acsl_assert(__gen_e_acsl_ne,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert a ≢ b; */ ; + /*@ assert a != b; */ ; { int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_2,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_2,"c", + (void *)(c)); __gen_e_acsl_eq = 1; if (1) { unsigned long __gen_e_acsl_iter_2; @@ -50,12 +67,24 @@ void arrays(void) } } else __gen_e_acsl_eq = 0; - __e_acsl_assert(__gen_e_acsl_eq,1,"Assertion","arrays","a == c", - "tests/arith/array.i",22); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "a == c"; + __gen_e_acsl_assert_data_2.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_2.fct = "arrays"; + __gen_e_acsl_assert_data_2.line = 22; + __e_acsl_assert(__gen_e_acsl_eq,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert a ≡ c; */ ; + /*@ assert a == c; */ ; { int __gen_e_acsl_ne_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_3,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_3,"d", + (void *)(d)); __gen_e_acsl_ne_2 = 0; if (0) { unsigned long __gen_e_acsl_iter_3; @@ -69,10 +98,16 @@ void arrays(void) } } else __gen_e_acsl_ne_2 = 1; - __e_acsl_assert(__gen_e_acsl_ne_2,1,"Assertion","arrays","a != d", - "tests/arith/array.i",23); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "a != d"; + __gen_e_acsl_assert_data_3.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_3.fct = "arrays"; + __gen_e_acsl_assert_data_3.line = 23; + __e_acsl_assert(__gen_e_acsl_ne_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert a ≢ d; */ ; + /*@ assert a != d; */ ; int *e = a; int *f = b; __e_acsl_store_block((void *)(& f),(size_t)8); @@ -81,23 +116,92 @@ void arrays(void) __e_acsl_store_block((void *)(& g),(size_t)8); __e_acsl_full_init((void *)(& g)); int *h = a; - __e_acsl_assert(e != f,1,"Assertion","arrays","e != f", - "tests/arith/array.i",30); - /*@ assert e ≢ f; */ ; - __e_acsl_assert(e != g,1,"Assertion","arrays","e != g", - "tests/arith/array.i",31); - /*@ assert e ≢ g; */ ; - __e_acsl_assert(e == h,1,"Assertion","arrays","e == h", - "tests/arith/array.i",32); - /*@ assert e ≡ h; */ ; - __e_acsl_assert(e == a,1,"Assertion","arrays","e == (int *)a", - "tests/arith/array.i",36); - /*@ assert e ≡ (int *)a; */ ; - __e_acsl_assert(e != c,1,"Assertion","arrays","e != (int *)c", - "tests/arith/array.i",37); - /*@ assert e ≢ (int *)c; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"e",(void *)e); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"f",(void *)f); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "e != f"; + __gen_e_acsl_assert_data_4.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_4.fct = "arrays"; + __gen_e_acsl_assert_data_4.line = 30; + __e_acsl_assert(e != f,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert e != f; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"e",(void *)e); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"g",(void *)g); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "e != g"; + __gen_e_acsl_assert_data_5.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_5.fct = "arrays"; + __gen_e_acsl_assert_data_5.line = 31; + __e_acsl_assert(e != g,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert e != g; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"e",(void *)e); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"h",(void *)h); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "e == h"; + __gen_e_acsl_assert_data_6.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_6.fct = "arrays"; + __gen_e_acsl_assert_data_6.line = 32; + __e_acsl_assert(e == h,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert e == h; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"e",(void *)e); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"(int *)a", + (void *)(a)); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "e == (int *)a"; + __gen_e_acsl_assert_data_7.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_7.fct = "arrays"; + __gen_e_acsl_assert_data_7.line = 36; + __e_acsl_assert(e == a,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert e == (int *)a; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"e",(void *)e); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(int *)c", + (void *)(c)); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "e != (int *)c"; + __gen_e_acsl_assert_data_8.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_8.fct = "arrays"; + __gen_e_acsl_assert_data_8.line = 37; + __e_acsl_assert(e != c,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert e != (int *)c; */ ; { int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_9,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_9, + "*((int (*)[3])g)", + (void *)(*((int (*)[3])g))); __gen_e_acsl_eq_2 = 1; if (1) { unsigned long __gen_e_acsl_iter_4; @@ -105,13 +209,26 @@ void arrays(void) while (__gen_e_acsl_iter_4 < 3) { { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "&(*((int (*)[3])g))[__gen_e_acsl_iter_4]", + (void *)(& (*((int (*)[3])g))[__gen_e_acsl_iter_4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& (*((int (*)[3])g))[__gen_e_acsl_iter_4]), sizeof(int), (void *)(*((int (*)[3])g)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])g))[__gen_e_acsl_iter_4])", - "tests/arith/array.i",40); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])g))[__gen_e_acsl_iter_4])"; + __gen_e_acsl_assert_data_10.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_10.fct = "arrays"; + __gen_e_acsl_assert_data_10.line = 40; + __e_acsl_assert(__gen_e_acsl_valid_read, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); if (a[__gen_e_acsl_iter_4] != (*((int (*)[3])g))[__gen_e_acsl_iter_4]) { __gen_e_acsl_eq_2 = 0; break; @@ -121,24 +238,49 @@ void arrays(void) } } else __gen_e_acsl_eq_2 = 0; - __e_acsl_assert(__gen_e_acsl_eq_2,1,"Assertion","arrays", - "a == *((int (*)[3])g)","tests/arith/array.i",40); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "a == *((int (*)[3])g)"; + __gen_e_acsl_assert_data_9.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_9.fct = "arrays"; + __gen_e_acsl_assert_data_9.line = 40; + __e_acsl_assert(__gen_e_acsl_eq_2,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert a ≡ *((int (*)[3])g); */ ; + /*@ assert a == *((int (*)[3])g); */ ; { int __gen_e_acsl_eq_3; int __gen_e_acsl_valid_read_2; unsigned long __gen_e_acsl_; unsigned long __gen_e_acsl__2; unsigned long __gen_e_acsl_length2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_11,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_11, + "*((int (*)[])g)", + (void *)(*((int (*)[])g))); __gen_e_acsl_eq_3 = 1; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "(int *)*((int (*)[])g)", + (void *)(*((int (*)[])g))); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(*((int (*)[])g)), sizeof(int), (void *)(*((int (*)[])g)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","arrays", - "mem_access: \\valid_read((int *)*((int (*)[])g))", - "tests/arith/array.i",41); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read((int *)*((int (*)[])g))"; + __gen_e_acsl_assert_data_12.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_12.fct = "arrays"; + __gen_e_acsl_assert_data_12.line = 41; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); __gen_e_acsl_ = __e_acsl_block_length((void *)(*((int (*)[])g))); __gen_e_acsl__2 = __e_acsl_offset((void *)(*((int (*)[])g))); __gen_e_acsl_length2 = (__gen_e_acsl_ - __gen_e_acsl__2) / sizeof(int); @@ -148,13 +290,26 @@ void arrays(void) while (__gen_e_acsl_iter_5 < 3) { { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "&(*((int (*)[])g))[__gen_e_acsl_iter_5]", + (void *)(& (*((int (*)[])g))[__gen_e_acsl_iter_5])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*((int (*)[])g))[__gen_e_acsl_iter_5]), sizeof(int), (void *)(*((int (*)[])g)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[])g))[__gen_e_acsl_iter_5])", - "tests/arith/array.i",41); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "RTE"; + __gen_e_acsl_assert_data_13.pred_txt = "mem_access: \\valid_read(&(*((int (*)[])g))[__gen_e_acsl_iter_5])"; + __gen_e_acsl_assert_data_13.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_13.fct = "arrays"; + __gen_e_acsl_assert_data_13.line = 41; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); if (a[__gen_e_acsl_iter_5] != (*((int (*)[])g))[__gen_e_acsl_iter_5]) { __gen_e_acsl_eq_3 = 0; break; @@ -164,12 +319,25 @@ void arrays(void) } } else __gen_e_acsl_eq_3 = 0; - __e_acsl_assert(__gen_e_acsl_eq_3,1,"Assertion","arrays", - "a == *((int (*)[])g)","tests/arith/array.i",41); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "a == *((int (*)[])g)"; + __gen_e_acsl_assert_data_11.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_11.fct = "arrays"; + __gen_e_acsl_assert_data_11.line = 41; + __e_acsl_assert(__gen_e_acsl_eq_3,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert a ≡ *((int (*)[])g); */ ; + /*@ assert a == *((int (*)[])g); */ ; { int __gen_e_acsl_ne_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_14,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_14, + "*((int (*)[3])f)", + (void *)(*((int (*)[3])f))); __gen_e_acsl_ne_3 = 0; if (1) { unsigned long __gen_e_acsl_iter_6; @@ -177,13 +345,26 @@ void arrays(void) while (__gen_e_acsl_iter_6 < 3) { { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "&(*((int (*)[3])f))[__gen_e_acsl_iter_6]", + (void *)(& (*((int (*)[3])f))[__gen_e_acsl_iter_6])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*((int (*)[3])f))[__gen_e_acsl_iter_6]), sizeof(int), (void *)(*((int (*)[3])f)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])f))[__gen_e_acsl_iter_6])", - "tests/arith/array.i",42); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])f))[__gen_e_acsl_iter_6])"; + __gen_e_acsl_assert_data_15.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_15.fct = "arrays"; + __gen_e_acsl_assert_data_15.line = 42; + __e_acsl_assert(__gen_e_acsl_valid_read_4, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); if (a[__gen_e_acsl_iter_6] != (*((int (*)[3])f))[__gen_e_acsl_iter_6]) { __gen_e_acsl_ne_3 = 1; break; @@ -193,24 +374,49 @@ void arrays(void) } } else __gen_e_acsl_ne_3 = 1; - __e_acsl_assert(__gen_e_acsl_ne_3,1,"Assertion","arrays", - "a != *((int (*)[3])f)","tests/arith/array.i",42); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "a != *((int (*)[3])f)"; + __gen_e_acsl_assert_data_14.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_14.fct = "arrays"; + __gen_e_acsl_assert_data_14.line = 42; + __e_acsl_assert(__gen_e_acsl_ne_3,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert a ≢ *((int (*)[3])f); */ ; + /*@ assert a != *((int (*)[3])f); */ ; { int __gen_e_acsl_ne_4; int __gen_e_acsl_valid_read_5; unsigned long __gen_e_acsl__3; unsigned long __gen_e_acsl__4; unsigned long __gen_e_acsl_length2_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_16,"a", + (void *)(a)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_16, + "*((int (*)[])f)", + (void *)(*((int (*)[])f))); __gen_e_acsl_ne_4 = 0; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "(int *)*((int (*)[])f)", + (void *)(*((int (*)[])f))); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(*((int (*)[])f)), sizeof(int), (void *)(*((int (*)[])f)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","arrays", - "mem_access: \\valid_read((int *)*((int (*)[])f))", - "tests/arith/array.i",43); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "RTE"; + __gen_e_acsl_assert_data_17.pred_txt = "mem_access: \\valid_read((int *)*((int (*)[])f))"; + __gen_e_acsl_assert_data_17.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_17.fct = "arrays"; + __gen_e_acsl_assert_data_17.line = 43; + __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); __gen_e_acsl__3 = __e_acsl_block_length((void *)(*((int (*)[])f))); __gen_e_acsl__4 = __e_acsl_offset((void *)(*((int (*)[])f))); __gen_e_acsl_length2_2 = (__gen_e_acsl__3 - __gen_e_acsl__4) / sizeof(int); @@ -220,13 +426,26 @@ void arrays(void) while (__gen_e_acsl_iter_7 < 3) { { int __gen_e_acsl_valid_read_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "&(*((int (*)[])f))[__gen_e_acsl_iter_7]", + (void *)(& (*((int (*)[])f))[__gen_e_acsl_iter_7])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(& (*((int (*)[])f))[__gen_e_acsl_iter_7]), sizeof(int), (void *)(*((int (*)[])f)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[])f))[__gen_e_acsl_iter_7])", - "tests/arith/array.i",43); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "RTE"; + __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(&(*((int (*)[])f))[__gen_e_acsl_iter_7])"; + __gen_e_acsl_assert_data_18.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_18.fct = "arrays"; + __gen_e_acsl_assert_data_18.line = 43; + __e_acsl_assert(__gen_e_acsl_valid_read_6, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); if (a[__gen_e_acsl_iter_7] != (*((int (*)[])f))[__gen_e_acsl_iter_7]) { __gen_e_acsl_ne_4 = 1; break; @@ -236,10 +455,16 @@ void arrays(void) } } else __gen_e_acsl_ne_4 = 1; - __e_acsl_assert(__gen_e_acsl_ne_4,1,"Assertion","arrays", - "a != *((int (*)[])f)","tests/arith/array.i",43); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "a != *((int (*)[])f)"; + __gen_e_acsl_assert_data_16.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_16.fct = "arrays"; + __gen_e_acsl_assert_data_16.line = 43; + __e_acsl_assert(__gen_e_acsl_ne_4,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert a ≢ *((int (*)[])f); */ ; + /*@ assert a != *((int (*)[])f); */ ; int i[6] = {1, 2, 3, 4, 5, 6}; __e_acsl_store_block((void *)(i),(size_t)24); __e_acsl_full_init((void *)(& i)); @@ -251,6 +476,12 @@ void arrays(void) __e_acsl_full_init((void *)(& k)); { int __gen_e_acsl_ne_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"i", + (void *)(i)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"j", + (void *)(j)); __gen_e_acsl_ne_5 = 0; if (1) { unsigned long __gen_e_acsl_iter_8; @@ -264,12 +495,24 @@ void arrays(void) } } else __gen_e_acsl_ne_5 = 1; - __e_acsl_assert(__gen_e_acsl_ne_5,1,"Assertion","arrays","i != j", - "tests/arith/array.i",49); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "i != j"; + __gen_e_acsl_assert_data_19.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_19.fct = "arrays"; + __gen_e_acsl_assert_data_19.line = 49; + __e_acsl_assert(__gen_e_acsl_ne_5,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert i ≢ j; */ ; + /*@ assert i != j; */ ; { int __gen_e_acsl_ne_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_20,"i", + (void *)(i)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_20,"k", + (void *)(k)); __gen_e_acsl_ne_6 = 0; if (1) { unsigned long __gen_e_acsl_iter_9; @@ -283,12 +526,24 @@ void arrays(void) } } else __gen_e_acsl_ne_6 = 1; - __e_acsl_assert(__gen_e_acsl_ne_6,1,"Assertion","arrays","i != k", - "tests/arith/array.i",50); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "i != k"; + __gen_e_acsl_assert_data_20.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_20.fct = "arrays"; + __gen_e_acsl_assert_data_20.line = 50; + __e_acsl_assert(__gen_e_acsl_ne_6,& __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } - /*@ assert i ≢ k; */ ; + /*@ assert i != k; */ ; { int __gen_e_acsl_ne_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_21,"j", + (void *)(j)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_21,"k", + (void *)(k)); __gen_e_acsl_ne_7 = 0; if (1) { unsigned long __gen_e_acsl_iter_10; @@ -302,10 +557,16 @@ void arrays(void) } } else __gen_e_acsl_ne_7 = 1; - __e_acsl_assert(__gen_e_acsl_ne_7,1,"Assertion","arrays","j != k", - "tests/arith/array.i",51); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "j != k"; + __gen_e_acsl_assert_data_21.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_21.fct = "arrays"; + __gen_e_acsl_assert_data_21.line = 51; + __e_acsl_assert(__gen_e_acsl_ne_7,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } - /*@ assert j ≢ k; */ ; + /*@ assert j != k; */ ; int *l = & i[3]; __e_acsl_store_block((void *)(& l),(size_t)8); __e_acsl_full_init((void *)(& l)); @@ -317,6 +578,14 @@ void arrays(void) __e_acsl_full_init((void *)(& n)); { int __gen_e_acsl_ne_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_22, + "*((int (*)[3])l)", + (void *)(*((int (*)[3])l))); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_22, + "*((int (*)[3])m)", + (void *)(*((int (*)[3])m))); __gen_e_acsl_ne_8 = 0; if (1) { unsigned long __gen_e_acsl_iter_11; @@ -325,20 +594,46 @@ void arrays(void) { int __gen_e_acsl_valid_read_7; int __gen_e_acsl_valid_read_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23, + "&(*((int (*)[3])l))[__gen_e_acsl_iter_11]", + (void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_11])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_23, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_11]), sizeof(int), (void *)(*((int (*)[3])l)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_11])", - "tests/arith/array.i",55); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "RTE"; + __gen_e_acsl_assert_data_23.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_11])"; + __gen_e_acsl_assert_data_23.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_23.fct = "arrays"; + __gen_e_acsl_assert_data_23.line = 55; + __e_acsl_assert(__gen_e_acsl_valid_read_7, + & __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24, + "&(*((int (*)[3])m))[__gen_e_acsl_iter_11]", + (void *)(& (*((int (*)[3])m))[__gen_e_acsl_iter_11])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_24, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)(& (*((int (*)[3])m))[__gen_e_acsl_iter_11]), sizeof(int), (void *)(*((int (*)[3])m)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])m))[__gen_e_acsl_iter_11])", - "tests/arith/array.i",55); + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "RTE"; + __gen_e_acsl_assert_data_24.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])m))[__gen_e_acsl_iter_11])"; + __gen_e_acsl_assert_data_24.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_24.fct = "arrays"; + __gen_e_acsl_assert_data_24.line = 55; + __e_acsl_assert(__gen_e_acsl_valid_read_8, + & __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); if ((*((int (*)[3])l))[__gen_e_acsl_iter_11] != (*((int (*)[3])m))[__gen_e_acsl_iter_11]) { __gen_e_acsl_ne_8 = 1; break; @@ -348,13 +643,26 @@ void arrays(void) } } else __gen_e_acsl_ne_8 = 1; - __e_acsl_assert(__gen_e_acsl_ne_8,1,"Assertion","arrays", - "*((int (*)[3])l) != *((int (*)[3])m)", - "tests/arith/array.i",55); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "*((int (*)[3])l) != *((int (*)[3])m)"; + __gen_e_acsl_assert_data_22.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_22.fct = "arrays"; + __gen_e_acsl_assert_data_22.line = 55; + __e_acsl_assert(__gen_e_acsl_ne_8,& __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert *((int (*)[3])l) ≢ *((int (*)[3])m); */ ; + /*@ assert *((int (*)[3])l) != *((int (*)[3])m); */ ; { int __gen_e_acsl_eq_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_25, + "*((int (*)[3])l)", + (void *)(*((int (*)[3])l))); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_25, + "*((int (*)[3])n)", + (void *)(*((int (*)[3])n))); __gen_e_acsl_eq_4 = 1; if (1) { unsigned long __gen_e_acsl_iter_12; @@ -363,20 +671,46 @@ void arrays(void) { int __gen_e_acsl_valid_read_9; int __gen_e_acsl_valid_read_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26, + "&(*((int (*)[3])l))[__gen_e_acsl_iter_12]", + (void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_12])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_26, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_12]), sizeof(int), (void *)(*((int (*)[3])l)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_9,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_12])", - "tests/arith/array.i",56); + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "RTE"; + __gen_e_acsl_assert_data_26.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_12])"; + __gen_e_acsl_assert_data_26.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_26.fct = "arrays"; + __gen_e_acsl_assert_data_26.line = 56; + __e_acsl_assert(__gen_e_acsl_valid_read_9, + & __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27, + "&(*((int (*)[3])n))[__gen_e_acsl_iter_12]", + (void *)(& (*((int (*)[3])n))[__gen_e_acsl_iter_12])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)(& (*((int (*)[3])n))[__gen_e_acsl_iter_12]), sizeof(int), (void *)(*((int (*)[3])n)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_10,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[3])n))[__gen_e_acsl_iter_12])", - "tests/arith/array.i",56); + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "RTE"; + __gen_e_acsl_assert_data_27.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])n))[__gen_e_acsl_iter_12])"; + __gen_e_acsl_assert_data_27.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_27.fct = "arrays"; + __gen_e_acsl_assert_data_27.line = 56; + __e_acsl_assert(__gen_e_acsl_valid_read_10, + & __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); if ((*((int (*)[3])l))[__gen_e_acsl_iter_12] != (*((int (*)[3])n))[__gen_e_acsl_iter_12]) { __gen_e_acsl_eq_4 = 0; break; @@ -386,20 +720,45 @@ void arrays(void) } } else __gen_e_acsl_eq_4 = 0; - __e_acsl_assert(__gen_e_acsl_eq_4,1,"Assertion","arrays", - "*((int (*)[3])l) == *((int (*)[3])n)", - "tests/arith/array.i",56); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "*((int (*)[3])l) == *((int (*)[3])n)"; + __gen_e_acsl_assert_data_25.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_25.fct = "arrays"; + __gen_e_acsl_assert_data_25.line = 56; + __e_acsl_assert(__gen_e_acsl_eq_4,& __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); } - /*@ assert *((int (*)[3])l) ≡ *((int (*)[3])n); */ ; + /*@ assert *((int (*)[3])l) == *((int (*)[3])n); */ ; { int __gen_e_acsl_ne_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_28,"i", + (void *)(i)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_28,"k", + (void *)(k)); __gen_e_acsl_ne_9 = 0; if (1) { unsigned long __gen_e_acsl_iter_13; - __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6", - "tests/arith/array.i",59); - __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6", - "tests/arith/array.i",59); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_30.blocking = 1; + __gen_e_acsl_assert_data_30.kind = "RTE"; + __gen_e_acsl_assert_data_30.pred_txt = "array_coercion: (int)3 <= (int)6"; + __gen_e_acsl_assert_data_30.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_30.fct = "arrays"; + __gen_e_acsl_assert_data_30.line = 59; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_30); + __gen_e_acsl_assert_data_29.blocking = 1; + __gen_e_acsl_assert_data_29.kind = "RTE"; + __gen_e_acsl_assert_data_29.pred_txt = "array_coercion: (int)3 <= (int)6"; + __gen_e_acsl_assert_data_29.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_29.fct = "arrays"; + __gen_e_acsl_assert_data_29.line = 59; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_29); __gen_e_acsl_iter_13 = 0; while (__gen_e_acsl_iter_13 < 3) { if (i[__gen_e_acsl_iter_13] != k[__gen_e_acsl_iter_13]) { @@ -410,19 +769,45 @@ void arrays(void) } } else __gen_e_acsl_ne_9 = 1; - __e_acsl_assert(__gen_e_acsl_ne_9,1,"Assertion","arrays", - "(int [3])i != (int [3])k","tests/arith/array.i",59); + __gen_e_acsl_assert_data_28.blocking = 1; + __gen_e_acsl_assert_data_28.kind = "Assertion"; + __gen_e_acsl_assert_data_28.pred_txt = "(int [3])i != (int [3])k"; + __gen_e_acsl_assert_data_28.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_28.fct = "arrays"; + __gen_e_acsl_assert_data_28.line = 59; + __e_acsl_assert(__gen_e_acsl_ne_9,& __gen_e_acsl_assert_data_28); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28); } - /*@ assert (int [3])i ≢ (int [3])k; */ ; + /*@ assert (int [3])i != (int [3])k; */ ; { int __gen_e_acsl_eq_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_31,"j", + (void *)(j)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_31,"k", + (void *)(k)); __gen_e_acsl_eq_5 = 1; if (1) { unsigned long __gen_e_acsl_iter_14; - __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6", - "tests/arith/array.i",60); - __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6", - "tests/arith/array.i",60); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_33.blocking = 1; + __gen_e_acsl_assert_data_33.kind = "RTE"; + __gen_e_acsl_assert_data_33.pred_txt = "array_coercion: (int)3 <= (int)6"; + __gen_e_acsl_assert_data_33.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_33.fct = "arrays"; + __gen_e_acsl_assert_data_33.line = 60; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_33); + __gen_e_acsl_assert_data_32.blocking = 1; + __gen_e_acsl_assert_data_32.kind = "RTE"; + __gen_e_acsl_assert_data_32.pred_txt = "array_coercion: (int)3 <= (int)6"; + __gen_e_acsl_assert_data_32.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_32.fct = "arrays"; + __gen_e_acsl_assert_data_32.line = 60; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_32); __gen_e_acsl_iter_14 = 0; while (__gen_e_acsl_iter_14 < 3) { if (j[__gen_e_acsl_iter_14] != k[__gen_e_acsl_iter_14]) { @@ -433,12 +818,26 @@ void arrays(void) } } else __gen_e_acsl_eq_5 = 0; - __e_acsl_assert(__gen_e_acsl_eq_5,1,"Assertion","arrays", - "(int [3])j == (int [3])k","tests/arith/array.i",60); + __gen_e_acsl_assert_data_31.blocking = 1; + __gen_e_acsl_assert_data_31.kind = "Assertion"; + __gen_e_acsl_assert_data_31.pred_txt = "(int [3])j == (int [3])k"; + __gen_e_acsl_assert_data_31.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_31.fct = "arrays"; + __gen_e_acsl_assert_data_31.line = 60; + __e_acsl_assert(__gen_e_acsl_eq_5,& __gen_e_acsl_assert_data_31); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31); } - /*@ assert (int [3])j ≡ (int [3])k; */ ; + /*@ assert (int [3])j == (int [3])k; */ ; { int __gen_e_acsl_ne_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_34, + "*((int (*)[2])l)", + (void *)(*((int (*)[2])l))); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_34, + "*((int (*)[2])m)", + (void *)(*((int (*)[2])m))); __gen_e_acsl_ne_10 = 0; if (1) { unsigned long __gen_e_acsl_iter_15; @@ -447,20 +846,46 @@ void arrays(void) { int __gen_e_acsl_valid_read_11; int __gen_e_acsl_valid_read_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35, + "&(*((int (*)[2])l))[__gen_e_acsl_iter_15]", + (void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_15])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_15]), sizeof(int), (void *)(*((int (*)[2])l)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_11,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_15])", - "tests/arith/array.i",61); + __gen_e_acsl_assert_data_35.blocking = 1; + __gen_e_acsl_assert_data_35.kind = "RTE"; + __gen_e_acsl_assert_data_35.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_15])"; + __gen_e_acsl_assert_data_35.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_35.fct = "arrays"; + __gen_e_acsl_assert_data_35.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_read_11, + & __gen_e_acsl_assert_data_35); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36, + "&(*((int (*)[2])m))[__gen_e_acsl_iter_15]", + (void *)(& (*((int (*)[2])m))[__gen_e_acsl_iter_15])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)(& (*((int (*)[2])m))[__gen_e_acsl_iter_15]), sizeof(int), (void *)(*((int (*)[2])m)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_12,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[2])m))[__gen_e_acsl_iter_15])", - "tests/arith/array.i",61); + __gen_e_acsl_assert_data_36.blocking = 1; + __gen_e_acsl_assert_data_36.kind = "RTE"; + __gen_e_acsl_assert_data_36.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])m))[__gen_e_acsl_iter_15])"; + __gen_e_acsl_assert_data_36.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_36.fct = "arrays"; + __gen_e_acsl_assert_data_36.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_read_12, + & __gen_e_acsl_assert_data_36); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36); if ((*((int (*)[2])l))[__gen_e_acsl_iter_15] != (*((int (*)[2])m))[__gen_e_acsl_iter_15]) { __gen_e_acsl_ne_10 = 1; break; @@ -470,13 +895,26 @@ void arrays(void) } } else __gen_e_acsl_ne_10 = 1; - __e_acsl_assert(__gen_e_acsl_ne_10,1,"Assertion","arrays", - "*((int (*)[2])l) != *((int (*)[2])m)", - "tests/arith/array.i",61); + __gen_e_acsl_assert_data_34.blocking = 1; + __gen_e_acsl_assert_data_34.kind = "Assertion"; + __gen_e_acsl_assert_data_34.pred_txt = "*((int (*)[2])l) != *((int (*)[2])m)"; + __gen_e_acsl_assert_data_34.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_34.fct = "arrays"; + __gen_e_acsl_assert_data_34.line = 61; + __e_acsl_assert(__gen_e_acsl_ne_10,& __gen_e_acsl_assert_data_34); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34); } - /*@ assert *((int (*)[2])l) ≢ *((int (*)[2])m); */ ; + /*@ assert *((int (*)[2])l) != *((int (*)[2])m); */ ; { int __gen_e_acsl_eq_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_37, + "*((int (*)[2])l)", + (void *)(*((int (*)[2])l))); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_37, + "*((int (*)[2])n)", + (void *)(*((int (*)[2])n))); __gen_e_acsl_eq_6 = 1; if (1) { unsigned long __gen_e_acsl_iter_16; @@ -485,20 +923,46 @@ void arrays(void) { int __gen_e_acsl_valid_read_13; int __gen_e_acsl_valid_read_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38, + "&(*((int (*)[2])l))[__gen_e_acsl_iter_16]", + (void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_16])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_38, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_13 = __e_acsl_valid_read((void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_16]), sizeof(int), (void *)(*((int (*)[2])l)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_13,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_16])", - "tests/arith/array.i",62); + __gen_e_acsl_assert_data_38.blocking = 1; + __gen_e_acsl_assert_data_38.kind = "RTE"; + __gen_e_acsl_assert_data_38.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_16])"; + __gen_e_acsl_assert_data_38.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_38.fct = "arrays"; + __gen_e_acsl_assert_data_38.line = 62; + __e_acsl_assert(__gen_e_acsl_valid_read_13, + & __gen_e_acsl_assert_data_38); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39, + "&(*((int (*)[2])n))[__gen_e_acsl_iter_16]", + (void *)(& (*((int (*)[2])n))[__gen_e_acsl_iter_16])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_39, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_14 = __e_acsl_valid_read((void *)(& (*((int (*)[2])n))[__gen_e_acsl_iter_16]), sizeof(int), (void *)(*((int (*)[2])n)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_14,1,"RTE","arrays", - "mem_access: \\valid_read(&(*((int (*)[2])n))[__gen_e_acsl_iter_16])", - "tests/arith/array.i",62); + __gen_e_acsl_assert_data_39.blocking = 1; + __gen_e_acsl_assert_data_39.kind = "RTE"; + __gen_e_acsl_assert_data_39.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])n))[__gen_e_acsl_iter_16])"; + __gen_e_acsl_assert_data_39.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_39.fct = "arrays"; + __gen_e_acsl_assert_data_39.line = 62; + __e_acsl_assert(__gen_e_acsl_valid_read_14, + & __gen_e_acsl_assert_data_39); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39); if ((*((int (*)[2])l))[__gen_e_acsl_iter_16] != (*((int (*)[2])n))[__gen_e_acsl_iter_16]) { __gen_e_acsl_eq_6 = 0; break; @@ -508,11 +972,16 @@ void arrays(void) } } else __gen_e_acsl_eq_6 = 0; - __e_acsl_assert(__gen_e_acsl_eq_6,1,"Assertion","arrays", - "*((int (*)[2])l) == *((int (*)[2])n)", - "tests/arith/array.i",62); + __gen_e_acsl_assert_data_37.blocking = 1; + __gen_e_acsl_assert_data_37.kind = "Assertion"; + __gen_e_acsl_assert_data_37.pred_txt = "*((int (*)[2])l) == *((int (*)[2])n)"; + __gen_e_acsl_assert_data_37.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_37.fct = "arrays"; + __gen_e_acsl_assert_data_37.line = 62; + __e_acsl_assert(__gen_e_acsl_eq_6,& __gen_e_acsl_assert_data_37); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37); } - /*@ assert *((int (*)[2])l) ≡ *((int (*)[2])n); */ ; + /*@ assert *((int (*)[2])l) == *((int (*)[2])n); */ ; __e_acsl_delete_block((void *)(& n)); __e_acsl_delete_block((void *)(& m)); __e_acsl_delete_block((void *)(& l)); @@ -549,12 +1018,37 @@ int main(void) i_0 ++; } } - __e_acsl_assert(T1[0] == T2[0],1,"Assertion","main","T1[0] == T2[0]", - "tests/arith/array.i",110); - /*@ assert T1[0] ≡ T2[0]; */ ; - __e_acsl_assert(T1[1] != T2[1],1,"Assertion","main","T1[1] != T2[1]", - "tests/arith/array.i",111); - /*@ assert T1[1] ≢ T2[1]; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"T1[0]",0,T1[0]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"T2[0]",0,T2[0]); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "T1[0] == T2[0]"; + __gen_e_acsl_assert_data.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 110; + __e_acsl_assert(T1[0] == T2[0],& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert T1[0] == T2[0]; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"T1[1]",0, + T1[1]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"T2[1]",0, + T2[1]); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "T1[1] != T2[1]"; + __gen_e_acsl_assert_data_2.file = "tests/arith/array.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 111; + __e_acsl_assert(T1[1] != T2[1],& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert T1[1] != T2[1]; */ ; arrays(); vlas(3); __retres = 0; diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c index 3f1cdbd82498918ba38a0ea29a2adb92c0169da4..bb0e390a3b892fb670ee7046c4ad4eba4819fb2e 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c @@ -1,11 +1,11 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int A = 0; -/*@ ensures \at(A,Post) ≡ 3; */ +/*@ ensures \at(A,Post) == 3; */ void __gen_e_acsl_f(void); void f(void) @@ -22,18 +22,64 @@ void f(void) __gen_e_acsl_at_2 = A; A = 2; } - __e_acsl_assert(__gen_e_acsl_at == 0,1,"Assertion","f","\\at(A,Pre) == 0", - "tests/arith/at.i",12); - /*@ assert \at(A,Pre) ≡ 0; */ ; - __e_acsl_assert(__gen_e_acsl_at_2 == 1,1,"Assertion","f","\\at(A,F) == 1", - "tests/arith/at.i",13); - /*@ assert \at(A,F) ≡ 1; */ ; - __e_acsl_assert(A == 2,1,"Assertion","f","\\at(A,Here) == 2", - "tests/arith/at.i",14); - /*@ assert \at(A,Here) ≡ 2; */ ; - __e_acsl_assert(__gen_e_acsl_at_4 == 0,1,"Assertion","f", - "\\at(\\at(A,Pre),F) == 0","tests/arith/at.i",15); - /*@ assert \at(\at(A,Pre),F) ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\at(A,Pre)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\at(A,Pre) == 0"; + __gen_e_acsl_assert_data.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert \at(A,Pre) == 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\at(A,F)",0, + __gen_e_acsl_at_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\at(A,F) == 1"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_at_2 == 1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert \at(A,F) == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"A",0,A); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\at(A,Here) == 2"; + __gen_e_acsl_assert_data_3.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(A == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert \at(A,Here) == 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\at(\\at(A,Pre),F)",0,__gen_e_acsl_at_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\at(\\at(A,Pre),F) == 0"; + __gen_e_acsl_assert_data_4.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_4.fct = "f"; + __gen_e_acsl_assert_data_4.line = 15; + __e_acsl_assert(__gen_e_acsl_at_4 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert \at(\at(A,Pre),F) == 0; */ ; A = 3; return; } @@ -55,19 +101,43 @@ void g(int *p, int *q) { { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q,sizeof(int), (void *)q, (void *)(& q)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","g", - "mem_access: \\valid_read(q)","tests/arith/at.i",31); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(q)"; + __gen_e_acsl_assert_data_5.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_5.fct = "g"; + __gen_e_acsl_assert_data_5.line = 31; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gen_e_acsl_at_3 = *q; } { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)q,sizeof(int), (void *)q,(void *)(& q)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g", - "mem_access: \\valid_read(q)","tests/arith/at.i",29); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(q)"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 29; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_at = *q; } __e_acsl_initialize((void *)p,sizeof(int)); @@ -81,40 +151,87 @@ void g(int *p, int *q) { { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_at",0,__gen_e_acsl_at); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at), sizeof(int),(void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","g", - "mem_access: \\valid_read(p + __gen_e_acsl_at)", - "tests/arith/at.i",29); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p + __gen_e_acsl_at)"; + __gen_e_acsl_assert_data_3.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_3.fct = "g"; + __gen_e_acsl_assert_data_3.line = 29; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gen_e_acsl_at_2 = *(p + __gen_e_acsl_at); } A = 4; } - __e_acsl_assert(__gen_e_acsl_at_2 == 2,1,"Assertion","g", - "\\at(*(p + \\at(*q,__invalid_label)),L2) == 2", - "tests/arith/at.i",29); - /*@ assert \at(*(p + \at(*q,__invalid_label)),L2) ≡ 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\at(*(p + \\at(*q,__invalid_label)),L2)", + 0,__gen_e_acsl_at_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\at(*(p + \\at(*q,__invalid_label)),L2) == 2"; + __gen_e_acsl_assert_data.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 29; + __e_acsl_assert(__gen_e_acsl_at_2 == 2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert \at(*(p + \at(*q,__invalid_label)),L2) == 2; */ ; L3: - /*@ assert \at(*(p + \at(*q,__invalid_label)),Here) ≡ 2; */ + /*@ assert \at(*(p + \at(*q,__invalid_label)),Here) == 2; */ { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "*(p + \\at(*q,__invalid_label))",0, + *(p + __gen_e_acsl_at_3)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p",(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_at_3",0,__gen_e_acsl_at_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at_3), sizeof(int),(void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","g", - "mem_access: \\valid_read(p + __gen_e_acsl_at_3)", - "tests/arith/at.i",31); - __e_acsl_assert(*(p + __gen_e_acsl_at_3) == 2,1,"Assertion","g", - "\\at(*(p + \\at(*q,__invalid_label)),Here) == 2", - "tests/arith/at.i",31); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(p + __gen_e_acsl_at_3)"; + __gen_e_acsl_assert_data_6.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_6.fct = "g"; + __gen_e_acsl_assert_data_6.line = 31; + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\at(*(p + \\at(*q,__invalid_label)),Here) == 2"; + __gen_e_acsl_assert_data_4.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_4.fct = "g"; + __gen_e_acsl_assert_data_4.line = 31; + __e_acsl_assert(*(p + __gen_e_acsl_at_3) == 2, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); return; } -/*@ ensures \result ≡ \old(x); */ +/*@ ensures \result == \old(x); */ int __gen_e_acsl_h(int x); int h(int x) @@ -138,28 +255,78 @@ int main(void) __e_acsl_full_init((void *)(& x)); x = __gen_e_acsl_h(0); L: - /*@ assert x ≡ 0; */ + /*@ assert x == 0; */ { __gen_e_acsl_at_3 = (long)x; __gen_e_acsl_at_2 = x + 1L; __gen_e_acsl_at = x; - __e_acsl_assert(x == 0,1,"Assertion","main","x == 0","tests/arith/at.i", - 48); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x == 0"; + __gen_e_acsl_assert_data.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 48; + __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } } __e_acsl_full_init((void *)(& x)); x = 1; __e_acsl_full_init((void *)(& x)); x = 2; __gen_e_acsl_f(); - __e_acsl_assert(__gen_e_acsl_at == 0,1,"Assertion","main", - "\\at(x,__invalid_label) == 0","tests/arith/at.i",54); - /*@ assert \at(x,__invalid_label) ≡ 0; */ ; - __e_acsl_assert(__gen_e_acsl_at_2 == 1L,1,"Assertion","main", - "\\at(x + 1,__invalid_label) == 1","tests/arith/at.i",55); - /*@ assert \at(x + 1,__invalid_label) ≡ 1; */ ; - __e_acsl_assert(__gen_e_acsl_at_3 + 1L == 1L,1,"Assertion","main", - "\\at(x,__invalid_label) + 1 == 1","tests/arith/at.i",56); - /*@ assert \at(x,__invalid_label) + 1 ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\at(x,__invalid_label)",0,__gen_e_acsl_at); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\at(x,__invalid_label) == 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 54; + __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert \at(x,__invalid_label) == 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_3, + "\\at(x + 1,__invalid_label)",0, + __gen_e_acsl_at_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\at(x + 1,__invalid_label) == 1"; + __gen_e_acsl_assert_data_3.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 55; + __e_acsl_assert(__gen_e_acsl_at_2 == 1L,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert \at(x + 1,__invalid_label) == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4, + "\\at(x,__invalid_label)",0, + __gen_e_acsl_at_3); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\at(x,__invalid_label) + 1 == 1"; + __gen_e_acsl_assert_data_4.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 56; + __e_acsl_assert(__gen_e_acsl_at_3 + 1L == 1L, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert \at(x,__invalid_label) + 1 == 1; */ ; g(t,& x); __retres = 0; __e_acsl_delete_block((void *)(t)); @@ -168,7 +335,7 @@ int main(void) return __retres; } -/*@ ensures \result ≡ \old(x); */ +/*@ ensures \result == \old(x); */ int __gen_e_acsl_h(int x) { int __gen_e_acsl_at; @@ -177,22 +344,46 @@ int __gen_e_acsl_h(int x) __e_acsl_store_block((void *)(& x),(size_t)4); __gen_e_acsl_at = x; __retres = h(x); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","h", - "\\result == \\old(x)","tests/arith/at.i",38); - __e_acsl_delete_block((void *)(& x)); - __e_acsl_delete_block((void *)(& __retres)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\result == \\old(x)"; + __gen_e_acsl_assert_data.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data.fct = "h"; + __gen_e_acsl_assert_data.line = 38; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_delete_block((void *)(& x)); + __e_acsl_delete_block((void *)(& __retres)); + return __retres; + } } -/*@ ensures \at(A,Post) ≡ 3; */ +/*@ ensures \at(A,Post) == 3; */ void __gen_e_acsl_f(void) { int __gen_e_acsl_at; f(); - __gen_e_acsl_at = A; - __e_acsl_assert(__gen_e_acsl_at == 3,1,"Postcondition","f", - "\\at(A,Post) == 3","tests/arith/at.i",7); - return; + { + __gen_e_acsl_at = A; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\at(A,Post)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\at(A,Post) == 3"; + __gen_e_acsl_assert_data.file = "tests/arith/at.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_at == 3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + return; + } } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c b/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c index 2ea404238aff80f36a69bb2a84125a597a386d27..598d854dd2485ea4ca8fb88297a960a6241473ba 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c @@ -1,13 +1,13 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ ensures - ∀ ℤ n; - 1 < n ≤ 3 ⇒ \old(*(t + n) ≡ 12) ∧ \old(*(t + (n - 1)) > 5); - ensures \let m = 4; \old(*(t + m) ≡ -4) ∧ \old(*(t + (m - 4))) ≡ 9; + \forall integer n; + 1 < n <= 3 ==> \old(*(t + n) == 12) && \old(*(t + (n - 1)) > 5); + ensures \let m = 4; \old(*(t + m) == -4) && \old(*(t + (m - 4))) == 9; */ void __gen_e_acsl_f(int *t); @@ -41,20 +41,35 @@ void g(void) { int __gen_e_acsl_exists; int __gen_e_acsl_w; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_exists = 0; __gen_e_acsl_w = 3; while (1) { if (__gen_e_acsl_w < 6) ; else break; { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_at", + (void *)__gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_w",0,__gen_e_acsl_w); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(__gen_e_acsl_at + (int)( __gen_e_acsl_w - 3L)), sizeof(int), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g", - "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_w - 3))", - "tests/arith/at_on-purely-logic-variables.c",16); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_w - 3))"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); if (! *(__gen_e_acsl_at + (__gen_e_acsl_w - 3))) ; else { __gen_e_acsl_exists = 1; @@ -64,11 +79,19 @@ void g(void) __gen_e_acsl_w ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","g", - "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)", - "tests/arith/at_on-purely-logic-variables.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)", + 0,__gen_e_acsl_exists); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)"; + __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ∃ ℤ w; 3 ≤ w < 6 ∧ \at(m + w ≡ 12,Q); */ ; + /*@ assert \exists integer w; 3 <= w < 6 && \at(m + w == 12,Q); */ ; free((void *)__gen_e_acsl_at); return; } @@ -205,36 +228,73 @@ int main(void) { int __gen_e_acsl_i; int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_i = 3; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\at(n + i == 10,L)",0, + *(__gen_e_acsl_at + 0)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_at",(void *)__gen_e_acsl_at); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(__gen_e_acsl_at + 0), sizeof(int), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(__gen_e_acsl_at + 0)", - "tests/arith/at_on-purely-logic-variables.c",28); - __e_acsl_assert(*(__gen_e_acsl_at + 0),1,"Assertion","main", - "\\let i = 3; \\at(n + i == 10,L)", - "tests/arith/at_on-purely-logic-variables.c",28); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + 0)"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 28; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\let i = 3; \\at(n + i == 10,L)"; + __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert(*(__gen_e_acsl_at + 0),& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \let i = 3; \at(n + i ≡ 10,L); */ ; + /*@ assert \let i = 3; \at(n + i == 10,L); */ ; { int __gen_e_acsl_exists; int __gen_e_acsl_j; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_exists = 0; __gen_e_acsl_j = 2; while (1) { if (__gen_e_acsl_j < 5) ; else break; { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_at_2", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_j",0,__gen_e_acsl_j); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_2 + (int)( __gen_e_acsl_j - 2L)), sizeof(int), (void *)__gen_e_acsl_at_2, (void *)(& __gen_e_acsl_at_2)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_j - 2))", - "tests/arith/at_on-purely-logic-variables.c",29); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_j - 2))"; + __gen_e_acsl_assert_data_4.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 29; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); if (! *(__gen_e_acsl_at_2 + (__gen_e_acsl_j - 2))) ; else { __gen_e_acsl_exists = 1; @@ -244,15 +304,25 @@ int main(void) __gen_e_acsl_j ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main", - "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)", - "tests/arith/at_on-purely-logic-variables.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)", + 0,__gen_e_acsl_exists); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)"; + __gen_e_acsl_assert_data_3.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 29; + __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ∃ ℤ j; 2 ≤ j < 5 ∧ \at(n + j ≡ 11,L); */ ; + /*@ assert \exists integer j; 2 <= j < 5 && \at(n + j == 11,L); */ ; { int __gen_e_acsl_k; int __gen_e_acsl_exists_2; int __gen_e_acsl_u; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_k = -7; __gen_e_acsl_exists_2 = 0; __gen_e_acsl_u = 9; @@ -267,6 +337,17 @@ int main(void) if (__gen_e_acsl_v <= 6) ; else break; { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_at_3", + (void *)__gen_e_acsl_at_3); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_u",0,__gen_e_acsl_u); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_v",0,__gen_e_acsl_v); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)( __gen_e_acsl_at_3 + (int)( (long)((int)( @@ -276,9 +357,15 @@ int main(void) sizeof(int), (void *)__gen_e_acsl_at_3, (void *)(& __gen_e_acsl_at_3)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main", - "mem_access:\n \\valid_read(__gen_e_acsl_at_3 +\n (int)((int)((int)(__gen_e_acsl_u - 9) * 11) +\n (int)(__gen_e_acsl_v - -4)))", - "tests/arith/at_on-purely-logic-variables.c",34); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access:\n \\valid_read(__gen_e_acsl_at_3 +\n (int)((int)((int)(__gen_e_acsl_u - 9) * 11) +\n (int)(__gen_e_acsl_v - -4)))"; + __gen_e_acsl_assert_data_6.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 34; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); if (*(__gen_e_acsl_at_3 + ((__gen_e_acsl_u - 9) * 11 + (__gen_e_acsl_v - -4)))) ; else { @@ -298,33 +385,63 @@ int main(void) __gen_e_acsl_u ++; } e_acsl_end_loop4: ; - __e_acsl_assert(__gen_e_acsl_exists_2,1,"Assertion","main", - "\\let k = -7;\n\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))", - "tests/arith/at_on-purely-logic-variables.c",31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))", + 0,__gen_e_acsl_exists_2); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\let k = -7;\n\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))"; + __gen_e_acsl_assert_data_5.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 31; + __e_acsl_assert(__gen_e_acsl_exists_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \let k = -7; - ∃ ℤ u; - 9 ≤ u < 21 ∧ - (∀ ℤ v; -5 < v ≤ 6 ⇒ \at((u > 0? n + k: u + v) > 0,K)); + \exists integer u; + 9 <= u < 21 && + (\forall integer v; -5 < v <= 6 ==> \at((u > 0? n + k: u + v) > 0,K)); */ ; { int __gen_e_acsl_i_3; int __gen_e_acsl_valid_read_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gen_e_acsl_i_3 = 3; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_7, + "\\at(n + i,L)",0,*(__gen_e_acsl_at_4 + 0)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "__gen_e_acsl_at_4", + (void *)__gen_e_acsl_at_4); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_4 + 0), sizeof(long), (void *)__gen_e_acsl_at_4, (void *)(& __gen_e_acsl_at_4)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main", - "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)", - "tests/arith/at_on-purely-logic-variables.c",38); - __e_acsl_assert(*(__gen_e_acsl_at_4 + 0) == 10L,1,"Assertion","main", - "\\let i = 3; \\at(n + i,L) == 10", - "tests/arith/at_on-purely-logic-variables.c",38); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)"; + __gen_e_acsl_assert_data_8.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 38; + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\let i = 3; \\at(n + i,L) == 10"; + __gen_e_acsl_assert_data_7.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 38; + __e_acsl_assert(*(__gen_e_acsl_at_4 + 0) == 10L, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert \let i = 3; \at(n + i,L) ≡ 10; */ ; + /*@ assert \let i = 3; \at(n + i,L) == 10; */ ; unsigned int m = (unsigned int)3; G: { @@ -343,20 +460,37 @@ int main(void) { int __gen_e_acsl_exists_3; int __gen_e_acsl_k_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_exists_3 = 0; __gen_e_acsl_k_3 = -9 + 1; while (1) { if (__gen_e_acsl_k_3 < 0) ; else break; { int __gen_e_acsl_valid_read_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "__gen_e_acsl_at_5", + (void *)__gen_e_acsl_at_5); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "__gen_e_acsl_k_3",0,__gen_e_acsl_k_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_5 + (int)( __gen_e_acsl_k_3 - -8L)), sizeof(long), (void *)__gen_e_acsl_at_5, (void *)(& __gen_e_acsl_at_5)); - __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","main", - "mem_access: \\valid_read(__gen_e_acsl_at_5 + (int)(__gen_e_acsl_k_3 - -8))", - "tests/arith/at_on-purely-logic-variables.c",42); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_5 + (int)(__gen_e_acsl_k_3 - -8))"; + __gen_e_acsl_assert_data_10.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 42; + __e_acsl_assert(__gen_e_acsl_valid_read_5, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); if (! (*(__gen_e_acsl_at_5 + (__gen_e_acsl_k_3 - -8)) == 0L)) ; else { @@ -367,14 +501,24 @@ int main(void) __gen_e_acsl_k_3 ++; } e_acsl_end_loop5: ; - __e_acsl_assert(__gen_e_acsl_exists_3,1,"Assertion","main", - "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0", - "tests/arith/at_on-purely-logic-variables.c",42); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0", + 0,__gen_e_acsl_exists_3); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0"; + __gen_e_acsl_assert_data_9.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 42; + __e_acsl_assert(__gen_e_acsl_exists_3,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ∃ ℤ k; -9 < k < 0 ∧ \at(m + k,G) ≡ 0; */ ; + /*@ assert \exists integer k; -9 < k < 0 && \at(m + k,G) == 0; */ ; { int __gen_e_acsl_exists_4; int __gen_e_acsl_u_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_exists_4 = 0; __gen_e_acsl_u_3 = 9; while (1) { @@ -393,6 +537,19 @@ int main(void) } { int __gen_e_acsl_valid_read_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "__gen_e_acsl_at_6", + (void *)__gen_e_acsl_at_6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "__gen_e_acsl_u_3",0, + __gen_e_acsl_u_3); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "__gen_e_acsl_v_3",0, + __gen_e_acsl_v_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)( __gen_e_acsl_at_6 + (int)( (long)((int)( @@ -402,9 +559,15 @@ int main(void) sizeof(int), (void *)__gen_e_acsl_at_6, (void *)(& __gen_e_acsl_at_6)); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main", - "mem_access:\n \\valid_read(__gen_e_acsl_at_6 +\n (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) +\n (int)(__gen_e_acsl_v_3 - -4)))", - "tests/arith/at_on-purely-logic-variables.c",46); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "mem_access:\n \\valid_read(__gen_e_acsl_at_6 +\n (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) +\n (int)(__gen_e_acsl_v_3 - -4)))"; + __gen_e_acsl_assert_data_12.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 46; + __e_acsl_assert(__gen_e_acsl_valid_read_6, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); /*@ assert Eva: initialization: \initialized(__gen_e_acsl_at_6 + @@ -430,15 +593,24 @@ int main(void) __gen_e_acsl_u_3 ++; } e_acsl_end_loop7: ; - __e_acsl_assert(__gen_e_acsl_exists_4,1,"Assertion","main", - "\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))", - "tests/arith/at_on-purely-logic-variables.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))", + 0,__gen_e_acsl_exists_4); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\exists integer u;\n 9 <= u < 21 &&\n (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))"; + __gen_e_acsl_assert_data_11.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 44; + __e_acsl_assert(__gen_e_acsl_exists_4,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert - ∃ ℤ u; - 9 ≤ u < 21 ∧ - (∀ ℤ v; -5 < v ≤ (u < 15? u + 6: 3) ⇒ \at((n + u) + v > 0,K)); + \exists integer u; + 9 <= u < 21 && + (\forall integer v; + -5 < v <= (u < 15? u + 6: 3) ==> \at((n + u) + v > 0,K)); */ ; int t[5] = {9, 12, 12, 12, -4}; @@ -449,6 +621,8 @@ int main(void) { int __gen_e_acsl_exists_5; int __gen_e_acsl_u_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gen_e_acsl_exists_5 = 0; __gen_e_acsl_u_5 = 10; while (1) { @@ -473,6 +647,22 @@ int main(void) if (__gen_e_acsl_w <= 200) ; else break; { int __gen_e_acsl_valid_read_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "__gen_e_acsl_at_7", + (void *)__gen_e_acsl_at_7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "__gen_e_acsl_u_5",0, + __gen_e_acsl_u_5); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "__gen_e_acsl_v_5",0, + __gen_e_acsl_v_5); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "__gen_e_acsl_w",0, + __gen_e_acsl_w); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)( __gen_e_acsl_at_7 + (int)( (long)((int)( @@ -485,10 +675,15 @@ int main(void) sizeof(int), (void *)__gen_e_acsl_at_7, (void *)(& __gen_e_acsl_at_7)); - __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","main", - "mem_access:\n \\valid_read(__gen_e_acsl_at_7 +\n (int)((int)((int)(__gen_e_acsl_u_5 - 10) * 300) +\n (int)((int)((int)(__gen_e_acsl_v_5 - -9) * 100) +\n (int)(__gen_e_acsl_w - 101))))", - "tests/arith/at_on-purely-logic-variables.c", - 59); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "RTE"; + __gen_e_acsl_assert_data_14.pred_txt = "mem_access:\n \\valid_read(__gen_e_acsl_at_7 +\n (int)((int)((int)(__gen_e_acsl_u_5 - 10) * 300) +\n (int)((int)((int)(__gen_e_acsl_v_5 - -9) * 100) +\n (int)(__gen_e_acsl_w - 101))))"; + __gen_e_acsl_assert_data_14.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 59; + __e_acsl_assert(__gen_e_acsl_valid_read_7, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); if (! *(__gen_e_acsl_at_7 + ((__gen_e_acsl_u_5 - 10) * 300 + ( (__gen_e_acsl_v_5 - -9) * 100 + ( __gen_e_acsl_w - 101))))) @@ -519,25 +714,33 @@ int main(void) __gen_e_acsl_u_5 ++; } e_acsl_end_loop10: ; - __e_acsl_assert(__gen_e_acsl_exists_5,1,"Assertion","main", - "\\exists integer u;\n 10 <= u < 20 &&\n (\\exists integer v;\n -10 < v <= -5 + (\\let u = -2; u) &&\n (\\exists integer w;\n 100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))", - "tests/arith/at_on-purely-logic-variables.c",56); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\exists integer u;\n 10 <= u < 20 &&\n (\\exists integer v;\n -10 < v <= -5 + (\\let u = -2; u) &&\n (\\exists integer w;\n 100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))", + 0,__gen_e_acsl_exists_5); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\exists integer u;\n 10 <= u < 20 &&\n (\\exists integer v;\n -10 < v <= -5 + (\\let u = -2; u) &&\n (\\exists integer w;\n 100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))"; + __gen_e_acsl_assert_data_13.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 56; + __e_acsl_assert(__gen_e_acsl_exists_5,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } /*@ assert - ∃ ℤ u; - 10 ≤ u < 20 ∧ - (∃ ℤ v; - -10 < v ≤ -5 + (\let u = -2; u) ∧ - (∃ ℤ w; - 100 < w ≤ 200 ∧ - \at((((n - u) + (\let u = 42; u)) + v) + w > 0,K))); + \exists integer u; + 10 <= u < 20 && + (\exists integer v; + -10 < v <= -5 + (\let u = -2; u) && + (\exists integer w; + 100 < w <= 200 && \at((((n - u) + (\let u = 42; u)) + v) + w > 0,K))); */ ; - /*@ assert ∃ ℤ j; 2 ≤ j < 10000000000000000 ∧ \at(n + j ≡ 11,L); + /*@ + assert \exists integer j; 2 <= j < 10000000000000000 && \at(n + j == 11,L); */ ; - /*@ assert \let i = n; \at(n + i ≡ 10,L); */ ; + /*@ assert \let i = n; \at(n + i == 10,L); */ ; __retres = 0; __e_acsl_delete_block((void *)(t)); __e_acsl_delete_block((void *)(& n)); @@ -553,9 +756,9 @@ int main(void) } /*@ ensures - ∀ ℤ n; - 1 < n ≤ 3 ⇒ \old(*(t + n) ≡ 12) ∧ \old(*(t + (n - 1)) > 5); - ensures \let m = 4; \old(*(t + m) ≡ -4) ∧ \old(*(t + (m - 4))) ≡ 9; + \forall integer n; + 1 < n <= 3 ==> \old(*(t + n) == 12) && \old(*(t + (n - 1)) > 5); + ensures \let m = 4; \old(*(t + m) == -4) && \old(*(t + (m - 4))) == 9; */ void __gen_e_acsl_f(int *t) { @@ -573,13 +776,26 @@ void __gen_e_acsl_f(int *t) __gen_e_acsl_m_3 = 4; { int __gen_e_acsl_valid_read_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "__gen_e_acsl_m_3",0,__gen_e_acsl_m_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)(t + (int)( __gen_e_acsl_m_3 - 4L)), sizeof(int),(void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","f", - "mem_access: \\valid_read(t + (int)(__gen_e_acsl_m_3 - 4))", - "tests/arith/at_on-purely-logic-variables.c",8); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(t + (int)(__gen_e_acsl_m_3 - 4))"; + __gen_e_acsl_assert_data_9.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_9.fct = "f"; + __gen_e_acsl_assert_data_9.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_7,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); *(__gen_e_acsl_at_4 + 0) = *(t + (__gen_e_acsl_m_3 - 4)); } } @@ -588,12 +804,25 @@ void __gen_e_acsl_f(int *t) __gen_e_acsl_m_2 = 4; { int __gen_e_acsl_valid_read_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_m_2",0,__gen_e_acsl_m_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(t + __gen_e_acsl_m_2), sizeof(int),(void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","f", - "mem_access: \\valid_read(t + __gen_e_acsl_m_2)", - "tests/arith/at_on-purely-logic-variables.c",8); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_m_2)"; + __gen_e_acsl_assert_data_7.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_7.fct = "f"; + __gen_e_acsl_assert_data_7.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); *(__gen_e_acsl_at_3 + 0) = *(t + __gen_e_acsl_m_2) == -4; } } @@ -604,14 +833,28 @@ void __gen_e_acsl_f(int *t) if (__gen_e_acsl_n_3 <= 3) ; else break; { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_n_3",0,__gen_e_acsl_n_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(t + (int)( __gen_e_acsl_n_3 - 1L)), sizeof(int), (void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","f", - "mem_access: \\valid_read(t + (int)(__gen_e_acsl_n_3 - 1))", - "tests/arith/at_on-purely-logic-variables.c",7); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(t + (int)(__gen_e_acsl_n_3 - 1))"; + __gen_e_acsl_assert_data_4.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_4.fct = "f"; + __gen_e_acsl_assert_data_4.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); *(__gen_e_acsl_at_2 + (__gen_e_acsl_n_3 - 2)) = *(t + (__gen_e_acsl_n_3 - 1)) > 5; } __gen_e_acsl_n_3 ++; @@ -624,12 +867,25 @@ void __gen_e_acsl_f(int *t) if (__gen_e_acsl_n_2 <= 3) ; else break; { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_n_2",0,__gen_e_acsl_n_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(t + __gen_e_acsl_n_2), sizeof(int),(void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(t + __gen_e_acsl_n_2)", - "tests/arith/at_on-purely-logic-variables.c",7); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_n_2)"; + __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); *(__gen_e_acsl_at + (__gen_e_acsl_n_2 - 2)) = *(t + __gen_e_acsl_n_2) == 12; } __gen_e_acsl_n_2 ++; @@ -642,6 +898,7 @@ void __gen_e_acsl_f(int *t) int __gen_e_acsl_m; int __gen_e_acsl_valid_read_6; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_n = 1 + 1; while (1) { @@ -649,24 +906,54 @@ void __gen_e_acsl_f(int *t) { int __gen_e_acsl_valid_read_2; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_at", + (void *)__gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_n",0,__gen_e_acsl_n); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(__gen_e_acsl_at + (int)( __gen_e_acsl_n - 2L)), sizeof(int), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f", - "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_n - 2))", - "tests/arith/at_on-purely-logic-variables.c",7); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_n - 2))"; + __gen_e_acsl_assert_data_3.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); if (*(__gen_e_acsl_at + (__gen_e_acsl_n - 2))) { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_at_2", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_n",0,__gen_e_acsl_n); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_2 + (int)( __gen_e_acsl_n - 2L)), sizeof(int), (void *)__gen_e_acsl_at_2, (void *)(& __gen_e_acsl_at_2)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","f", - "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_n - 2))", - "tests/arith/at_on-purely-logic-variables.c",7); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_n - 2))"; + __gen_e_acsl_assert_data_5.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_5.fct = "f"; + __gen_e_acsl_assert_data_5.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_read_4, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gen_e_acsl_and = *(__gen_e_acsl_at_2 + (__gen_e_acsl_n - 2)); } else __gen_e_acsl_and = 0; @@ -679,32 +966,78 @@ void __gen_e_acsl_f(int *t) __gen_e_acsl_n ++; } e_acsl_end_loop11: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Postcondition","f", - "\\forall integer n;\n 1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)", - "tests/arith/at_on-purely-logic-variables.c",6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall integer n;\n 1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\forall integer n;\n 1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)"; + __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gen_e_acsl_m = 4; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\old(*(t + m) == -4)",0, + *(__gen_e_acsl_at_3 + 0)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "__gen_e_acsl_at_3", + (void *)__gen_e_acsl_at_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_3 + 0), sizeof(int), (void *)__gen_e_acsl_at_3, (void *)(& __gen_e_acsl_at_3)); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","f", - "mem_access: \\valid_read(__gen_e_acsl_at_3 + 0)", - "tests/arith/at_on-purely-logic-variables.c",8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_3 + 0)"; + __gen_e_acsl_assert_data_8.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_8.fct = "f"; + __gen_e_acsl_assert_data_8.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); if (*(__gen_e_acsl_at_3 + 0)) { int __gen_e_acsl_valid_read_8; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\old(*(t + (m - 4)))",0, + *(__gen_e_acsl_at_4 + 0)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "__gen_e_acsl_at_4", + (void *)__gen_e_acsl_at_4); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_4 + 0), sizeof(int), (void *)__gen_e_acsl_at_4, (void *)(& __gen_e_acsl_at_4)); - __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","f", - "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)", - "tests/arith/at_on-purely-logic-variables.c",8); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)"; + __gen_e_acsl_assert_data_10.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_10.fct = "f"; + __gen_e_acsl_assert_data_10.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_8, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); __gen_e_acsl_and_2 = *(__gen_e_acsl_at_4 + 0) == 9; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Postcondition","f", - "\\let m = 4; \\old(*(t + m) == -4) && \\old(*(t + (m - 4))) == 9", - "tests/arith/at_on-purely-logic-variables.c",8); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "\\let m = 4; \\old(*(t + m) == -4) && \\old(*(t + (m - 4))) == 9"; + __gen_e_acsl_assert_data_6.file = "tests/arith/at_on-purely-logic-variables.c"; + __gen_e_acsl_assert_data_6.fct = "f"; + __gen_e_acsl_assert_data_6.line = 8; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_delete_block((void *)(& t)); free((void *)__gen_e_acsl_at); free((void *)__gen_e_acsl_at_2); diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c b/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c index 0f0702660796a74f1fbd1999fcb8183ab7a63c73..68ccbe8286b8e5f422925284cd0e2625e70f59fe 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c @@ -1,60 +1,202 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; void f_signed(int a, int b) { int c = a << 2; - __e_acsl_assert(0 <= a,1,"RTE","f_signed","shift: 0 <= a", - "tests/arith/bitwise.c",14); - __e_acsl_assert((long)c == a << 2L,1,"Assertion","f_signed","c == a << 2", - "tests/arith/bitwise.c",14); - /*@ assert c ≡ a << 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "shift: 0 <= a"; + __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_2.fct = "f_signed"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(0 <= a,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "c == a << 2"; + __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data.fct = "f_signed"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert((long)c == a << 2L,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert c == a << 2; */ ; int d = b >> 2; - __e_acsl_assert(0 <= b,1,"RTE","f_signed","shift: 0 <= b", - "tests/arith/bitwise.c",16); - __e_acsl_assert(d == b >> 2,1,"Assertion","f_signed","d == b >> 2", - "tests/arith/bitwise.c",16); - /*@ assert d ≡ b >> 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"d",0,d); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"b",0,b); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"b",0,b); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "shift: 0 <= b"; + __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_4.fct = "f_signed"; + __gen_e_acsl_assert_data_4.line = 16; + __e_acsl_assert(0 <= b,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "d == b >> 2"; + __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_3.fct = "f_signed"; + __gen_e_acsl_assert_data_3.line = 16; + __e_acsl_assert(d == b >> 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert d == b >> 2; */ ; int e = a | b; - __e_acsl_assert((long)e == (a | (long)b),1,"Assertion","f_signed", - "e == (a | b)","tests/arith/bitwise.c",18); - /*@ assert e ≡ (a | b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"e",0,e); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"b",0,b); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "e == (a | b)"; + __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_5.fct = "f_signed"; + __gen_e_acsl_assert_data_5.line = 18; + __e_acsl_assert((long)e == (a | (long)b),& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert e == (a | b); */ ; int f = a & b; - __e_acsl_assert((long)f == (a & (long)b),1,"Assertion","f_signed", - "f == (a & b)","tests/arith/bitwise.c",20); - /*@ assert f ≡ (a & b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"f",0,f); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"b",0,b); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "f == (a & b)"; + __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_6.fct = "f_signed"; + __gen_e_acsl_assert_data_6.line = 20; + __e_acsl_assert((long)f == (a & (long)b),& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert f == (a & b); */ ; int g = a ^ b; - __e_acsl_assert((long)g == (a ^ (long)b),1,"Assertion","f_signed", - "g == (a ^ b)","tests/arith/bitwise.c",22); - /*@ assert g ≡ (a ^ b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"g",0,g); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"b",0,b); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "g == (a ^ b)"; + __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_7.fct = "f_signed"; + __gen_e_acsl_assert_data_7.line = 22; + __e_acsl_assert((long)g == (a ^ (long)b),& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert g == (a ^ b); */ ; return; } void f_unsigned(unsigned int a, unsigned int b) { unsigned int c = a << 2u; - __e_acsl_assert((unsigned long)c == a << 2UL,1,"Assertion","f_unsigned", - "c == a << 2","tests/arith/bitwise.c",28); - /*@ assert c ≡ a << 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"c",0,c); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"a",0,a); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "c == a << 2"; + __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data.fct = "f_unsigned"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert((unsigned long)c == a << 2UL,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert c == a << 2; */ ; unsigned int d = b >> 2u; - __e_acsl_assert(d == b >> 2U,1,"Assertion","f_unsigned","d == b >> 2", - "tests/arith/bitwise.c",30); - /*@ assert d ≡ b >> 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"d",0,d); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"b",0,b); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "d == b >> 2"; + __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_2.fct = "f_unsigned"; + __gen_e_acsl_assert_data_2.line = 30; + __e_acsl_assert(d == b >> 2U,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert d == b >> 2; */ ; unsigned int e = a | b; - __e_acsl_assert(e == (a | b),1,"Assertion","f_unsigned","e == (a | b)", - "tests/arith/bitwise.c",32); - /*@ assert e ≡ (a | b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"e",0,e); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"a",0,a); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"b",0,b); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "e == (a | b)"; + __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_3.fct = "f_unsigned"; + __gen_e_acsl_assert_data_3.line = 32; + __e_acsl_assert(e == (a | b),& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert e == (a | b); */ ; unsigned int f = a & b; - __e_acsl_assert(f == (a & b),1,"Assertion","f_unsigned","f == (a & b)", - "tests/arith/bitwise.c",34); - /*@ assert f ≡ (a & b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"f",0,f); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"a",0,a); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"b",0,b); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "f == (a & b)"; + __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_4.fct = "f_unsigned"; + __gen_e_acsl_assert_data_4.line = 34; + __e_acsl_assert(f == (a & b),& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert f == (a & b); */ ; unsigned int g = a ^ b; - __e_acsl_assert(g == (a ^ b),1,"Assertion","f_unsigned","g == (a ^ b)", - "tests/arith/bitwise.c",36); - /*@ assert g ≡ (a ^ b); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"g",0,g); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"a",0,a); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"b",0,b); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "g == (a ^ b)"; + __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_5.fct = "f_unsigned"; + __gen_e_acsl_assert_data_5.line = 36; + __e_acsl_assert(g == (a ^ b),& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert g == (a ^ b); */ ; return; } @@ -71,39 +213,74 @@ void g_signed(int a, int b) int __gen_e_acsl_a_shiftl_guard; __e_acsl_mpz_t __gen_e_acsl_shiftl; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c); __gmpz_init_set_si(__gen_e_acsl_c,(long)c); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a); __gmpz_init_set_si(__gen_e_acsl_a,(long)a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"b",0,b); __gmpz_init_set_si(__gen_e_acsl_b,(long)b); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data, + & __gen_e_acsl_assert_data_3); __gen_e_acsl_b_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ b ≤ 18446744073709551615; + 0 <= b <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,1,"RTE","g_signed", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615", - "tests/arith/bitwise.c",42); + { + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615"; + __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_3.fct = "g_signed"; + __gen_e_acsl_assert_data_3.line = 42; + __e_acsl_assert(__gen_e_acsl_b_shiftl_guard, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __gen_e_acsl_b_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b)); __gmpz_init_set_si(__gen_e_acsl_,0L); __gen_e_acsl_a_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gmpz_init(__gen_e_acsl_shiftl); - /*@ assert E_ACSL: a ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,1,"RTE","g_signed", - "a >= 0","tests/arith/bitwise.c",42); + /*@ assert E_ACSL: a >= 0; */ + { + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "a >= 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_2.fct = "g_signed"; + __gen_e_acsl_assert_data_2.line = 42; + __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl, (__e_acsl_mpz_struct const *)(__gen_e_acsl_a), __gen_e_acsl_b_shiftl_coerced); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_c), (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","g_signed", - "c == a << b","tests/arith/bitwise.c",42); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "c == a << b"; + __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data.fct = "g_signed"; + __gen_e_acsl_assert_data.line = 42; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_c); __gmpz_clear(__gen_e_acsl_a); __gmpz_clear(__gen_e_acsl_b); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_shiftl); } - /*@ assert c ≡ a << b; */ ; + /*@ assert c == a << b; */ ; int d = a >> b; { __e_acsl_mpz_t __gen_e_acsl_d; @@ -115,39 +292,75 @@ void g_signed(int a, int b) int __gen_e_acsl_a_shiftr_guard; __e_acsl_mpz_t __gen_e_acsl_shiftr; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"d",0,d); __gmpz_init_set_si(__gen_e_acsl_d,(long)d); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"a",0,a); __gmpz_init_set_si(__gen_e_acsl_a_2,(long)a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"b",0,b); __gmpz_init_set_si(__gen_e_acsl_b_2,(long)b); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4, + & __gen_e_acsl_assert_data_6); __gen_e_acsl_b_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2)); /*@ assert E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t: - 0 ≤ b ≤ 18446744073709551615; + 0 <= b <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,1,"RTE","g_signed", - "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615", - "tests/arith/bitwise.c",44); + { + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615"; + __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_6.fct = "g_signed"; + __gen_e_acsl_assert_data_6.line = 44; + __e_acsl_assert(__gen_e_acsl_b_shiftr_guard, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } __gen_e_acsl_b_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2)); __gmpz_init_set_si(__gen_e_acsl__2,0L); __gen_e_acsl_a_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); __gmpz_init(__gen_e_acsl_shiftr); - /*@ assert E_ACSL: a ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,1,"RTE","g_signed", - "a >= 0","tests/arith/bitwise.c",44); + /*@ assert E_ACSL: a >= 0; */ + { + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "a >= 0"; + __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_5.fct = "g_signed"; + __gen_e_acsl_assert_data_5.line = 44; + __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr, (__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2), __gen_e_acsl_b_shiftr_coerced); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_d), (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","g_signed", - "d == a >> b","tests/arith/bitwise.c",44); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "d == a >> b"; + __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_4.fct = "g_signed"; + __gen_e_acsl_assert_data_4.line = 44; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_d); __gmpz_clear(__gen_e_acsl_a_2); __gmpz_clear(__gen_e_acsl_b_2); __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_shiftr); } - /*@ assert d ≡ a >> b; */ ; + /*@ assert d == a >> b; */ ; { __e_acsl_mpz_t __gen_e_acsl__3; __e_acsl_mpz_t __gen_e_acsl__4; @@ -158,6 +371,12 @@ void g_signed(int a, int b) int __gen_e_acsl_shiftl_guard; __e_acsl_mpz_t __gen_e_acsl_shiftl_2; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__3,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__4,1L); __gmpz_init(__gen_e_acsl_add); @@ -167,35 +386,53 @@ void g_signed(int a, int b) __gen_e_acsl_cst_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 1 ≤ 18446744073709551615; + 0 <= 1 <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,1,"RTE","g_signed", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615", - "tests/arith/bitwise.c",46); + { + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615"; + __gen_e_acsl_assert_data_9.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_9.fct = "g_signed"; + __gen_e_acsl_assert_data_9.line = 46; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard, + & __gen_e_acsl_assert_data_9); + } __gen_e_acsl_cst_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); __gmpz_init_set_si(__gen_e_acsl__5,0L); __gen_e_acsl_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gmpz_init(__gen_e_acsl_shiftl_2); - /*@ assert E_ACSL: 18446744073709551615ULL + 1 ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,1,"RTE","g_signed", - "18446744073709551615ULL + 1 >= 0", - "tests/arith/bitwise.c",46); + /*@ assert E_ACSL: 18446744073709551615ULL + 1 >= 0; */ + { + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "18446744073709551615ULL + 1 >= 0"; + __gen_e_acsl_assert_data_8.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_8.fct = "g_signed"; + __gen_e_acsl_assert_data_8.line = 46; + __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0, + & __gen_e_acsl_assert_data_8); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add), __gen_e_acsl_cst_shiftl_coerced); __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","g_signed", - "(18446744073709551615ULL + 1) << 1 != 0", - "tests/arith/bitwise.c",46); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "(18446744073709551615ULL + 1) << 1 != 0"; + __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_7.fct = "g_signed"; + __gen_e_acsl_assert_data_7.line = 46; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_7); __gmpz_clear(__gen_e_acsl__3); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__5); __gmpz_clear(__gen_e_acsl_shiftl_2); } - /*@ assert (18446744073709551615ULL + 1) << 1 ≢ 0; */ ; + /*@ assert (18446744073709551615ULL + 1) << 1 != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__6; __e_acsl_mpz_t __gen_e_acsl__7; @@ -206,6 +443,12 @@ void g_signed(int a, int b) int __gen_e_acsl_shiftr_guard; __e_acsl_mpz_t __gen_e_acsl_shiftr_2; unsigned long __gen_e_acsl__9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__7,1L); __gmpz_init(__gen_e_acsl_add_2); @@ -215,34 +458,52 @@ void g_signed(int a, int b) __gen_e_acsl_cst_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); /*@ assert E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 1 ≤ 18446744073709551615; + 0 <= 1 <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,1,"RTE","g_signed", - "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615", - "tests/arith/bitwise.c",47); + { + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615"; + __gen_e_acsl_assert_data_12.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_12.fct = "g_signed"; + __gen_e_acsl_assert_data_12.line = 47; + __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard, + & __gen_e_acsl_assert_data_12); + } __gen_e_acsl_cst_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); __gmpz_init_set_si(__gen_e_acsl__8,0L); __gen_e_acsl_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_init(__gen_e_acsl_shiftr_2); - /*@ assert E_ACSL: 18446744073709551615ULL + 1 ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,1,"RTE","g_signed", - "18446744073709551615ULL + 1 >= 0", - "tests/arith/bitwise.c",47); + /*@ assert E_ACSL: 18446744073709551615ULL + 1 >= 0; */ + { + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "18446744073709551615ULL + 1 >= 0"; + __gen_e_acsl_assert_data_11.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_11.fct = "g_signed"; + __gen_e_acsl_assert_data_11.line = 47; + __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0, + & __gen_e_acsl_assert_data_11); + } __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), __gen_e_acsl_cst_shiftr_coerced); __gen_e_acsl__9 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr_2)); - __e_acsl_assert(__gen_e_acsl__9 != 0UL,1,"Assertion","g_signed", - "(18446744073709551615ULL + 1) >> 1 != 0", - "tests/arith/bitwise.c",47); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "(18446744073709551615ULL + 1) >> 1 != 0"; + __gen_e_acsl_assert_data_10.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_10.fct = "g_signed"; + __gen_e_acsl_assert_data_10.line = 47; + __e_acsl_assert(__gen_e_acsl__9 != 0UL,& __gen_e_acsl_assert_data_10); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl__7); __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl_shiftr_2); } - /*@ assert (18446744073709551615ULL + 1) >> 1 ≢ 0; */ ; + /*@ assert (18446744073709551615ULL + 1) >> 1 != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__10; __e_acsl_mpz_t __gen_e_acsl__11; @@ -252,37 +513,63 @@ void g_signed(int a, int b) int __gen_e_acsl_cst_shiftl_guard_3; __e_acsl_mpz_t __gen_e_acsl_shiftl_3; int __gen_e_acsl_ne_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__10,1L); __gmpz_init_set_si(__gen_e_acsl__11,65L); __gen_e_acsl_cst_shiftl_guard_2 = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 65 ≤ 18446744073709551615; + 0 <= 65 <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,1,"RTE","g_signed", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65 <= 18446744073709551615", - "tests/arith/bitwise.c",48); + { + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65 <= 18446744073709551615"; + __gen_e_acsl_assert_data_15.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_15.fct = "g_signed"; + __gen_e_acsl_assert_data_15.line = 48; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2, + & __gen_e_acsl_assert_data_15); + } __gen_e_acsl_cst_shiftl_coerced_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); __gmpz_init_set_si(__gen_e_acsl__12,0L); __gen_e_acsl_cst_shiftl_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); __gmpz_init(__gen_e_acsl_shiftl_3); - /*@ assert E_ACSL: 1 ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,1,"RTE","g_signed", - "1 >= 0","tests/arith/bitwise.c",48); + /*@ assert E_ACSL: 1 >= 0; */ + { + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "RTE"; + __gen_e_acsl_assert_data_14.pred_txt = "1 >= 0"; + __gen_e_acsl_assert_data_14.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_14.fct = "g_signed"; + __gen_e_acsl_assert_data_14.line = 48; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0, + & __gen_e_acsl_assert_data_14); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl__10), __gen_e_acsl_cst_shiftl_coerced_2); __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); - __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","g_signed", - "1 << 65 != 0","tests/arith/bitwise.c",48); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "1 << 65 != 0"; + __gen_e_acsl_assert_data_13.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_13.fct = "g_signed"; + __gen_e_acsl_assert_data_13.line = 48; + __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_13); __gmpz_clear(__gen_e_acsl__10); __gmpz_clear(__gen_e_acsl__11); __gmpz_clear(__gen_e_acsl__12); __gmpz_clear(__gen_e_acsl_shiftl_3); } - /*@ assert 1 << 65 ≢ 0; */ ; + /*@ assert 1 << 65 != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__13; __e_acsl_mpz_t __gen_e_acsl__14; @@ -292,6 +579,8 @@ void g_signed(int a, int b) __e_acsl_mpz_t __gen_e_acsl_bor; __e_acsl_mpz_t __gen_e_acsl__16; int __gen_e_acsl_ne_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__13,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__14,1L); __gmpz_init(__gen_e_acsl_add_3); @@ -310,9 +599,13 @@ void g_signed(int a, int b) __gmpz_init_set_si(__gen_e_acsl__16,0L); __gen_e_acsl_ne_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_bor), (__e_acsl_mpz_struct const *)(__gen_e_acsl__16)); - __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","g_signed", - "((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0", - "tests/arith/bitwise.c",49); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0"; + __gen_e_acsl_assert_data_16.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_16.fct = "g_signed"; + __gen_e_acsl_assert_data_16.line = 49; + __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_16); __gmpz_clear(__gen_e_acsl__13); __gmpz_clear(__gen_e_acsl__14); __gmpz_clear(__gen_e_acsl_add_3); @@ -323,8 +616,8 @@ void g_signed(int a, int b) } /*@ assert - ((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) ≢ - 0; */ + ((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0; + */ ; { __e_acsl_mpz_t __gen_e_acsl__17; @@ -335,6 +628,8 @@ void g_signed(int a, int b) __e_acsl_mpz_t __gen_e_acsl_band; __e_acsl_mpz_t __gen_e_acsl_bxor; int __gen_e_acsl_ne_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__17,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__18,1L); __gmpz_init(__gen_e_acsl_add_4); @@ -356,9 +651,13 @@ void g_signed(int a, int b) (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2)); __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_band), (__e_acsl_mpz_struct const *)(__gen_e_acsl_bxor)); - __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","g_signed", - "((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) !=\n((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1))", - "tests/arith/bitwise.c",50); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) !=\n((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1))"; + __gen_e_acsl_assert_data_17.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_17.fct = "g_signed"; + __gen_e_acsl_assert_data_17.line = 50; + __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_17); __gmpz_clear(__gen_e_acsl__17); __gmpz_clear(__gen_e_acsl__18); __gmpz_clear(__gen_e_acsl_add_4); @@ -369,7 +668,7 @@ void g_signed(int a, int b) } /*@ assert - ((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) ≢ + ((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) != ((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1)); */ ; return; @@ -388,39 +687,74 @@ void g_unsigned(unsigned int a, unsigned int b) int __gen_e_acsl_a_shiftl_guard; __e_acsl_mpz_t __gen_e_acsl_shiftl; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"c",0,c); __gmpz_init_set_ui(__gen_e_acsl_c,(unsigned long)c); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"a",0,a); __gmpz_init_set_ui(__gen_e_acsl_a,(unsigned long)a); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"b",0,b); __gmpz_init_set_ui(__gen_e_acsl_b,(unsigned long)b); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data, + & __gen_e_acsl_assert_data_3); __gen_e_acsl_b_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ b ≤ 18446744073709551615; + 0 <= b <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,1,"RTE","g_unsigned", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615", - "tests/arith/bitwise.c",57); + { + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615"; + __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_3.fct = "g_unsigned"; + __gen_e_acsl_assert_data_3.line = 57; + __e_acsl_assert(__gen_e_acsl_b_shiftl_guard, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __gen_e_acsl_b_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b)); __gmpz_init_set_si(__gen_e_acsl_,0L); __gen_e_acsl_a_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gmpz_init(__gen_e_acsl_shiftl); - /*@ assert E_ACSL: a ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,1,"RTE","g_unsigned", - "a >= 0","tests/arith/bitwise.c",57); + /*@ assert E_ACSL: a >= 0; */ + { + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "a >= 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_2.fct = "g_unsigned"; + __gen_e_acsl_assert_data_2.line = 57; + __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl, (__e_acsl_mpz_struct const *)(__gen_e_acsl_a), __gen_e_acsl_b_shiftl_coerced); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_c), (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","g_unsigned", - "c == a << b","tests/arith/bitwise.c",57); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "c == a << b"; + __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data.fct = "g_unsigned"; + __gen_e_acsl_assert_data.line = 57; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_c); __gmpz_clear(__gen_e_acsl_a); __gmpz_clear(__gen_e_acsl_b); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_shiftl); } - /*@ assert c ≡ a << b; */ ; + /*@ assert c == a << b; */ ; unsigned int d = a >> b; { __e_acsl_mpz_t __gen_e_acsl_d; @@ -432,39 +766,75 @@ void g_unsigned(unsigned int a, unsigned int b) int __gen_e_acsl_a_shiftr_guard; __e_acsl_mpz_t __gen_e_acsl_shiftr; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"d",0,d); __gmpz_init_set_ui(__gen_e_acsl_d,(unsigned long)d); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"a",0,a); __gmpz_init_set_ui(__gen_e_acsl_a_2,(unsigned long)a); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6,"b",0,b); __gmpz_init_set_ui(__gen_e_acsl_b_2,(unsigned long)b); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4, + & __gen_e_acsl_assert_data_6); __gen_e_acsl_b_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2)); /*@ assert E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t: - 0 ≤ b ≤ 18446744073709551615; + 0 <= b <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,1,"RTE","g_unsigned", - "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615", - "tests/arith/bitwise.c",59); + { + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615"; + __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_6.fct = "g_unsigned"; + __gen_e_acsl_assert_data_6.line = 59; + __e_acsl_assert(__gen_e_acsl_b_shiftr_guard, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } __gen_e_acsl_b_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2)); __gmpz_init_set_si(__gen_e_acsl__2,0L); __gen_e_acsl_a_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); __gmpz_init(__gen_e_acsl_shiftr); - /*@ assert E_ACSL: a ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,1,"RTE","g_unsigned", - "a >= 0","tests/arith/bitwise.c",59); + /*@ assert E_ACSL: a >= 0; */ + { + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "a >= 0"; + __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_5.fct = "g_unsigned"; + __gen_e_acsl_assert_data_5.line = 59; + __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr, (__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2), __gen_e_acsl_b_shiftr_coerced); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_d), (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","g_unsigned", - "d == a >> b","tests/arith/bitwise.c",59); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "d == a >> b"; + __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_4.fct = "g_unsigned"; + __gen_e_acsl_assert_data_4.line = 59; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_d); __gmpz_clear(__gen_e_acsl_a_2); __gmpz_clear(__gen_e_acsl_b_2); __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_shiftr); } - /*@ assert d ≡ a >> b; */ ; + /*@ assert d == a >> b; */ ; { __e_acsl_mpz_t __gen_e_acsl__3; __e_acsl_mpz_t __gen_e_acsl__4; @@ -475,6 +845,12 @@ void g_unsigned(unsigned int a, unsigned int b) int __gen_e_acsl_shiftl_guard; __e_acsl_mpz_t __gen_e_acsl_shiftl_2; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__3,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__4,1L); __gmpz_init(__gen_e_acsl_add); @@ -484,35 +860,53 @@ void g_unsigned(unsigned int a, unsigned int b) __gen_e_acsl_cst_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 1u ≤ 18446744073709551615; + 0 <= 1u <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,1,"RTE","g_unsigned", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615", - "tests/arith/bitwise.c",61); + { + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615"; + __gen_e_acsl_assert_data_9.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_9.fct = "g_unsigned"; + __gen_e_acsl_assert_data_9.line = 61; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard, + & __gen_e_acsl_assert_data_9); + } __gen_e_acsl_cst_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); __gmpz_init_set_si(__gen_e_acsl__5,0L); __gen_e_acsl_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gmpz_init(__gen_e_acsl_shiftl_2); - /*@ assert E_ACSL: 18446744073709551615ULL + 1u ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,1,"RTE","g_unsigned", - "18446744073709551615ULL + 1u >= 0", - "tests/arith/bitwise.c",61); + /*@ assert E_ACSL: 18446744073709551615ULL + 1u >= 0; */ + { + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "18446744073709551615ULL + 1u >= 0"; + __gen_e_acsl_assert_data_8.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_8.fct = "g_unsigned"; + __gen_e_acsl_assert_data_8.line = 61; + __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0, + & __gen_e_acsl_assert_data_8); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add), __gen_e_acsl_cst_shiftl_coerced); __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","g_unsigned", - "(18446744073709551615ULL + 1u) << 1u != 0", - "tests/arith/bitwise.c",61); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "(18446744073709551615ULL + 1u) << 1u != 0"; + __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_7.fct = "g_unsigned"; + __gen_e_acsl_assert_data_7.line = 61; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_7); __gmpz_clear(__gen_e_acsl__3); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__5); __gmpz_clear(__gen_e_acsl_shiftl_2); } - /*@ assert (18446744073709551615ULL + 1u) << 1u ≢ 0; */ ; + /*@ assert (18446744073709551615ULL + 1u) << 1u != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__6; __e_acsl_mpz_t __gen_e_acsl__7; @@ -523,6 +917,12 @@ void g_unsigned(unsigned int a, unsigned int b) int __gen_e_acsl_shiftr_guard; __e_acsl_mpz_t __gen_e_acsl_shiftr_2; unsigned long __gen_e_acsl__9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__7,1L); __gmpz_init(__gen_e_acsl_add_2); @@ -532,34 +932,52 @@ void g_unsigned(unsigned int a, unsigned int b) __gen_e_acsl_cst_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); /*@ assert E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 1u ≤ 18446744073709551615; + 0 <= 1u <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,1,"RTE","g_unsigned", - "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615", - "tests/arith/bitwise.c",62); + { + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615"; + __gen_e_acsl_assert_data_12.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_12.fct = "g_unsigned"; + __gen_e_acsl_assert_data_12.line = 62; + __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard, + & __gen_e_acsl_assert_data_12); + } __gen_e_acsl_cst_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); __gmpz_init_set_si(__gen_e_acsl__8,0L); __gen_e_acsl_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_init(__gen_e_acsl_shiftr_2); - /*@ assert E_ACSL: 18446744073709551615ULL + 1u ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,1,"RTE","g_unsigned", - "18446744073709551615ULL + 1u >= 0", - "tests/arith/bitwise.c",62); + /*@ assert E_ACSL: 18446744073709551615ULL + 1u >= 0; */ + { + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "18446744073709551615ULL + 1u >= 0"; + __gen_e_acsl_assert_data_11.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_11.fct = "g_unsigned"; + __gen_e_acsl_assert_data_11.line = 62; + __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0, + & __gen_e_acsl_assert_data_11); + } __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), __gen_e_acsl_cst_shiftr_coerced); __gen_e_acsl__9 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr_2)); - __e_acsl_assert(__gen_e_acsl__9 != 0UL,1,"Assertion","g_unsigned", - "(18446744073709551615ULL + 1u) >> 1u != 0", - "tests/arith/bitwise.c",62); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "(18446744073709551615ULL + 1u) >> 1u != 0"; + __gen_e_acsl_assert_data_10.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_10.fct = "g_unsigned"; + __gen_e_acsl_assert_data_10.line = 62; + __e_acsl_assert(__gen_e_acsl__9 != 0UL,& __gen_e_acsl_assert_data_10); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl__7); __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl_shiftr_2); } - /*@ assert (18446744073709551615ULL + 1u) >> 1u ≢ 0; */ ; + /*@ assert (18446744073709551615ULL + 1u) >> 1u != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__10; __e_acsl_mpz_t __gen_e_acsl__11; @@ -569,37 +987,63 @@ void g_unsigned(unsigned int a, unsigned int b) int __gen_e_acsl_cst_shiftl_guard_3; __e_acsl_mpz_t __gen_e_acsl_shiftl_3; int __gen_e_acsl_ne_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__10,1L); __gmpz_init_set_si(__gen_e_acsl__11,65L); __gen_e_acsl_cst_shiftl_guard_2 = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); /*@ assert E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t: - 0 ≤ 65u ≤ 18446744073709551615; + 0 <= 65u <= 18446744073709551615; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,1,"RTE","g_unsigned", - "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65u <= 18446744073709551615", - "tests/arith/bitwise.c",63); + { + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65u <= 18446744073709551615"; + __gen_e_acsl_assert_data_15.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_15.fct = "g_unsigned"; + __gen_e_acsl_assert_data_15.line = 63; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2, + & __gen_e_acsl_assert_data_15); + } __gen_e_acsl_cst_shiftl_coerced_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); __gmpz_init_set_si(__gen_e_acsl__12,0L); __gen_e_acsl_cst_shiftl_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); __gmpz_init(__gen_e_acsl_shiftl_3); - /*@ assert E_ACSL: 1u ≥ 0; */ - __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,1,"RTE", - "g_unsigned","1u >= 0","tests/arith/bitwise.c",63); + /*@ assert E_ACSL: 1u >= 0; */ + { + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "RTE"; + __gen_e_acsl_assert_data_14.pred_txt = "1u >= 0"; + __gen_e_acsl_assert_data_14.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_14.fct = "g_unsigned"; + __gen_e_acsl_assert_data_14.line = 63; + __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0, + & __gen_e_acsl_assert_data_14); + } __gmpz_mul_2exp(__gen_e_acsl_shiftl_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl__10), __gen_e_acsl_cst_shiftl_coerced_2); __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); - __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","g_unsigned", - "1u << 65u != 0","tests/arith/bitwise.c",63); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "1u << 65u != 0"; + __gen_e_acsl_assert_data_13.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_13.fct = "g_unsigned"; + __gen_e_acsl_assert_data_13.line = 63; + __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_13); __gmpz_clear(__gen_e_acsl__10); __gmpz_clear(__gen_e_acsl__11); __gmpz_clear(__gen_e_acsl__12); __gmpz_clear(__gen_e_acsl_shiftl_3); } - /*@ assert 1u << 65u ≢ 0; */ ; + /*@ assert 1u << 65u != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__13; __e_acsl_mpz_t __gen_e_acsl__14; @@ -607,6 +1051,8 @@ void g_unsigned(unsigned int a, unsigned int b) __e_acsl_mpz_t __gen_e_acsl_bor; __e_acsl_mpz_t __gen_e_acsl__15; int __gen_e_acsl_ne_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__13,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__14,1L); __gmpz_init(__gen_e_acsl_add_3); @@ -620,16 +1066,20 @@ void g_unsigned(unsigned int a, unsigned int b) __gmpz_init_set_si(__gen_e_acsl__15,0L); __gen_e_acsl_ne_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_bor), (__e_acsl_mpz_struct const *)(__gen_e_acsl__15)); - __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","g_unsigned", - "((18446744073709551615ULL + 1u) | 1u) != 0", - "tests/arith/bitwise.c",64); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "((18446744073709551615ULL + 1u) | 1u) != 0"; + __gen_e_acsl_assert_data_16.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_16.fct = "g_unsigned"; + __gen_e_acsl_assert_data_16.line = 64; + __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_16); __gmpz_clear(__gen_e_acsl__13); __gmpz_clear(__gen_e_acsl__14); __gmpz_clear(__gen_e_acsl_add_3); __gmpz_clear(__gen_e_acsl_bor); __gmpz_clear(__gen_e_acsl__15); } - /*@ assert ((18446744073709551615ULL + 1u) | 1u) ≢ 0; */ ; + /*@ assert ((18446744073709551615ULL + 1u) | 1u) != 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__16; __e_acsl_mpz_t __gen_e_acsl__17; @@ -637,6 +1087,8 @@ void g_unsigned(unsigned int a, unsigned int b) __e_acsl_mpz_t __gen_e_acsl_band; __e_acsl_mpz_t __gen_e_acsl_bxor; int __gen_e_acsl_ne_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__16,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl__17,1L); __gmpz_init(__gen_e_acsl_add_4); @@ -653,9 +1105,13 @@ void g_unsigned(unsigned int a, unsigned int b) (__e_acsl_mpz_struct const *)(__gen_e_acsl__17)); __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_band), (__e_acsl_mpz_struct const *)(__gen_e_acsl_bxor)); - __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","g_unsigned", - "((18446744073709551615ULL + 1u) & 1u) !=\n((18446744073709551615ULL + 1u) ^ 1u)", - "tests/arith/bitwise.c",65); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "((18446744073709551615ULL + 1u) & 1u) !=\n((18446744073709551615ULL + 1u) ^ 1u)"; + __gen_e_acsl_assert_data_17.file = "tests/arith/bitwise.c"; + __gen_e_acsl_assert_data_17.fct = "g_unsigned"; + __gen_e_acsl_assert_data_17.line = 65; + __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_17); __gmpz_clear(__gen_e_acsl__16); __gmpz_clear(__gen_e_acsl__17); __gmpz_clear(__gen_e_acsl_add_4); @@ -664,7 +1120,7 @@ void g_unsigned(unsigned int a, unsigned int b) } /*@ assert - ((18446744073709551615ULL + 1u) & 1u) ≢ + ((18446744073709551615ULL + 1u) & 1u) != ((18446744073709551615ULL + 1u) ^ 1u); */ ; return; @@ -673,6 +1129,7 @@ void g_unsigned(unsigned int a, unsigned int b) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int a = 4; int b = 8; f_signed(a,b); @@ -680,6 +1137,7 @@ int main(void) g_signed(a,b); g_unsigned((unsigned int)a,(unsigned int)b); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c b/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c index c90b243c08b820282bfe99606fabc72eac11e6ac..7a60108cfeca786adbe03c80bcd7ab7b721db703 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c @@ -1,37 +1,105 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); long x = (long)0; int y = 0; - __e_acsl_assert((int)x == y,1,"Assertion","main","(int)x == y", - "tests/arith/cast.i",9); - /*@ assert (int)x ≡ y; */ ; - __e_acsl_assert(x == (long)y,1,"Assertion","main","x == (long)y", - "tests/arith/cast.i",10); - /*@ assert x ≡ (long)y; */ ; - __e_acsl_assert(y == 0,1,"Assertion","main","y == (int)0", - "tests/arith/cast.i",12); - /*@ assert y ≡ (int)0; */ ; - __e_acsl_assert((unsigned int)y == 0U,1,"Assertion","main", - "(unsigned int)y == (unsigned int)0","tests/arith/cast.i", - 13); - /*@ assert (unsigned int)y ≡ (unsigned int)0; */ ; - __e_acsl_assert(y != -1,1,"Assertion","main","y != (int)0xfffffffffffffff", - "tests/arith/cast.i",16); - /*@ assert y ≢ (int)0xfffffffffffffff; */ ; - __e_acsl_assert((unsigned int)y != 4294967295U,1,"Assertion","main", - "(unsigned int)y != (unsigned int)0xfffffffffffffff", - "tests/arith/cast.i",17); - /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "(int)x == y"; + __gen_e_acsl_assert_data.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert((int)x == y,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert (int)x == y; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "x == (long)y"; + __gen_e_acsl_assert_data_2.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(x == (long)y,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert x == (long)y; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"y",0,y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "y == (int)0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 12; + __e_acsl_assert(y == 0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert y == (int)0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "(unsigned int)y == (unsigned int)0"; + __gen_e_acsl_assert_data_4.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 13; + __e_acsl_assert((unsigned int)y == 0U,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert (unsigned int)y == (unsigned int)0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"y",0,y); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "y != (int)0xfffffffffffffff"; + __gen_e_acsl_assert_data_5.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 16; + __e_acsl_assert(y != -1,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert y != (int)0xfffffffffffffff; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"y",0,y); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "(unsigned int)y != (unsigned int)0xfffffffffffffff"; + __gen_e_acsl_assert_data_6.file = "tests/arith/cast.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 17; + __e_acsl_assert((unsigned int)y != 4294967295U, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert (unsigned int)y != (unsigned int)0xfffffffffffffff; */ ; int t[2] = {0, 1}; - /*@ assert (float)x ≡ t[(int)0.1]; */ ; + /*@ assert (float)x == t[(int)0.1]; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c b/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c index 54bd5b922db1f35431245daea4cb02c20ae03002..680a1b603445ca1e2ed7db3df6c9427d54e1012c 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c @@ -1,67 +1,234 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; int y = 1; - __e_acsl_assert(x < y,1,"Assertion","main","x < y", - "tests/arith/comparison.i",7); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x < y"; + __gen_e_acsl_assert_data.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(x < y,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } /*@ assert x < y; */ ; - __e_acsl_assert(y > x,1,"Assertion","main","y > x", - "tests/arith/comparison.i",8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "y > x"; + __gen_e_acsl_assert_data_2.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(y > x,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } /*@ assert y > x; */ ; - __e_acsl_assert(x <= 0,1,"Assertion","main","x <= 0", - "tests/arith/comparison.i",9); - /*@ assert x ≤ 0; */ ; - __e_acsl_assert(y >= 1,1,"Assertion","main","y >= 1", - "tests/arith/comparison.i",10); - /*@ assert y ≥ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"x",0,x); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "x <= 0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 9; + __e_acsl_assert(x <= 0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert x <= 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "y >= 1"; + __gen_e_acsl_assert_data_4.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 10; + __e_acsl_assert(y >= 1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert y >= 1; */ ; char *s = (char *)"toto"; - __e_acsl_assert(s == s,1,"Assertion","main","s == s", - "tests/arith/comparison.i",12); - /*@ assert s ≡ s; */ ; - __e_acsl_assert(1,1,"Assertion","main","5 < 18","tests/arith/comparison.i", - 15); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"s",(void *)s); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"s",(void *)s); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "s == s"; + __gen_e_acsl_assert_data_5.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 12; + __e_acsl_assert(s == s,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert s == s; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "5 < 18"; + __gen_e_acsl_assert_data_6.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 15; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_6); + } /*@ assert 5 < 18; */ ; - __e_acsl_assert(1,1,"Assertion","main","32 > 3","tests/arith/comparison.i", - 16); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "32 > 3"; + __gen_e_acsl_assert_data_7.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 16; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_7); + } /*@ assert 32 > 3; */ ; - __e_acsl_assert(1,1,"Assertion","main","12 <= 13", - "tests/arith/comparison.i",17); - /*@ assert 12 ≤ 13; */ ; - __e_acsl_assert(1,1,"Assertion","main","123 >= 12", - "tests/arith/comparison.i",18); - /*@ assert 123 ≥ 12; */ ; - __e_acsl_assert(1,1,"Assertion","main","0xff == 0xff", - "tests/arith/comparison.i",19); - /*@ assert 0xff ≡ 0xff; */ ; - __e_acsl_assert(1,1,"Assertion","main","1 != 2","tests/arith/comparison.i", - 20); - /*@ assert 1 ≢ 2; */ ; - __e_acsl_assert(1,1,"Assertion","main","-5 < 18", - "tests/arith/comparison.i",22); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "12 <= 13"; + __gen_e_acsl_assert_data_8.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 17; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_8); + } + /*@ assert 12 <= 13; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "123 >= 12"; + __gen_e_acsl_assert_data_9.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 18; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_9); + } + /*@ assert 123 >= 12; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "0xff == 0xff"; + __gen_e_acsl_assert_data_10.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 19; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_10); + } + /*@ assert 0xff == 0xff; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "1 != 2"; + __gen_e_acsl_assert_data_11.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 20; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_11); + } + /*@ assert 1 != 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "-5 < 18"; + __gen_e_acsl_assert_data_12.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 22; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_12); + } /*@ assert -5 < 18; */ ; - __e_acsl_assert(1,1,"Assertion","main","32 > -3", - "tests/arith/comparison.i",23); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "32 > -3"; + __gen_e_acsl_assert_data_13.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 23; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_13); + } /*@ assert 32 > -3; */ ; - __e_acsl_assert(1,1,"Assertion","main","-12 <= 13", - "tests/arith/comparison.i",24); - /*@ assert -12 ≤ 13; */ ; - __e_acsl_assert(1,1,"Assertion","main","123 >= -12", - "tests/arith/comparison.i",25); - /*@ assert 123 ≥ -12; */ ; - __e_acsl_assert(1,1,"Assertion","main","-0xff == -0xff", - "tests/arith/comparison.i",26); - /*@ assert -0xff ≡ -0xff; */ ; - __e_acsl_assert(1,1,"Assertion","main","1 != -2", - "tests/arith/comparison.i",27); - /*@ assert 1 ≢ -2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "-12 <= 13"; + __gen_e_acsl_assert_data_14.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 24; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_14); + } + /*@ assert -12 <= 13; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "123 >= -12"; + __gen_e_acsl_assert_data_15.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 25; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_15); + } + /*@ assert 123 >= -12; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "-0xff == -0xff"; + __gen_e_acsl_assert_data_16.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 26; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_16); + } + /*@ assert -0xff == -0xff; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "1 != -2"; + __gen_e_acsl_assert_data_17.file = "tests/arith/comparison.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 27; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_17); + } + /*@ assert 1 != -2; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c b/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c index da4ae76d9a2dc941cd22be41c7151f8fe73144aa..9a9cae008d301bd15f1fea36d2f59ae3057ec6b0 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c @@ -1,12 +1,13 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); unsigned long x = (unsigned long)4294967295U; int y = 10; { @@ -15,6 +16,7 @@ int main(void) int __gen_e_acsl_cond; int __gen_e_acsl_lambda; int __gen_e_acsl_accumulator; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_one = 1; __gen_e_acsl_cond = 0; __gen_e_acsl_lambda = 0; @@ -24,26 +26,34 @@ int main(void) __gen_e_acsl_cond = __gen_e_acsl_k > 10; if (__gen_e_acsl_cond) break; else { - /*@ assert Eva: signed_overflow: 2 * __gen_e_acsl_k ≤ 2147483647; - */ + /*@ assert Eva: signed_overflow: 2 * __gen_e_acsl_k <= 2147483647; */ __gen_e_acsl_lambda = 2 * __gen_e_acsl_k; /*@ assert Eva: signed_overflow: - __gen_e_acsl_accumulator + __gen_e_acsl_lambda ≤ 2147483647; + __gen_e_acsl_accumulator + __gen_e_acsl_lambda <= 2147483647; */ __gen_e_acsl_accumulator += __gen_e_acsl_lambda; /*@ assert Eva: signed_overflow: - __gen_e_acsl_k + __gen_e_acsl_one ≤ 2147483647; + __gen_e_acsl_k + __gen_e_acsl_one <= 2147483647; */ __gen_e_acsl_k += __gen_e_acsl_one; } } - __e_acsl_assert(__gen_e_acsl_accumulator == 108,1,"Assertion","main", - "\\sum(2, 10, \\lambda integer k; 2 * k) == 108", - "tests/arith/extended_quantifiers.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\sum(2, 10, \\lambda integer k; 2 * k)",0, + __gen_e_acsl_accumulator); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\sum(2, 10, \\lambda integer k; 2 * k) == 108"; + __gen_e_acsl_assert_data.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__gen_e_acsl_accumulator == 108, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \sum(2, 10, \lambda ℤ k; 2 * k) ≡ 108; */ ; + /*@ assert \sum(2, 10, \lambda integer k; 2 * k) == 108; */ ; { int __gen_e_acsl_k_2; int __gen_e_acsl_one_2; @@ -52,6 +62,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_2; __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_one_2 = 1; __gen_e_acsl_cond_2 = 0; __gmpz_init_set_si(__gen_e_acsl_lambda_2,0L); @@ -73,28 +85,40 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_2)); /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_2 + __gen_e_acsl_one_2 ≤ 2147483647; + __gen_e_acsl_k_2 + __gen_e_acsl_one_2 <= 2147483647; */ __gen_e_acsl_k_2 += __gen_e_acsl_one_2; } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2)); __gmpz_init_set_si(__gen_e_acsl__2,0L); __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main", - "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL) != 0", - "tests/arith/extended_quantifiers.c",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL) != 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl_lambda_2); __gmpz_clear(__gen_e_acsl_accumulator_2); __gmpz_clear(__gen_e_acsl__2); } - /*@ assert \sum(2, 35, \lambda ℤ k; 18446744073709551615ULL) ≢ 0; */ ; + /*@ assert \sum(2, 35, \lambda integer k; 18446744073709551615ULL) != 0; */ + ; { int __gen_e_acsl_k_3; int __gen_e_acsl_one_3; int __gen_e_acsl_cond_3; int __gen_e_acsl_lambda_3; int __gen_e_acsl_accumulator_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_one_3 = 1; __gen_e_acsl_cond_3 = 0; __gen_e_acsl_lambda_3 = 0; @@ -109,11 +133,20 @@ int main(void) __gen_e_acsl_k_3 += __gen_e_acsl_one_3; } } - __e_acsl_assert(__gen_e_acsl_accumulator_3 == 0,1,"Assertion","main", - "\\sum(10, 2, \\lambda integer k; k) == 0", - "tests/arith/extended_quantifiers.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\sum(10, 2, \\lambda integer k; k)",0, + __gen_e_acsl_accumulator_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\sum(10, 2, \\lambda integer k; k) == 0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(__gen_e_acsl_accumulator_3 == 0, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \sum(10, 2, \lambda ℤ k; k) ≡ 0; */ ; + /*@ assert \sum(10, 2, \lambda integer k; k) == 0; */ ; { __e_acsl_mpz_t __gen_e_acsl_x; __e_acsl_mpz_t __gen_e_acsl_mul; @@ -125,7 +158,11 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_4; __e_acsl_mpz_t __gen_e_acsl__4; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"x",0,x); __gmpz_init_set_ui(__gen_e_acsl_x,x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"x",0,x); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, (__e_acsl_mpz_struct const *)(__gen_e_acsl_x), @@ -152,12 +189,20 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_4)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4, + "\\sum(x * x, 2, \\lambda integer k; k)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4)); __gmpz_init_set_si(__gen_e_acsl__4,0L); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "\\sum(x * x, 2, \\lambda integer k; k) == 0", - "tests/arith/extended_quantifiers.c",14); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\sum(x * x, 2, \\lambda integer k; k) == 0"; + __gen_e_acsl_assert_data_4.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_x); __gmpz_clear(__gen_e_acsl_mul); __gmpz_clear(__gen_e_acsl__3); @@ -167,7 +212,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_accumulator_4); __gmpz_clear(__gen_e_acsl__4); } - /*@ assert \sum(x * x, 2, \lambda ℤ k; k) ≡ 0; */ ; + /*@ assert \sum(x * x, 2, \lambda integer k; k) == 0; */ ; { __e_acsl_mpz_t __gen_e_acsl__5; __e_acsl_mpz_t __gen_e_acsl__6; @@ -176,6 +221,8 @@ int main(void) int __gen_e_acsl_cond_5; int __gen_e_acsl_lambda_5; int __gen_e_acsl_accumulator_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL - 5UL); __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL); __gmpz_init_set_si(__gen_e_acsl_one_5,1L); @@ -192,7 +239,7 @@ int main(void) __gen_e_acsl_lambda_5 = 1; /*@ assert Eva: signed_overflow: - __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 ≤ + __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 <= 2147483647; */ __gen_e_acsl_accumulator_5 += __gen_e_acsl_lambda_5; @@ -201,9 +248,18 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_5)); } } - __e_acsl_assert(__gen_e_acsl_accumulator_5 == 6,1,"Assertion","main", - "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n \\lambda integer k; 1)\n== 6", - "tests/arith/extended_quantifiers.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n \\lambda integer k; 1)", + 0,__gen_e_acsl_accumulator_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n \\lambda integer k; 1)\n== 6"; + __gen_e_acsl_assert_data_5.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(__gen_e_acsl_accumulator_5 == 6, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gmpz_clear(__gen_e_acsl__5); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_k_5); @@ -212,8 +268,8 @@ int main(void) /*@ assert \sum(18446744073709551615ULL - 5, 18446744073709551615ULL, - \lambda ℤ k; 1) - ≡ 6; */ + \lambda integer k; 1) + == 6; */ ; { unsigned int __gen_e_acsl_k_6; @@ -221,6 +277,8 @@ int main(void) int __gen_e_acsl_cond_6; unsigned int __gen_e_acsl_lambda_6; unsigned int __gen_e_acsl_accumulator_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gen_e_acsl_one_6 = 1; __gen_e_acsl_cond_6 = 0; __gen_e_acsl_lambda_6 = 0; @@ -235,12 +293,21 @@ int main(void) __gen_e_acsl_k_6 += __gen_e_acsl_one_6; } } - __e_acsl_assert(__gen_e_acsl_accumulator_6 + 1U > 2147483647U,1, - "Assertion","main", - "\\sum(2147483647, 2147483647, \\lambda integer k; k) + 1 > 2147483647", - "tests/arith/extended_quantifiers.c",16); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6, + "\\sum(2147483647, 2147483647, \\lambda integer k; k)", + 0,__gen_e_acsl_accumulator_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\sum(2147483647, 2147483647, \\lambda integer k; k) + 1 > 2147483647"; + __gen_e_acsl_assert_data_6.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 16; + __e_acsl_assert(__gen_e_acsl_accumulator_6 + 1U > 2147483647U, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert \sum(2147483647, 2147483647, \lambda ℤ k; k) + 1 > 2147483647; + /*@ + assert \sum(2147483647, 2147483647, \lambda integer k; k) + 1 > 2147483647; */ ; { @@ -250,7 +317,11 @@ int main(void) int __gen_e_acsl_cond_7; long __gen_e_acsl_lambda_7; long __gen_e_acsl_accumulator_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gen_e_acsl_x_2 = 1; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0, + __gen_e_acsl_x_2); __gen_e_acsl_one_7 = 1; __gen_e_acsl_cond_7 = 0; __gen_e_acsl_lambda_7 = 0; @@ -263,24 +334,33 @@ int main(void) __gen_e_acsl_lambda_7 = -2147483647 - 1; /*@ assert Eva: signed_overflow: - -9223372036854775808 ≤ + -9223372036854775808 <= __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7; */ __gen_e_acsl_accumulator_7 += __gen_e_acsl_lambda_7; /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_7 + __gen_e_acsl_one_7 ≤ 2147483647; + __gen_e_acsl_k_7 + __gen_e_acsl_one_7 <= 2147483647; */ __gen_e_acsl_k_7 += __gen_e_acsl_one_7; } } - __e_acsl_assert(__gen_e_acsl_accumulator_7 < 0L,1,"Assertion","main", - "\\let x = 0 == 0? 1: 10; \\sum(x, 10, \\lambda integer k; -2147483647 - 1) < 0", - "tests/arith/extended_quantifiers.c",17); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_7, + "\\sum(x, 10, \\lambda integer k; -2147483647 - 1)", + 0,__gen_e_acsl_accumulator_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\let x = 0 == 0? 1: 10; \\sum(x, 10, \\lambda integer k; -2147483647 - 1) < 0"; + __gen_e_acsl_assert_data_7.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 17; + __e_acsl_assert(__gen_e_acsl_accumulator_7 < 0L, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert - \let x = 0 ≡ 0? 1: 10; \sum(x, 10, \lambda ℤ k; -2147483647 - 1) < 0; + \let x = 0 == 0? 1: 10; \sum(x, 10, \lambda integer k; -2147483647 - 1) < 0; */ ; { @@ -289,6 +369,8 @@ int main(void) int __gen_e_acsl_cond_8; int __gen_e_acsl_lambda_8; int __gen_e_acsl_accumulator_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gen_e_acsl_one_8 = 1; __gen_e_acsl_cond_8 = 0; __gen_e_acsl_lambda_8 = 0; @@ -306,28 +388,39 @@ int main(void) } /*@ assert Eva: signed_overflow: - __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 ≤ + __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 <= 2147483647; */ __gen_e_acsl_accumulator_8 += __gen_e_acsl_lambda_8; /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_8 + __gen_e_acsl_one_8 ≤ 2147483647; + __gen_e_acsl_k_8 + __gen_e_acsl_one_8 <= 2147483647; */ __gen_e_acsl_k_8 += __gen_e_acsl_one_8; } } - __e_acsl_assert(__gen_e_acsl_accumulator_8 == 9,1,"Assertion","main", - "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9", - "tests/arith/extended_quantifiers.c",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\sum(2, 10, \\lambda integer k; k - 2 >= 0? 1: 0)", + 0,__gen_e_acsl_accumulator_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9"; + __gen_e_acsl_assert_data_8.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 20; + __e_acsl_assert(__gen_e_acsl_accumulator_8 == 9, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert \numof(2, 10, \lambda ℤ k; k - 2 ≥ 0) ≡ 9; */ ; + /*@ assert \numof(2, 10, \lambda integer k; k - 2 >= 0) == 9; */ ; { unsigned long __gen_e_acsl_k_9; unsigned long __gen_e_acsl_one_9; int __gen_e_acsl_cond_9; int __gen_e_acsl_lambda_9; int __gen_e_acsl_accumulator_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_one_9 = 1; __gen_e_acsl_cond_9 = 0; __gen_e_acsl_lambda_9 = 0; @@ -345,20 +438,30 @@ int main(void) } /*@ assert Eva: signed_overflow: - __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 ≤ + __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 <= 2147483647; */ __gen_e_acsl_accumulator_9 += __gen_e_acsl_lambda_9; __gen_e_acsl_k_9 += __gen_e_acsl_one_9; } } - __e_acsl_assert(__gen_e_acsl_accumulator_9 == 3,1,"Assertion","main", - "\\numof(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1) == 3", - "tests/arith/extended_quantifiers.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\sum(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1? 1: 0)", + 0,__gen_e_acsl_accumulator_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\numof(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1) == 3"; + __gen_e_acsl_assert_data_9.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 21; + __e_acsl_assert(__gen_e_acsl_accumulator_9 == 3, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert - \numof(4294967295U - 5, 4294967295U, \lambda ℤ k; k % 2 ≡ 1) ≡ 3; */ + \numof(4294967295U - 5, 4294967295U, \lambda integer k; k % 2 == 1) == 3; + */ ; { int __gen_e_acsl_k_10; @@ -368,6 +471,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_10; __e_acsl_mpz_t __gen_e_acsl__7; int __gen_e_acsl_ge; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gen_e_acsl_one_10 = 1; __gen_e_acsl_cond_10 = 0; __gmpz_init_set_si(__gen_e_acsl_lambda_10,0L); @@ -383,28 +488,39 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_10)); /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_10 + __gen_e_acsl_one_10 ≤ 2147483647; + __gen_e_acsl_k_10 + __gen_e_acsl_one_10 <= 2147483647; */ __gen_e_acsl_k_10 += __gen_e_acsl_one_10; } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_10, + "\\product(1, 100, \\lambda integer k; k)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_10)); __gmpz_init_set_ui(__gen_e_acsl__7,3628800UL); __gen_e_acsl_ge = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __e_acsl_assert(__gen_e_acsl_ge >= 0,1,"Assertion","main", - "\\product(1, 100, \\lambda integer k; k) >= 3628800", - "tests/arith/extended_quantifiers.c",25); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\product(1, 100, \\lambda integer k; k) >= 3628800"; + __gen_e_acsl_assert_data_10.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 25; + __e_acsl_assert(__gen_e_acsl_ge >= 0,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); __gmpz_clear(__gen_e_acsl_lambda_10); __gmpz_clear(__gen_e_acsl_accumulator_10); __gmpz_clear(__gen_e_acsl__7); } - /*@ assert \product(1, 100, \lambda ℤ k; k) ≥ 3628800; */ ; + /*@ assert \product(1, 100, \lambda integer k; k) >= 3628800; */ ; { int __gen_e_acsl_k_11; int __gen_e_acsl_one_11; int __gen_e_acsl_cond_11; unsigned long __gen_e_acsl_lambda_11; unsigned long __gen_e_acsl_accumulator_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_one_11 = 1; __gen_e_acsl_cond_11 = 0; __gen_e_acsl_lambda_11 = 0; @@ -418,17 +534,25 @@ int main(void) __gen_e_acsl_accumulator_11 *= __gen_e_acsl_lambda_11; /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_11 + __gen_e_acsl_one_11 ≤ 2147483647; + __gen_e_acsl_k_11 + __gen_e_acsl_one_11 <= 2147483647; */ __gen_e_acsl_k_11 += __gen_e_acsl_one_11; } } - __e_acsl_assert(__gen_e_acsl_accumulator_11 == 3628800UL,1,"Assertion", - "main", - "\\product(1, 10, \\lambda integer k; k) == 3628800", - "tests/arith/extended_quantifiers.c",26); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "\\product(1, 10, \\lambda integer k; k)", + 0,__gen_e_acsl_accumulator_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\product(1, 10, \\lambda integer k; k) == 3628800"; + __gen_e_acsl_assert_data_11.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 26; + __e_acsl_assert(__gen_e_acsl_accumulator_11 == 3628800UL, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert \product(1, 10, \lambda ℤ k; k) ≡ 3628800; */ ; + /*@ assert \product(1, 10, \lambda integer k; k) == 3628800; */ ; { int __gen_e_acsl_k_12; int __gen_e_acsl_one_12; @@ -437,6 +561,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_12; __e_acsl_mpz_t __gen_e_acsl__8; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gen_e_acsl_one_12 = 1; __gen_e_acsl_cond_12 = 0; __gmpz_init_set_si(__gen_e_acsl_lambda_12,0L); @@ -452,22 +578,31 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_12)); /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_12 + __gen_e_acsl_one_12 ≤ 2147483647; + __gen_e_acsl_k_12 + __gen_e_acsl_one_12 <= 2147483647; */ __gen_e_acsl_k_12 += __gen_e_acsl_one_12; } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_12, + "\\product(-10, 10, \\lambda integer k; k)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_12)); __gmpz_init_set_si(__gen_e_acsl__8,0L); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_12), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main", - "\\product(-10, 10, \\lambda integer k; k) == 0", - "tests/arith/extended_quantifiers.c",27); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\product(-10, 10, \\lambda integer k; k) == 0"; + __gen_e_acsl_assert_data_12.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 27; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); __gmpz_clear(__gen_e_acsl_lambda_12); __gmpz_clear(__gen_e_acsl_accumulator_12); __gmpz_clear(__gen_e_acsl__8); } - /*@ assert \product(-10, 10, \lambda ℤ k; k) ≡ 0; */ ; + /*@ assert \product(-10, 10, \lambda integer k; k) == 0; */ ; { int __gen_e_acsl_k_13; int __gen_e_acsl_one_13; @@ -480,6 +615,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_lambda_14; __e_acsl_mpz_t __gen_e_acsl_accumulator_14; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gen_e_acsl_one_13 = 1; __gen_e_acsl_cond_13 = 0; __gmpz_init_set_si(__gen_e_acsl_lambda_13,0L); @@ -492,7 +629,7 @@ int main(void) { __e_acsl_mpz_t __gen_e_acsl__9; /*@ assert - Eva: signed_overflow: 2 * __gen_e_acsl_k_13 ≤ 2147483647; + Eva: signed_overflow: 2 * __gen_e_acsl_k_13 <= 2147483647; */ __gmpz_init_set_si(__gen_e_acsl__9,(long)(2 * __gen_e_acsl_k_13)); __gmpz_set(__gen_e_acsl_lambda_13, @@ -504,11 +641,15 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_13)); /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_13 + __gen_e_acsl_one_13 ≤ 2147483647; + __gen_e_acsl_k_13 + __gen_e_acsl_one_13 <= 2147483647; */ __gen_e_acsl_k_13 += __gen_e_acsl_one_13; } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13, + "\\product(-20, -1, \\lambda integer k; 2 * k)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_13)); __gen_e_acsl_one_14 = 1; __gen_e_acsl_cond_14 = 0; __gmpz_init_set_si(__gen_e_acsl_lambda_14,0L); @@ -521,7 +662,7 @@ int main(void) { __e_acsl_mpz_t __gen_e_acsl__10; /*@ assert - Eva: signed_overflow: 2 * __gen_e_acsl_k_14 ≤ 2147483647; + Eva: signed_overflow: 2 * __gen_e_acsl_k_14 <= 2147483647; */ __gmpz_init_set_si(__gen_e_acsl__10,(long)(2 * __gen_e_acsl_k_14)); __gmpz_set(__gen_e_acsl_lambda_14, @@ -533,16 +674,25 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_14)); /*@ assert Eva: signed_overflow: - __gen_e_acsl_k_14 + __gen_e_acsl_one_14 ≤ 2147483647; + __gen_e_acsl_k_14 + __gen_e_acsl_one_14 <= 2147483647; */ __gen_e_acsl_k_14 += __gen_e_acsl_one_14; } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13, + "\\product(1, 20, \\lambda integer k; 2 * k)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_14)); __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_13), (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_14)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main", - "\\product(-20, -1, \\lambda integer k; 2 * k) ==\n\\product(1, 20, \\lambda integer k; 2 * k)", - "tests/arith/extended_quantifiers.c",28); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\product(-20, -1, \\lambda integer k; 2 * k) ==\n\\product(1, 20, \\lambda integer k; 2 * k)"; + __gen_e_acsl_assert_data_13.file = "tests/arith/extended_quantifiers.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 28; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); __gmpz_clear(__gen_e_acsl_lambda_13); __gmpz_clear(__gen_e_acsl_accumulator_13); __gmpz_clear(__gen_e_acsl_lambda_14); @@ -550,10 +700,11 @@ int main(void) } /*@ assert - \product(-20, -1, \lambda ℤ k; 2 * k) ≡ - \product(1, 20, \lambda ℤ k; 2 * k); */ + \product(-20, -1, \lambda integer k; 2 * k) == + \product(1, 20, \lambda integer k; 2 * k); */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c index dc51dcaf62a26dfaa493d6061af5d7f4c135475e..6bd2bbd73c66635ad276ec899f77a5d71adcb0a7 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -13,7 +13,7 @@ typedef struct mystruct mystruct; */ int __gen_e_acsl_p1(int x, int y); -/*@ predicate p2(ℤ x, ℤ y) = x + y > 0; +/*@ predicate p2(integer x, integer y) = x + y > 0; */ int __gen_e_acsl_p2(int x, int y); @@ -22,7 +22,7 @@ int __gen_e_acsl_p2_5(int x, long y); int __gen_e_acsl_p2_3(int x, __e_acsl_mpz_struct * y); -/*@ logic ℤ f1(ℤ x, ℤ y) = x + y; +/*@ logic integer f1(integer x, integer y) = x + y; */ long __gen_e_acsl_f1(int x, int y); @@ -53,11 +53,11 @@ int __gen_e_acsl_g(int x); */ mystruct __gen_e_acsl_t1(mystruct m); -/*@ logic ℤ t2(mystruct m) = m.k + m.l; +/*@ logic integer t2(mystruct m) = m.k + m.l; */ long __gen_e_acsl_t2(mystruct m); -/*@ predicate k_pred(ℤ x) = x > 0; +/*@ predicate k_pred(integer x) = x > 0; */ int __gen_e_acsl_k_pred(int x); @@ -71,17 +71,17 @@ void k(int x) } int glob = 5; -/*@ predicate never_called(int x) = x ≡ x; +/*@ predicate never_called(int x) = x == x; */ /*@ logic double f2(double x) = (double)(1 / x); */ double __gen_e_acsl_f2(double x); -/*@ predicate p_notyet{L}(ℤ x) = x > 0; +/*@ predicate p_notyet{L}(integer x) = x > 0; */ -/*@ logic ℤ f_notyet{L}(ℤ x) = x; +/*@ logic integer f_notyet{L}(integer x) = x; */ -/*@ logic ℤ f_sum(ℤ x) = \sum(1, x, \lambda ℤ y; 1); +/*@ logic integer f_sum(integer x) = \sum(1, x, \lambda integer y; 1); */ unsigned int __gen_e_acsl_f_sum(int x); @@ -90,48 +90,105 @@ int main(void) { int __retres; mystruct m; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 1; int y = 2; { int __gen_e_acsl_p1_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gen_e_acsl_p1_2 = __gen_e_acsl_p1(x,y); - __e_acsl_assert(__gen_e_acsl_p1_2,1,"Assertion","main","p1(x, y)", - "tests/arith/functions.c",48); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"p1(x, y)",0, + __gen_e_acsl_p1_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "p1(x, y)"; + __gen_e_acsl_assert_data.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 48; + __e_acsl_assert(__gen_e_acsl_p1_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert p1(x, y); */ ; { int __gen_e_acsl_p2_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_p2_2 = __gen_e_acsl_p2(3,4); - __e_acsl_assert(__gen_e_acsl_p2_2,1,"Assertion","main","p2(3, 4)", - "tests/arith/functions.c",49); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"p2(3, 4)",0, + __gen_e_acsl_p2_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "p2(3, 4)"; + __gen_e_acsl_assert_data_2.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 49; + __e_acsl_assert(__gen_e_acsl_p2_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert p2(3, 4); */ ; { __e_acsl_mpz_t __gen_e_acsl_; int __gen_e_acsl_p2_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl_,"99999999999999999999999999999",10); __gen_e_acsl_p2_4 = __gen_e_acsl_p2_3(5, (__e_acsl_mpz_struct *)__gen_e_acsl_); - __e_acsl_assert(__gen_e_acsl_p2_4,1,"Assertion","main", - "p2(5, 99999999999999999999999999999)", - "tests/arith/functions.c",50); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "p2(5, 99999999999999999999999999999)",0, + __gen_e_acsl_p2_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "p2(5, 99999999999999999999999999999)"; + __gen_e_acsl_assert_data_3.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 50; + __e_acsl_assert(__gen_e_acsl_p2_4,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_); } /*@ assert p2(5, 99999999999999999999999999999); */ ; { long __gen_e_acsl_f1_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); __gen_e_acsl_f1_2 = __gen_e_acsl_f1(x,y); - __e_acsl_assert(__gen_e_acsl_f1_2 == 3L,1,"Assertion","main", - "f1(x, y) == 3","tests/arith/functions.c",52); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4,"f1(x, y)",0, + __gen_e_acsl_f1_2); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "f1(x, y) == 3"; + __gen_e_acsl_assert_data_4.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 52; + __e_acsl_assert(__gen_e_acsl_f1_2 == 3L,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert f1(x, y) ≡ 3; */ ; + /*@ assert f1(x, y) == 3; */ ; { long __gen_e_acsl_f1_4; int __gen_e_acsl_p2_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_f1_4 = __gen_e_acsl_f1(3,4); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_5,"f1(3, 4)",0, + __gen_e_acsl_f1_4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); __gen_e_acsl_p2_6 = __gen_e_acsl_p2_5(x,__gen_e_acsl_f1_4); - __e_acsl_assert(__gen_e_acsl_p2_6,1,"Assertion","main","p2(x, f1(3, 4))", - "tests/arith/functions.c",53); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "p2(x, f1(3, 4))",0,__gen_e_acsl_p2_6); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "p2(x, f1(3, 4))"; + __gen_e_acsl_assert_data_5.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 53; + __e_acsl_assert(__gen_e_acsl_p2_6,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert p2(x, f1(3, 4)); */ ; { @@ -139,15 +196,25 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_f1_6; __e_acsl_mpz_t __gen_e_acsl__5; int __gen_e_acsl_gt_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__4,"99999999999999999999999999999",10); __gen_e_acsl_f1_5(& __gen_e_acsl_f1_6,9, (__e_acsl_mpz_struct *)__gen_e_acsl__4); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6, + "f1(9, 99999999999999999999999999999)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6)); __gmpz_init_set_si(__gen_e_acsl__5,0L); __gen_e_acsl_gt_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_gt_3 > 0,1,"Assertion","main", - "f1(9, 99999999999999999999999999999) > 0", - "tests/arith/functions.c",54); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "f1(9, 99999999999999999999999999999) > 0"; + __gen_e_acsl_assert_data_6.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 54; + __e_acsl_assert(__gen_e_acsl_gt_3 > 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_f1_6); __gmpz_clear(__gen_e_acsl__5); @@ -158,76 +225,160 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_f1_8; __e_acsl_mpz_t __gen_e_acsl__7; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__6,"99999999999999999999999999999",10); __gen_e_acsl_f1_7(& __gen_e_acsl_f1_8, (__e_acsl_mpz_struct *)__gen_e_acsl__6, (__e_acsl_mpz_struct *)__gen_e_acsl__6); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7, + "f1(99999999999999999999999999999, 99999999999999999999999999999)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8)); __gmpz_init_set_str(__gen_e_acsl__7,"199999999999999999999999999998",10); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998", - "tests/arith/functions.c",55); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998"; + __gen_e_acsl_assert_data_7.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 55; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_f1_8); __gmpz_clear(__gen_e_acsl__7); } /*@ assert - f1(99999999999999999999999999999, 99999999999999999999999999999) ≡ + f1(99999999999999999999999999999, 99999999999999999999999999999) == 199999999999999999999999999998; */ ; { int __gen_e_acsl_g_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); __gen_e_acsl_g_2 = __gen_e_acsl_g(x); - __e_acsl_assert(__gen_e_acsl_g_2 == x,1,"Assertion","main","g(x) == x", - "tests/arith/functions.c",60); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g(x)",0, + __gen_e_acsl_g_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "g(x) == x"; + __gen_e_acsl_assert_data_8.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 60; + __e_acsl_assert(__gen_e_acsl_g_2 == x,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert g(x) ≡ x; */ ; + /*@ assert g(x) == x; */ ; char c = (char)'c'; { int __gen_e_acsl_h_char_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c); __gen_e_acsl_h_char_2 = __gen_e_acsl_h_char((int)c); - __e_acsl_assert(__gen_e_acsl_h_char_2 == (int)c,1,"Assertion","main", - "h_char(c) == c","tests/arith/functions.c",63); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h_char(c)",0, + __gen_e_acsl_h_char_2); + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "h_char(c) == c"; + __gen_e_acsl_assert_data_9.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 63; + __e_acsl_assert(__gen_e_acsl_h_char_2 == (int)c, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert h_char(c) ≡ c; */ ; + /*@ assert h_char(c) == c; */ ; short s = (short)1; { int __gen_e_acsl_h_short_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s); __gen_e_acsl_h_short_2 = __gen_e_acsl_h_short((int)s); - __e_acsl_assert(__gen_e_acsl_h_short_2 == (int)s,1,"Assertion","main", - "h_short(s) == s","tests/arith/functions.c",65); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h_short(s)", + 0,__gen_e_acsl_h_short_2); + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "h_short(s) == s"; + __gen_e_acsl_assert_data_10.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 65; + __e_acsl_assert(__gen_e_acsl_h_short_2 == (int)s, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert h_short(s) ≡ s; */ ; + /*@ assert h_short(s) == s; */ ; m.k = 8; m.l = 9; { mystruct __gen_e_acsl_t1_2; long __gen_e_acsl_t2_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"m"); __gen_e_acsl_t1_2 = __gen_e_acsl_t1(m); + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"t1(m)"); __gen_e_acsl_t2_2 = __gen_e_acsl_t2(__gen_e_acsl_t1_2); - __e_acsl_assert(__gen_e_acsl_t2_2 == 17L,1,"Assertion","main", - "t2(t1(m)) == 17","tests/arith/functions.c",70); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_11,"t2(t1(m))", + 0,__gen_e_acsl_t2_2); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "t2(t1(m)) == 17"; + __gen_e_acsl_assert_data_11.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 70; + __e_acsl_assert(__gen_e_acsl_t2_2 == 17L,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert t2(t1(m)) ≡ 17; */ ; + /*@ assert t2(t1(m)) == 17; */ ; __gen_e_acsl_k(9); double d = 2.0; { double __gen_e_acsl_f2_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"d",d); __gen_e_acsl_f2_2 = __gen_e_acsl_f2(d); - __e_acsl_assert(__gen_e_acsl_f2_2 > 0.,1,"Assertion","main","f2(d) > 0", - "tests/arith/functions.c",75); + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"f2(d)", + __gen_e_acsl_f2_2); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "f2(d) > 0"; + __gen_e_acsl_assert_data_12.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 75; + __e_acsl_assert(__gen_e_acsl_f2_2 > 0.,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } /*@ assert f2(d) > 0; */ ; { unsigned int __gen_e_acsl_f_sum_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gen_e_acsl_f_sum_2 = __gen_e_acsl_f_sum(100); - __e_acsl_assert(__gen_e_acsl_f_sum_2 == 100U,1,"Assertion","main", - "f_sum(100) == 100","tests/arith/functions.c",77); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_13,"f_sum(100)", + 0,__gen_e_acsl_f_sum_2); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "f_sum(100) == 100"; + __gen_e_acsl_assert_data_13.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 77; + __e_acsl_assert(__gen_e_acsl_f_sum_2 == 100U, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert f_sum(100) ≡ 100; */ ; + /*@ assert f_sum(100) == 100; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } @@ -236,9 +387,19 @@ void __gen_e_acsl_k(int x) { { int __gen_e_acsl_k_pred_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gen_e_acsl_k_pred_2 = __gen_e_acsl_k_pred(x); - __e_acsl_assert(__gen_e_acsl_k_pred_2,1,"Precondition","k","k_pred(x)", - "tests/arith/functions.c",28); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"k_pred(x)",0, + __gen_e_acsl_k_pred_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "k_pred(x)"; + __gen_e_acsl_assert_data.file = "tests/arith/functions.c"; + __gen_e_acsl_assert_data.fct = "k"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert(__gen_e_acsl_k_pred_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } k(x); return; diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c b/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c index 42f39839d7871600dd9480a187537ec73c875f27..92fa407c338ab3cb602b50352115d53f785ec599 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c @@ -1,10 +1,10 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ logic ℤ f1(ℤ n) = n ≤ 0? 0: f1(n - 1) + n; +/*@ logic integer f1(integer n) = n <= 0? 0: f1(n - 1) + n; */ void __gen_e_acsl_f1(__e_acsl_mpz_t *__retres_arg, int n); @@ -13,7 +13,8 @@ void __gen_e_acsl_f1_2(__e_acsl_mpz_t *__retres_arg, long n); void __gen_e_acsl_f1_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n); -/*@ logic ℤ f2(ℤ n) = n < 0? 1: (f2(n - 1) * f2(n - 2)) / f2(n - 3); +/*@ +logic integer f2(integer n) = n < 0? 1: (f2(n - 1) * f2(n - 2)) / f2(n - 3); */ int __gen_e_acsl_f2(int n); @@ -22,7 +23,7 @@ int __gen_e_acsl_f2_2(long n); int __gen_e_acsl_f2_3(__e_acsl_mpz_struct * n); -/*@ logic ℤ g(ℤ n) = 0; +/*@ logic integer g(integer n) = 0; */ int __gen_e_acsl_g(int n); @@ -31,7 +32,7 @@ int __gen_e_acsl_g_3(long n); int __gen_e_acsl_g_5(__e_acsl_mpz_struct * n); -/*@ logic ℤ f3(ℤ n) = n > 0? g(n) * f3(n - 1) - 5: g(n + 1); +/*@ logic integer f3(integer n) = n > 0? g(n) * f3(n - 1) - 5: g(n + 1); */ int __gen_e_acsl_f3(int n); @@ -41,7 +42,7 @@ int __gen_e_acsl_f3_2(long n); int __gen_e_acsl_f3_3(__e_acsl_mpz_struct * n); /*@ -logic ℤ f4(ℤ n) = +logic integer f4(integer n) = n < 100? f4(n + 1): (n < 0x7fffffffffffffffL? 0x7fffffffffffffffL: 6); */ @@ -51,7 +52,7 @@ unsigned long __gen_e_acsl_f4_2(long n); unsigned long __gen_e_acsl_f4_3(__e_acsl_mpz_struct * n); -/*@ logic ℤ f5(ℤ n) = n ≥ 0? 0: f5(n + 1) + n; +/*@ logic integer f5(integer n) = n >= 0? 0: f5(n + 1) + n; */ void __gen_e_acsl_f5(__e_acsl_mpz_t *__retres_arg, int n); @@ -63,101 +64,183 @@ void __gen_e_acsl_f5_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n); int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { __e_acsl_mpz_t __gen_e_acsl_f1_8; __e_acsl_mpz_t __gen_e_acsl__7; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_f1(& __gen_e_acsl_f1_8,0); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"f1(0)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8)); __gmpz_init_set_si(__gen_e_acsl__7,0L); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","f1(0) == 0", - "tests/arith/functions_rec.c",28); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "f1(0) == 0"; + __gen_e_acsl_assert_data.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_f1_8); __gmpz_clear(__gen_e_acsl__7); } - /*@ assert f1(0) ≡ 0; */ ; + /*@ assert f1(0) == 0; */ ; { __e_acsl_mpz_t __gen_e_acsl_f1_10; __e_acsl_mpz_t __gen_e_acsl__8; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_f1(& __gen_e_acsl_f1_10,1); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,"f1(1)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_10)); __gmpz_init_set_si(__gen_e_acsl__8,1L); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","f1(1) == 1", - "tests/arith/functions_rec.c",29); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "f1(1) == 1"; + __gen_e_acsl_assert_data_2.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 29; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl_f1_10); __gmpz_clear(__gen_e_acsl__8); } - /*@ assert f1(1) ≡ 1; */ ; + /*@ assert f1(1) == 1; */ ; { __e_acsl_mpz_t __gen_e_acsl_f1_12; __e_acsl_mpz_t __gen_e_acsl__9; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_f1(& __gen_e_acsl_f1_12,100); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"f1(100)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_12)); __gmpz_init_set_si(__gen_e_acsl__9,5050L); __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_12), (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main", - "f1(100) == 5050","tests/arith/functions_rec.c",30); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "f1(100) == 5050"; + __gen_e_acsl_assert_data_3.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 30; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_f1_12); __gmpz_clear(__gen_e_acsl__9); } - /*@ assert f1(100) ≡ 5050; */ ; + /*@ assert f1(100) == 5050; */ ; { int __gen_e_acsl_f2_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gen_e_acsl_f2_20 = __gen_e_acsl_f2(7); - __e_acsl_assert(__gen_e_acsl_f2_20 == 1,1,"Assertion","main", - "f2(7) == 1","tests/arith/functions_rec.c",32); - } - /*@ assert f2(7) ≡ 1; */ ; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"f2(7)",0, + __gen_e_acsl_f2_20); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "f2(7) == 1"; + __gen_e_acsl_assert_data_4.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 32; + __e_acsl_assert(__gen_e_acsl_f2_20 == 1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert f2(7) == 1; */ ; { int __gen_e_acsl_f3_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gen_e_acsl_f3_8 = __gen_e_acsl_f3(6); - __e_acsl_assert(__gen_e_acsl_f3_8 == -5,1,"Assertion","main", - "f3(6) == -5","tests/arith/functions_rec.c",34); - } - /*@ assert f3(6) ≡ -5; */ ; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"f3(6)",0, + __gen_e_acsl_f3_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "f3(6) == -5"; + __gen_e_acsl_assert_data_8.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 34; + __e_acsl_assert(__gen_e_acsl_f3_8 == -5,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert f3(6) == -5; */ ; { unsigned long __gen_e_acsl_f4_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_f4_8 = __gen_e_acsl_f4(9); - __e_acsl_assert(__gen_e_acsl_f4_8 > 0UL,1,"Assertion","main","f4(9) > 0", - "tests/arith/functions_rec.c",36); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,"f4(9)",0, + __gen_e_acsl_f4_8); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "f4(9) > 0"; + __gen_e_acsl_assert_data_9.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 36; + __e_acsl_assert(__gen_e_acsl_f4_8 > 0UL,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert f4(9) > 0; */ ; { __e_acsl_mpz_t __gen_e_acsl_f5_8; __e_acsl_mpz_t __gen_e_acsl__32; int __gen_e_acsl_eq_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gen_e_acsl_f5(& __gen_e_acsl_f5_8,0); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_10,"f5(0)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_8)); __gmpz_init_set_si(__gen_e_acsl__32,0L); __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__32)); - __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main","f5(0) == 0", - "tests/arith/functions_rec.c",38); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "f5(0) == 0"; + __gen_e_acsl_assert_data_10.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 38; + __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); __gmpz_clear(__gen_e_acsl_f5_8); __gmpz_clear(__gen_e_acsl__32); } - /*@ assert f5(0) ≡ 0; */ ; + /*@ assert f5(0) == 0; */ ; { long __gen_e_acsl_n_9; __e_acsl_mpz_t __gen_e_acsl_f5_10; __e_acsl_mpz_t __gen_e_acsl__33; int __gen_e_acsl_eq_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_n_9 = 9223372036854775807L; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_11,"n",0, + __gen_e_acsl_n_9); __gen_e_acsl_f5_2(& __gen_e_acsl_f5_10,__gen_e_acsl_n_9); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_11,"f5(n)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_10)); __gmpz_init_set_si(__gen_e_acsl__33,0L); __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__33)); - __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main", - "\\let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0", - "tests/arith/functions_rec.c",40); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0"; + __gen_e_acsl_assert_data_11.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 40; + __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gmpz_clear(__gen_e_acsl_f5_10); __gmpz_clear(__gen_e_acsl__33); } - /*@ assert \let n = 0 ≡ 0? 0x7fffffffffffffffL: -1; f5(n) ≡ 0; */ ; + /*@ assert \let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } @@ -307,22 +390,31 @@ int __gen_e_acsl_f2(int n) __gen_e_acsl_f2_15 = __gen_e_acsl_f2_2(n - 1L); __gen_e_acsl_f2_17 = __gen_e_acsl_f2_2(n - 2L); __gen_e_acsl_f2_19 = __gen_e_acsl_f2_2(n - 3L); - __e_acsl_assert(__gen_e_acsl_f2_19 != 0,1,"RTE","f2", - "division_by_zero: __gen_e_acsl_f2_19 != 0", - "tests/arith/functions_rec.c",13); - /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_19 ≢ 0; */ + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_f2_19",0,__gen_e_acsl_f2_19); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "division_by_zero: __gen_e_acsl_f2_19 != 0"; + __gen_e_acsl_assert_data_7.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_7.fct = "f2"; + __gen_e_acsl_assert_data_7.line = 13; + __e_acsl_assert(__gen_e_acsl_f2_19 != 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_19 != 0; */ /*@ assert Eva: signed_overflow: - -2147483648 ≤ __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17; + -2147483648 <= __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17; */ /*@ assert Eva: signed_overflow: - __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 ≤ 2147483647; + __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 <= 2147483647; */ /*@ assert Eva: signed_overflow: (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19 - ≤ 2147483647; + <= 2147483647; */ __gen_e_acsl_if_6 = (__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19; } @@ -377,22 +469,31 @@ int __gen_e_acsl_f2_2(long n) \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8); */ __gen_e_acsl_f2_14 = __gen_e_acsl_f2_3((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8); - __e_acsl_assert(__gen_e_acsl_f2_14 != 0,1,"RTE","f2_2", - "division_by_zero: __gen_e_acsl_f2_14 != 0", - "tests/arith/functions_rec.c",13); - /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_14 ≢ 0; */ + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_f2_14",0,__gen_e_acsl_f2_14); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "division_by_zero: __gen_e_acsl_f2_14 != 0"; + __gen_e_acsl_assert_data_6.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_6.fct = "f2_2"; + __gen_e_acsl_assert_data_6.line = 13; + __e_acsl_assert(__gen_e_acsl_f2_14 != 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_14 != 0; */ /*@ assert Eva: signed_overflow: - -2147483648 ≤ __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12; + -2147483648 <= __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12; */ /*@ assert Eva: signed_overflow: - __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 ≤ 2147483647; + __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 <= 2147483647; */ /*@ assert Eva: signed_overflow: (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14 - ≤ 2147483647; + <= 2147483647; */ __gen_e_acsl_if_5 = (__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14; __gmpz_clear(__gen_e_acsl_n_3); @@ -454,22 +555,31 @@ int __gen_e_acsl_f2_3(__e_acsl_mpz_struct * n) \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_6); */ __gen_e_acsl_f2_9 = __gen_e_acsl_f2_3((__e_acsl_mpz_struct *)__gen_e_acsl_sub_6); - __e_acsl_assert(__gen_e_acsl_f2_9 != 0,1,"RTE","f2_3", - "division_by_zero: __gen_e_acsl_f2_9 != 0", - "tests/arith/functions_rec.c",13); - /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_9 ≢ 0; */ + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_f2_9",0,__gen_e_acsl_f2_9); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "division_by_zero: __gen_e_acsl_f2_9 != 0"; + __gen_e_acsl_assert_data_5.file = "tests/arith/functions_rec.c"; + __gen_e_acsl_assert_data_5.fct = "f2_3"; + __gen_e_acsl_assert_data_5.line = 13; + __e_acsl_assert(__gen_e_acsl_f2_9 != 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_9 != 0; */ /*@ assert Eva: signed_overflow: - -2147483648 ≤ __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7; + -2147483648 <= __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7; */ /*@ assert Eva: signed_overflow: - __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 ≤ 2147483647; + __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 <= 2147483647; */ /*@ assert Eva: signed_overflow: - (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 - ≤ 2147483647; + (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 <= + 2147483647; */ __gen_e_acsl_if_4 = (__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9; __gmpz_clear(__gen_e_acsl__12); diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c b/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c index bdfdae9e75ef7dcf2fb3e2a6e5ac1fdec59fd652..7d04ce7eac3f9d35e5038c89d9f32b0c154613a7 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -8,36 +8,69 @@ int main(void) { int __retres; int x; - __e_acsl_assert(1,1,"Assertion","main","0 == 0", - "tests/arith/integer_constant.i",6); - /*@ assert 0 ≡ 0; */ ; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "0 == 0"; + __gen_e_acsl_assert_data.file = "tests/arith/integer_constant.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } + /*@ assert 0 == 0; */ ; x = 0; x ++; - __e_acsl_assert(1,1,"Assertion","main","0 != 1", - "tests/arith/integer_constant.i",8); - /*@ assert 0 ≢ 1; */ ; - __e_acsl_assert(1,1,"Assertion","main", - "1152921504606846975 == 0xfffffffffffffff", - "tests/arith/integer_constant.i",9); - /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "0 != 1"; + __gen_e_acsl_assert_data_2.file = "tests/arith/integer_constant.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_2); + } + /*@ assert 0 != 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "1152921504606846975 == 0xfffffffffffffff"; + __gen_e_acsl_assert_data_3.file = "tests/arith/integer_constant.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 9; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_3); + } + /*@ assert 1152921504606846975 == 0xfffffffffffffff; */ ; { __e_acsl_mpz_t __gen_e_acsl_; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl_, "340282366920938463463374607431768211455",10); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff", - "tests/arith/integer_constant.i",11); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff"; + __gen_e_acsl_assert_data_4.file = "tests/arith/integer_constant.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 11; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_); } /*@ assert - 0xffffffffffffffffffffffffffffffff ≡ 0xffffffffffffffffffffffffffffffff; + 0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_let.c b/src/plugins/e-acsl/tests/arith/oracle/gen_let.c index f1d72daba9f0904a47d80254bdaf919b2a494d4e..8c2202056fe5ab5d37c2914d0c21678a56c2b41f 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_let.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_let.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -20,48 +20,104 @@ int main(void) int n = -2; { long __gen_e_acsl_u; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); __gen_e_acsl_u = n * (long)n; - __e_acsl_assert(__gen_e_acsl_u >= 0L,1,"Assertion","main", - "\\let u = n * n; u >= 0","tests/arith/let.c",7); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"u",0, + __gen_e_acsl_u); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\let u = n * n; u >= 0"; + __gen_e_acsl_assert_data.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_u >= 0L,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \let u = n * n; u ≥ 0; */ ; + /*@ assert \let u = n * n; u >= 0; */ ; { long __gen_e_acsl_u_2; long __gen_e_acsl_v; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n); __gen_e_acsl_u_2 = n * (long)n; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"u",0, + __gen_e_acsl_u_2); __gen_e_acsl_v = __gen_e_acsl_u_2 + 1L; - __e_acsl_assert(__gen_e_acsl_u_2 > 0L,1,"Assertion","main", - "\\let u = n * n;\n\\let v = u + 1; u > 0", - "tests/arith/let.c",9); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"u",0, + __gen_e_acsl_u_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\let u = n * n;\n\\let v = u + 1; u > 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 9; + __e_acsl_assert(__gen_e_acsl_u_2 > 0L,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \let u = n * n; \let v = u + 1; u > 0; */ ; { int __gen_e_acsl_u_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_u_3 = 1; - __e_acsl_assert(__gen_e_acsl_u_3 + 1 == 2,1,"Assertion","main", - "(\\let u = 1; u) + 1 == 2","tests/arith/let.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0, + __gen_e_acsl_u_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "(\\let u = 1; u) + 1 == 2"; + __gen_e_acsl_assert_data_3.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(__gen_e_acsl_u_3 + 1 == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert (\let u = 1; u) + 1 ≡ 2; */ ; + /*@ assert (\let u = 1; u) + 1 == 2; */ ; { int __gen_e_acsl_u_4; int __gen_e_acsl_v_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gen_e_acsl_u_4 = 1; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"u",0, + __gen_e_acsl_u_4); __gen_e_acsl_v_2 = __gen_e_acsl_u_4 + 1; - __e_acsl_assert(__gen_e_acsl_v_2 == 2,1,"Assertion","main", - "\\let u = 1; (\\let v = u + 1; v) == 2", - "tests/arith/let.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"v",0, + __gen_e_acsl_v_2); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\let u = 1; (\\let v = u + 1; v) == 2"; + __gen_e_acsl_assert_data_4.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 15; + __e_acsl_assert(__gen_e_acsl_v_2 == 2,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \let u = 1; (\let v = u + 1; v) ≡ 2; */ ; + /*@ assert \let u = 1; (\let v = u + 1; v) == 2; */ ; { int __gen_e_acsl_u_5; int __gen_e_acsl_u_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_u_5 = 1; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"u",0, + __gen_e_acsl_u_5); __gen_e_acsl_u_6 = __gen_e_acsl_u_5 + 1; - __e_acsl_assert(__gen_e_acsl_u_6 == 2,1,"Assertion","main", - "\\let u = 1; (\\let u = u + 1; u) == 2", - "tests/arith/let.c",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"u",0, + __gen_e_acsl_u_6); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\let u = 1; (\\let u = u + 1; u) == 2"; + __gen_e_acsl_assert_data_5.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 19; + __e_acsl_assert(__gen_e_acsl_u_6 == 2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert \let u = 1; (\let u = u + 1; u) ≡ 2; */ ; + /*@ assert \let u = 1; (\let u = u + 1; u) == 2; */ ; long m = 0x7fffffffffffffffL; { long __gen_e_acsl_u_7; @@ -69,17 +125,31 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_mul; __e_acsl_mpz_t __gen_e_acsl_m; int __gen_e_acsl_gt; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"m",0,m); __gen_e_acsl_u_7 = m; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"u",0, + __gen_e_acsl_u_7); __gmpz_init_set_si(__gen_e_acsl_u_8,__gen_e_acsl_u_7); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"u",0, + __gen_e_acsl_u_7); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, (__e_acsl_mpz_struct const *)(__gen_e_acsl_u_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl_u_8)); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"m",0,m); __gmpz_init_set_si(__gen_e_acsl_m,m); __gen_e_acsl_gt = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul), (__e_acsl_mpz_struct const *)(__gen_e_acsl_m)); - __e_acsl_assert(__gen_e_acsl_gt > 0,1,"Assertion","main", - "(\\let u = m; u * u) > m","tests/arith/let.c",24); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "(\\let u = m; u * u) > m"; + __gen_e_acsl_assert_data_6.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 24; + __e_acsl_assert(__gen_e_acsl_gt > 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gmpz_clear(__gen_e_acsl_u_8); __gmpz_clear(__gen_e_acsl_mul); __gmpz_clear(__gen_e_acsl_m); @@ -88,9 +158,20 @@ int main(void) char c = (char)'a'; { int __gen_e_acsl_u_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gen_e_acsl_u_9 = 'b'; - __e_acsl_assert((int)c < __gen_e_acsl_u_9,1,"Assertion","main", - "\\let u = \'b\'; c < u","tests/arith/let.c",27); + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_7,"c",0,c); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"u",0, + __gen_e_acsl_u_9); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\let u = \'b\'; c < u"; + __gen_e_acsl_assert_data_7.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 27; + __e_acsl_assert((int)c < __gen_e_acsl_u_9,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \let u = 'b'; c < u; */ ; float f = 1.0f; @@ -98,43 +179,99 @@ int main(void) __e_acsl_full_init((void *)(& f)); { float __gen_e_acsl_u_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"f",f); __gen_e_acsl_u_10 = f; - __e_acsl_assert(__gen_e_acsl_u_10 == f,1,"Assertion","main", - "\\let u = f; u == f","tests/arith/let.c",30); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"u", + __gen_e_acsl_u_10); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"f",f); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\let u = f; u == f"; + __gen_e_acsl_assert_data_8.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 30; + __e_acsl_assert(__gen_e_acsl_u_10 == f,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert \let u = f; u ≡ f; */ ; + /*@ assert \let u = f; u == f; */ ; int t[4] = {1, 2, 3, 4}; { int * /*[4]*/ __gen_e_acsl_u_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&t[1]", + (void *)(& t[1])); __gen_e_acsl_u_11 = & t[1]; - __e_acsl_assert(1,1,"Assertion","main","\\let u = &t[1]; 1 == 1", - "tests/arith/let.c",34); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\let u = &t[1]; 1 == 1"; + __gen_e_acsl_assert_data_9.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 34; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert \let u = &t[1]; 1 ≡ 1; */ ; + /*@ assert \let u = &t[1]; 1 == 1; */ ; { int * /*[4]*/ __gen_e_acsl_u_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&t[1]", + (void *)(& t[1])); __gen_e_acsl_u_12 = & t[1]; - __e_acsl_assert(1,1,"Assertion","main","(\\let u = &t[1]; 1) == 1", - "tests/arith/let.c",36); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "(\\let u = &t[1]; 1) == 1"; + __gen_e_acsl_assert_data_10.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 36; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert (\let u = &t[1]; 1) ≡ 1; */ ; + /*@ assert (\let u = &t[1]; 1) == 1; */ ; struct __anonstruct_r_1 r = {.x = 1, .y = 2}; __e_acsl_store_block((void *)(& r),(size_t)8); __e_acsl_full_init((void *)(& r)); { struct __anonstruct_r_1 __gen_e_acsl_u_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"r"); __gen_e_acsl_u_13 = r; - __e_acsl_assert(__gen_e_acsl_u_13.x + (long)__gen_e_acsl_u_13.y == 3L,1, - "Assertion","main","\\let u = r; u.x + u.y == 3", - "tests/arith/let.c",41); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"u.x",0, + __gen_e_acsl_u_13.x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"u.y",0, + __gen_e_acsl_u_13.y); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\let u = r; u.x + u.y == 3"; + __gen_e_acsl_assert_data_11.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 41; + __e_acsl_assert(__gen_e_acsl_u_13.x + (long)__gen_e_acsl_u_13.y == 3L, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert \let u = r; u.x + u.y ≡ 3; */ ; + /*@ assert \let u = r; u.x + u.y == 3; */ ; s.x = 5; { union __anonunion_s_2 __gen_e_acsl_u_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_union(& __gen_e_acsl_assert_data_12,"s"); __gen_e_acsl_u_14 = s; - __e_acsl_assert(__gen_e_acsl_u_14.x > 0,1,"Assertion","main", - "(\\let u = s; u.x) > 0","tests/arith/let.c",48); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"u.x",0, + __gen_e_acsl_u_14.x); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "(\\let u = s; u.x) > 0"; + __gen_e_acsl_assert_data_12.file = "tests/arith/let.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 48; + __e_acsl_assert(__gen_e_acsl_u_14.x > 0,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } /*@ assert (\let u = s; u.x) > 0; */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c b/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c index 90b0651a11521588af3b3799ee98b8a02010c5a5..aacd6577e217ef94514d96cad4286bd4564e8900 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -27,6 +27,7 @@ unsigned long long my_pow(unsigned int x, unsigned int n) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); unsigned long long x = my_pow((unsigned int)2,(unsigned int)63); { __e_acsl_mpz_t __gen_e_acsl_; @@ -38,7 +39,9 @@ int main(void) int __gen_e_acsl_mod_guard; __e_acsl_mpz_t __gen_e_acsl_mod; long __gen_e_acsl__4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl_,2L); + __e_acsl_assert_register_ulonglong(& __gen_e_acsl_assert_data,"x",0,x); __gmpz_init(__gen_e_acsl_x); __gmpz_import(__gen_e_acsl_x,(size_t)1,1,(size_t)8,0,(size_t)0, (void const *)(& x)); @@ -50,19 +53,35 @@ int main(void) __gmpz_add(__gen_e_acsl_add, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__3,0L); __gen_e_acsl_mod_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_init(__gen_e_acsl_mod); - /*@ assert E_ACSL: 2 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_mod_guard != 0,1,"Assertion","main", - "2 != 0","tests/arith/longlong.i",19); + /*@ assert E_ACSL: 2 != 0; */ + { + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "2 != 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/longlong.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 19; + __e_acsl_assert(__gen_e_acsl_mod_guard != 0, + & __gen_e_acsl_assert_data_2); + } __gmpz_tdiv_r(__gen_e_acsl_mod, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__4 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod)); - __e_acsl_assert(__gen_e_acsl__4 == 1L,1,"Assertion","main", - "(2 * x + 1) % 2 == 1","tests/arith/longlong.i",19); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "(2 * x + 1) % 2 == 1"; + __gen_e_acsl_assert_data.file = "tests/arith/longlong.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 19; + __e_acsl_assert(__gen_e_acsl__4 == 1L,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_x); __gmpz_clear(__gen_e_acsl_mul); @@ -71,8 +90,9 @@ int main(void) __gmpz_clear(__gen_e_acsl__3); __gmpz_clear(__gen_e_acsl_mod); } - /*@ assert (2 * x + 1) % 2 ≡ 1; */ ; + /*@ assert (2 * x + 1) % 2 == 1; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_not.c b/src/plugins/e-acsl/tests/arith/oracle/gen_not.c index a553f45a4423e9f96ccaef8deae944e4361dc3c3..60d41d15d8314cb2926dda6a82525235aaebeed4 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_not.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_not.c @@ -1,21 +1,45 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; - __e_acsl_assert(x == 0,1,"Assertion","main","x == 0","tests/arith/not.i",6); - /*@ assert x ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x == 0"; + __gen_e_acsl_assert_data.file = "tests/arith/not.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert x == 0; */ ; if (x) { - __e_acsl_assert(x != 0,1,"Assertion","main","x != 0","tests/arith/not.i", - 8); - /*@ assert x ≢ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "x != 0"; + __gen_e_acsl_assert_data_2.file = "tests/arith/not.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(x != 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert x != 0; */ ; } __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c b/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c index e0b0c88196bc2999ad0b71823873a96b033e8fa1..0999e13db427e306d56468343543299256d9936c 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c @@ -1,24 +1,28 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ -predicate p1(ℤ i, ℤ j, ℤ k) = - 0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12; +predicate p1(integer i, integer j, integer k) = + 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12; */ int __gen_e_acsl_p1(int i, int j, int k); -/*@ predicate p2(ℤ i, ℤ j, ℤ k) = 0 ≤ i ≤ j < k ≤ 10; +/*@ predicate p2(integer i, integer j, integer k) = 0 <= i <= j < k <= 10; */ int __gen_e_acsl_p2(int i, int j, int k); -/*@ predicate p3(ℤ i, ℤ j, ℤ k) = 0 ≤ i < j ≤ 10 ∧ 1 < k < 11; +/*@ +predicate p3(integer i, integer j, integer k) = + 0 <= i < j <= 10 && 1 < k < 11; */ int __gen_e_acsl_p3(int i, int j, int k); -/*@ predicate p4(ℤ i, ℤ j, ℤ k) = 0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k; +/*@ +predicate p4(integer i, integer j, integer k) = + 0 <= i <= k <= 10 && 1 <= j < k; */ int __gen_e_acsl_p4(int i, int j, int k); @@ -30,6 +34,7 @@ int main(void) { int __gen_e_acsl_forall; int __gen_e_acsl_x; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_x = 0; while (1) { @@ -47,14 +52,24 @@ int main(void) __gen_e_acsl_x ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main", - "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1", - "tests/arith/quantif.i",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1"; + __gen_e_acsl_assert_data.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ∀ ℤ x; 0 ≤ x ≤ 1 ⇒ x ≡ 0 ∨ x ≡ 1; */ ; + /*@ assert \forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1; */ ; { int __gen_e_acsl_forall_2; int __gen_e_acsl_x_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_x_2 = 0 + 1; while (1) { @@ -67,14 +82,24 @@ int main(void) __gen_e_acsl_x_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main", - "\\forall integer x; 0 < x <= 1 ==> x == 1", - "tests/arith/quantif.i",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\forall integer x; 0 < x <= 1 ==> x == 1", + 0,__gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\forall integer x; 0 < x <= 1 ==> x == 1"; + __gen_e_acsl_assert_data_2.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 17; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ∀ ℤ x; 0 < x ≤ 1 ⇒ x ≡ 1; */ ; + /*@ assert \forall integer x; 0 < x <= 1 ==> x == 1; */ ; { int __gen_e_acsl_forall_3; int __gen_e_acsl_x_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_forall_3 = 1; __gen_e_acsl_x_3 = 0; while (1) { @@ -87,16 +112,26 @@ int main(void) __gen_e_acsl_x_3 ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall_3,1,"Assertion","main", - "\\forall integer x; 0 <= x < 1 ==> x == 0", - "tests/arith/quantif.i",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\forall integer x; 0 <= x < 1 ==> x == 0", + 0,__gen_e_acsl_forall_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\forall integer x; 0 <= x < 1 ==> x == 0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 18; + __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ∀ ℤ x; 0 ≤ x < 1 ⇒ x ≡ 0; */ ; + /*@ assert \forall integer x; 0 <= x < 1 ==> x == 0; */ ; { int __gen_e_acsl_forall_4; int __gen_e_acsl_x_4; int __gen_e_acsl_y; int __gen_e_acsl_z; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gen_e_acsl_forall_4 = 1; __gen_e_acsl_x_4 = 0; while (1) { @@ -120,19 +155,29 @@ int main(void) __gen_e_acsl_x_4 ++; } e_acsl_end_loop4: ; - __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main", - "\\forall integer x, integer y, integer z;\n 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1", - "tests/arith/quantif.i",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\forall integer x, integer y, integer z;\n 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1", + 0,__gen_e_acsl_forall_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\forall integer x, integer y, integer z;\n 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1"; + __gen_e_acsl_assert_data_4.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 22; + __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert - ∀ ℤ x, ℤ y, ℤ z; - 0 ≤ x < 2 ∧ 0 ≤ y < 5 ∧ 0 ≤ z ≤ y ⇒ x + z ≤ y + 1; + \forall integer x, integer y, integer z; + 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1; */ ; { int __gen_e_acsl_exists; int __gen_e_acsl_x_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_exists = 0; __gen_e_acsl_x_5 = 0; while (1) { @@ -145,14 +190,24 @@ int main(void) __gen_e_acsl_x_5 ++; } e_acsl_end_loop5: ; - __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main", - "\\exists int x; 0 <= x < 10 && x == 5", - "tests/arith/quantif.i",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\exists int x; 0 <= x < 10 && x == 5",0, + __gen_e_acsl_exists); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\exists int x; 0 <= x < 10 && x == 5"; + __gen_e_acsl_assert_data_5.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 27; + __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ∃ int x; 0 ≤ x < 10 ∧ x ≡ 5; */ ; + /*@ assert \exists int x; 0 <= x < 10 && x == 5; */ ; { int __gen_e_acsl_forall_5; int __gen_e_acsl_x_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gen_e_acsl_forall_5 = 1; __gen_e_acsl_x_6 = 0; while (1) { @@ -186,20 +241,30 @@ int main(void) __gen_e_acsl_x_6 ++; } e_acsl_end_loop7: ; - __e_acsl_assert(__gen_e_acsl_forall_5,1,"Assertion","main", - "\\forall int x;\n 0 <= x < 10 ==>\n x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)", - "tests/arith/quantif.i",31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\forall int x;\n 0 <= x < 10 ==>\n x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)", + 0,__gen_e_acsl_forall_5); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\forall int x;\n 0 <= x < 10 ==>\n x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)"; + __gen_e_acsl_assert_data_6.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 31; + __e_acsl_assert(__gen_e_acsl_forall_5,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert - ∀ int x; - 0 ≤ x < 10 ⇒ - x % 2 ≡ 0 ⇒ (∃ ℤ y; 0 ≤ y ≤ x / 2 ∧ x ≡ 2 * y); + \forall int x; + 0 <= x < 10 ==> + x % 2 == 0 ==> (\exists integer y; 0 <= y <= x / 2 && x == 2 * y); */ ; { int __gen_e_acsl_forall_6; int __gen_e_acsl_x_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gen_e_acsl_forall_6 = 1; __gen_e_acsl_x_7 = 0; while (1) { @@ -247,16 +312,24 @@ int main(void) __gen_e_acsl_x_7 ++; } e_acsl_end_loop10: ; - __e_acsl_assert(__gen_e_acsl_forall_6,1,"Assertion","main", - "\\forall int x;\n 0 <= x < 10 ==>\n (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n (\\forall int y; -10 <= y < 0 ==> y <= x)", - "tests/arith/quantif.i",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\forall int x;\n 0 <= x < 10 ==>\n (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n (\\forall int y; -10 <= y < 0 ==> y <= x)", + 0,__gen_e_acsl_forall_6); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\forall int x;\n 0 <= x < 10 ==>\n (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n (\\forall int y; -10 <= y < 0 ==> y <= x)"; + __gen_e_acsl_assert_data_7.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 36; + __e_acsl_assert(__gen_e_acsl_forall_6,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert - ∀ int x; - 0 ≤ x < 10 ⇒ - (∀ int y; 10 ≤ y < 20 ⇒ x ≤ y) ∧ - (∀ int y; -10 ≤ y < 0 ⇒ y ≤ x); + \forall int x; + 0 <= x < 10 ==> + (\forall int y; 10 <= y < 20 ==> x <= y) && + (\forall int y; -10 <= y < 0 ==> y <= x); */ ; { @@ -266,6 +339,8 @@ int main(void) { int __gen_e_acsl_forall_9; int __gen_e_acsl_i; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gen_e_acsl_forall_9 = 1; __gen_e_acsl_i = 0; while (1) { @@ -284,14 +359,24 @@ int main(void) __gen_e_acsl_i ++; } e_acsl_end_loop11: ; - __e_acsl_assert(__gen_e_acsl_forall_9,1,"Assertion","main", - "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])", - "tests/arith/quantif.i",43); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])", + 0,__gen_e_acsl_forall_9); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])"; + __gen_e_acsl_assert_data_8.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 43; + __e_acsl_assert(__gen_e_acsl_forall_9,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ∀ ℤ i; 0 ≤ i < 10 ⇒ \valid(&buf[i]); */ ; + /*@ assert \forall integer i; 0 <= i < 10 ==> \valid(&buf[i]); */ ; { int __gen_e_acsl_forall_10; int __gen_e_acsl_i_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_forall_10 = 1; __gen_e_acsl_i_2 = (char)0; while (1) { @@ -310,14 +395,24 @@ int main(void) __gen_e_acsl_i_2 ++; } e_acsl_end_loop12: ; - __e_acsl_assert(__gen_e_acsl_forall_10,1,"Assertion","main", - "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])", - "tests/arith/quantif.i",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])", + 0,__gen_e_acsl_forall_10); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])"; + __gen_e_acsl_assert_data_9.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 44; + __e_acsl_assert(__gen_e_acsl_forall_10,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ∀ char i; 0 ≤ i < 10 ⇒ \valid(&buf[i]); */ ; + /*@ assert \forall char i; 0 <= i < 10 ==> \valid(&buf[i]); */ ; { int __gen_e_acsl_forall_11; unsigned long __gen_e_acsl_i_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gen_e_acsl_forall_11 = 1; __gen_e_acsl_i_3 = 0UL; while (1) { @@ -336,14 +431,24 @@ int main(void) __gen_e_acsl_i_3 ++; } e_acsl_end_loop13: ; - __e_acsl_assert(__gen_e_acsl_forall_11,1,"Assertion","main", - "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])", - "tests/arith/quantif.i",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])", + 0,__gen_e_acsl_forall_11); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])"; + __gen_e_acsl_assert_data_10.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 45; + __e_acsl_assert(__gen_e_acsl_forall_11,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ∀ ℤ i; 0 ≤ i < len ⇒ \valid(&buf[i]); */ ; + /*@ assert \forall integer i; 0 <= i < len ==> \valid(&buf[i]); */ ; { int __gen_e_acsl_forall_12; __e_acsl_mpz_t __gen_e_acsl_i_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_forall_12 = 1; __gmpz_init(__gen_e_acsl_i_4); { @@ -391,38 +496,70 @@ int main(void) } } e_acsl_end_loop14: ; - __e_acsl_assert(__gen_e_acsl_forall_12,1,"Assertion","main", - "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])", - "tests/arith/quantif.i",46); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])", + 0,__gen_e_acsl_forall_12); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])"; + __gen_e_acsl_assert_data_11.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 46; + __e_acsl_assert(__gen_e_acsl_forall_12,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gmpz_clear(__gen_e_acsl_i_4); } - /*@ assert ∀ ℤ i; 0 ≤ i ≤ len ⇒ \valid(&buf[i]); */ ; + /*@ assert \forall integer i; 0 <= i <= len ==> \valid(&buf[i]); */ ; __e_acsl_delete_block((void *)(buf)); } - __e_acsl_assert(1,1,"Assertion","main", - "\\forall integer x; 0 < x < 1 ==> \\false", - "tests/arith/quantif.i",50); - /*@ assert ∀ ℤ x; 0 < x < 1 ⇒ \false; */ ; - __e_acsl_assert(! 0,1,"Assertion","main", - "!(\\exists char c; 10 <= c < 10 && c == 10)", - "tests/arith/quantif.i",51); - /*@ assert ¬(∃ char c; 10 ≤ c < 10 ∧ c ≡ 10); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\forall integer x; 0 < x < 1 ==> \\false"; + __gen_e_acsl_assert_data_12.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 50; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_12); + } + /*@ assert \forall integer x; 0 < x < 1 ==> \false; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "!(\\exists char c; 10 <= c < 10 && c == 10)"; + __gen_e_acsl_assert_data_13.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 51; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_13); + } + /*@ assert !(\exists char c; 10 <= c < 10 && c == 10); */ ; { int __gen_e_acsl_u; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; __gen_e_acsl_u = 5; - __e_acsl_assert(1,1,"Assertion","main", - "\\let u = 5;\n\\forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \\false", - "tests/arith/quantif.i",53); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\let u = 5;\n\\forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \\false"; + __gen_e_acsl_assert_data_14.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 53; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_14); } /*@ - assert \let u = 5; ∀ ℤ x, ℤ y; 0 ≤ x < 2 ∧ 4 < y < u ⇒ \false; - */ + assert \let u = 5; + \forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \false; */ ; { int __gen_e_acsl_forall_13; int __gen_e_acsl_i_6; int __gen_e_acsl_j; int __gen_e_acsl_k; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; __gen_e_acsl_forall_13 = 1; __gen_e_acsl_i_6 = 0; while (1) { @@ -451,15 +588,23 @@ int main(void) __gen_e_acsl_i_6 ++; } e_acsl_end_loop15: ; - __e_acsl_assert(__gen_e_acsl_forall_13,1,"Assertion","main", - "forall_multiple_binders_1:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)", - "tests/arith/quantif.i",59); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "forall_multiple_binders_1:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)", + 0,__gen_e_acsl_forall_13); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "forall_multiple_binders_1:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)"; + __gen_e_acsl_assert_data_15.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 59; + __e_acsl_assert(__gen_e_acsl_forall_13,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } /*@ assert forall_multiple_binders_1: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12 ⇒ p1(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k); */ ; { @@ -467,6 +612,8 @@ int main(void) int __gen_e_acsl_i_7; int __gen_e_acsl_j_2; int __gen_e_acsl_k_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gen_e_acsl_forall_14 = 1; __gen_e_acsl_i_7 = 0; while (1) { @@ -495,14 +642,23 @@ int main(void) __gen_e_acsl_i_7 ++; } e_acsl_end_loop16: ; - __e_acsl_assert(__gen_e_acsl_forall_14,1,"Assertion","main", - "forall_multiple_binders_2:\n \\forall integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 ==> p2(i, j, k)", - "tests/arith/quantif.i",62); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "forall_multiple_binders_2:\n \\forall integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 ==> p2(i, j, k)", + 0,__gen_e_acsl_forall_14); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "forall_multiple_binders_2:\n \\forall integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 ==> p2(i, j, k)"; + __gen_e_acsl_assert_data_16.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 62; + __e_acsl_assert(__gen_e_acsl_forall_14,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } /*@ assert forall_multiple_binders_2: - ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i ≤ j < k ≤ 10 ⇒ p2(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i <= j < k <= 10 ==> p2(i, j, k); */ ; { @@ -510,6 +666,8 @@ int main(void) int __gen_e_acsl_i_8; int __gen_e_acsl_j_3; int __gen_e_acsl_k_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; __gen_e_acsl_forall_15 = 1; __gen_e_acsl_i_8 = 0; while (1) { @@ -538,15 +696,23 @@ int main(void) __gen_e_acsl_i_8 ++; } e_acsl_end_loop17: ; - __e_acsl_assert(__gen_e_acsl_forall_15,1,"Assertion","main", - "forall_multiple_binders_3:\n \\forall integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)", - "tests/arith/quantif.i",65); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "forall_multiple_binders_3:\n \\forall integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)", + 0,__gen_e_acsl_forall_15); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "forall_multiple_binders_3:\n \\forall integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)"; + __gen_e_acsl_assert_data_17.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 65; + __e_acsl_assert(__gen_e_acsl_forall_15,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } /*@ assert forall_multiple_binders_3: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i < j ≤ 10 ∧ 1 < k < 11 ⇒ p3(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k); */ ; { @@ -554,6 +720,8 @@ int main(void) int __gen_e_acsl_i_9; int __gen_e_acsl_j_4; int __gen_e_acsl_k_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; __gen_e_acsl_forall_16 = 1; __gen_e_acsl_i_9 = 0; while (1) { @@ -582,15 +750,23 @@ int main(void) __gen_e_acsl_i_9 ++; } e_acsl_end_loop18: ; - __e_acsl_assert(__gen_e_acsl_forall_16,1,"Assertion","main", - "forall_multiple_binders_4:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)", - "tests/arith/quantif.i",68); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "forall_multiple_binders_4:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)", + 0,__gen_e_acsl_forall_16); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "forall_multiple_binders_4:\n \\forall integer i, integer j, integer k;\n 0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)"; + __gen_e_acsl_assert_data_18.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 68; + __e_acsl_assert(__gen_e_acsl_forall_16,& __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } /*@ assert forall_multiple_binders_4: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i < 10 ⇒ 1 < j ≤ 11 ⇒ 2 ≤ k ≤ 12 ⇒ p1(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k); */ ; { @@ -598,6 +774,8 @@ int main(void) int __gen_e_acsl_i_10; int __gen_e_acsl_k_5; int __gen_e_acsl_j_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; __gen_e_acsl_forall_17 = 1; __gen_e_acsl_i_10 = 0; while (1) { @@ -626,15 +804,23 @@ int main(void) __gen_e_acsl_i_10 ++; } e_acsl_end_loop19: ; - __e_acsl_assert(__gen_e_acsl_forall_17,1,"Assertion","main", - "forall_unordered_binders:\n \\forall integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)", - "tests/arith/quantif.i",71); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "forall_unordered_binders:\n \\forall integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)", + 0,__gen_e_acsl_forall_17); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "forall_unordered_binders:\n \\forall integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)"; + __gen_e_acsl_assert_data_19.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 71; + __e_acsl_assert(__gen_e_acsl_forall_17,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } /*@ assert forall_unordered_binders: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k ⇒ p4(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k); */ ; { @@ -642,6 +828,8 @@ int main(void) int __gen_e_acsl_i_11; int __gen_e_acsl_j_6; int __gen_e_acsl_k_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; __gen_e_acsl_exists_3 = 0; __gen_e_acsl_i_11 = 0; while (1) { @@ -670,15 +858,23 @@ int main(void) __gen_e_acsl_i_11 ++; } e_acsl_end_loop20: ; - __e_acsl_assert(__gen_e_acsl_exists_3,1,"Assertion","main", - "exists_multiple_binders_1:\n \\exists integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)", - "tests/arith/quantif.i",74); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "exists_multiple_binders_1:\n \\exists integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)", + 0,__gen_e_acsl_exists_3); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "exists_multiple_binders_1:\n \\exists integer i, integer j, integer k;\n 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)"; + __gen_e_acsl_assert_data_20.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 74; + __e_acsl_assert(__gen_e_acsl_exists_3,& __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } /*@ assert exists_multiple_binders_1: - ∃ ℤ i, ℤ j, ℤ k; - 0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12 ∧ p1(i, j, k); + \exists integer i, integer j, integer k; + 0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k); */ ; { @@ -686,6 +882,8 @@ int main(void) int __gen_e_acsl_i_12; int __gen_e_acsl_j_7; int __gen_e_acsl_k_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; __gen_e_acsl_exists_4 = 0; __gen_e_acsl_i_12 = 0; while (1) { @@ -714,14 +912,23 @@ int main(void) __gen_e_acsl_i_12 ++; } e_acsl_end_loop21: ; - __e_acsl_assert(__gen_e_acsl_exists_4,1,"Assertion","main", - "exists_multiple_binders_2:\n \\exists integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 && p2(i, j, k)", - "tests/arith/quantif.i",77); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "exists_multiple_binders_2:\n \\exists integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 && p2(i, j, k)", + 0,__gen_e_acsl_exists_4); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "exists_multiple_binders_2:\n \\exists integer i, integer j, integer k;\n 0 <= i <= j < k <= 10 && p2(i, j, k)"; + __gen_e_acsl_assert_data_21.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 77; + __e_acsl_assert(__gen_e_acsl_exists_4,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } /*@ assert exists_multiple_binders_2: - ∃ ℤ i, ℤ j, ℤ k; 0 ≤ i ≤ j < k ≤ 10 ∧ p2(i, j, k); + \exists integer i, integer j, integer k; + 0 <= i <= j < k <= 10 && p2(i, j, k); */ ; { @@ -729,6 +936,8 @@ int main(void) int __gen_e_acsl_i_13; int __gen_e_acsl_j_8; int __gen_e_acsl_k_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; __gen_e_acsl_exists_5 = 0; __gen_e_acsl_i_13 = 0; while (1) { @@ -757,15 +966,23 @@ int main(void) __gen_e_acsl_i_13 ++; } e_acsl_end_loop22: ; - __e_acsl_assert(__gen_e_acsl_exists_5,1,"Assertion","main", - "exists_multiple_binders_3:\n \\exists integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)", - "tests/arith/quantif.i",80); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "exists_multiple_binders_3:\n \\exists integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)", + 0,__gen_e_acsl_exists_5); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "exists_multiple_binders_3:\n \\exists integer i, integer j, integer k;\n 0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)"; + __gen_e_acsl_assert_data_22.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 80; + __e_acsl_assert(__gen_e_acsl_exists_5,& __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } /*@ assert exists_multiple_binders_3: - ∃ ℤ i, ℤ j, ℤ k; - 0 ≤ i < j ≤ 10 ∧ 1 < k < 11 ∧ p3(i, j, k); + \exists integer i, integer j, integer k; + 0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k); */ ; { @@ -773,6 +990,8 @@ int main(void) int __gen_e_acsl_i_14; int __gen_e_acsl_k_9; int __gen_e_acsl_j_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; __gen_e_acsl_exists_6 = 0; __gen_e_acsl_i_14 = 0; while (1) { @@ -801,71 +1020,86 @@ int main(void) __gen_e_acsl_i_14 ++; } e_acsl_end_loop23: ; - __e_acsl_assert(__gen_e_acsl_exists_6,1,"Assertion","main", - "exists_unordered_binders:\n \\exists integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)", - "tests/arith/quantif.i",83); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "exists_unordered_binders:\n \\exists integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)", + 0,__gen_e_acsl_exists_6); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "exists_unordered_binders:\n \\exists integer i, integer j, integer k;\n 0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)"; + __gen_e_acsl_assert_data_23.file = "tests/arith/quantif.i"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 83; + __e_acsl_assert(__gen_e_acsl_exists_6,& __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); } /*@ assert exists_unordered_binders: - ∃ ℤ i, ℤ j, ℤ k; - 0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k ∧ p4(i, j, k); + \exists integer i, integer j, integer k; + 0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k); */ ; - /*@ assert failed_invalid_guards: ∀ ℤ i; 10 > i ≥ 0 ⇒ p1(i, 2, 2); - */ + /*@ + assert + failed_invalid_guards: \forall integer i; 10 > i >= 0 ==> p1(i, 2, 2); */ ; /*@ assert failed_unguarded_k: - ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i < 10 ∧ 1 < j ≤ 11 ⇒ p1(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i < 10 && 1 < j <= 11 ==> p1(i, j, k); */ ; /*@ assert - failed_non_integer: ∀ ℠i; 0 ≤ i < 10 ⇒ p1(\truncate(i), 2, 2); */ - ; - /*@ assert failed_missing_lower_bound: ∀ ℤ i; i < 10 ⇒ p1(i, 2, 2); + failed_non_integer: \forall real i; 0 <= i < 10 ==> p1(\truncate(i), 2, 2); */ ; - /*@ assert failded_missing_upper_bound: ∀ ℤ i; 0 ≤ i ⇒ p1(i, 2, 2); - */ + /*@ + assert + failed_missing_lower_bound: \forall integer i; i < 10 ==> p1(i, 2, 2); */ + ; + /*@ + assert + failded_missing_upper_bound: \forall integer i; 0 <= i ==> p1(i, 2, 2); */ ; /*@ assert - failed_invalid_upper_bound_1: ∀ ℤ i, ℤ j; 0 ≤ i < j ⇒ p1(i, j, 2); + failed_invalid_upper_bound_1: + \forall integer i, integer j; 0 <= i < j ==> p1(i, j, 2); */ ; /*@ assert failed_invalid_upper_bound_2: - ∀ ℤ i, ℤ j; i < j ∧ 0 ≤ i ⇒ p1(i, 2, 2); + \forall integer i, integer j; i < j && 0 <= i ==> p1(i, 2, 2); */ ; /*@ assert failed_extra_constraint: - ∀ ℤ i, ℤ j; 0 ≤ i < j ∧ i < 10 ∧ 3 ≤ j < 5 ⇒ p1(i, j, 2); + \forall integer i, integer j; + 0 <= i < j && i < 10 && 3 <= j < 5 ==> p1(i, j, 2); */ ; /*@ assert failed_multiple_upper_bounds: - ∀ ℤ i, ℤ j; 0 ≤ i < j < i ∧ j ≤ 10 ⇒ p1(i, j, 2); + \forall integer i, integer j; 0 <= i < j < i && j <= 10 ==> p1(i, j, 2); */ ; /*@ assert multiple_linked_upper: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i < k ∧ 1 ≤ j < k ∧ 2 ≤ k < 10 ⇒ p1(i, j, k); + \forall integer i, integer j, integer k; + 0 <= i < k && 1 <= j < k && 2 <= k < 10 ==> p1(i, j, k); */ ; /*@ assert multiple_guard: - ∀ ℤ i, ℤ j; - 0 ≤ i < 10 ∧ 2 ≤ i < 8 ∧ 4 ≤ j < 6 ⇒ p1(i, j, 2); + \forall integer i, integer j; + 0 <= i < 10 && 2 <= i < 8 && 4 <= j < 6 ==> p1(i, j, 2); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c b/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c index e50e4e0f0f1a4c6a8d156203d2ca0c30e8ad12c8..2574283ecfb701c08296fd950fd36f3b9f10a59d 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c +++ b/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -20,12 +20,14 @@ double avg(double a, double b) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { __e_acsl_mpq_t __gen_e_acsl_; __e_acsl_mpq_t __gen_e_acsl__2; __e_acsl_mpq_t __gen_e_acsl__3; __e_acsl_mpq_t __gen_e_acsl_add; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gmpq_init(__gen_e_acsl_); __gmpq_set_str(__gen_e_acsl_,"3",10); __gmpq_init(__gen_e_acsl__2); @@ -38,34 +40,57 @@ int main(void) (__e_acsl_mpq_struct const *)(__gen_e_acsl__3)); __gen_e_acsl_eq = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_), (__e_acsl_mpq_struct const *)(__gen_e_acsl_add)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "3 == 1.5 + 1.5","tests/arith/rationals.c",12); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "3 == 1.5 + 1.5"; + __gen_e_acsl_assert_data.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); __gmpq_clear(__gen_e_acsl_); __gmpq_clear(__gen_e_acsl__2); __gmpq_clear(__gen_e_acsl__3); __gmpq_clear(__gen_e_acsl_add); } - /*@ assert 3 ≡ 1.5 + 1.5; */ ; + /*@ assert 3 == 1.5 + 1.5; */ ; { __e_acsl_mpq_t __gen_e_acsl__4; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__4); __gmpq_set_str(__gen_e_acsl__4,"01/10",10); __gen_e_acsl_eq_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__4), (__e_acsl_mpq_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","0.1 == 0.1", - "tests/arith/rationals.c",13); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "0.1 == 0.1"; + __gen_e_acsl_assert_data_2.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2); __gmpq_clear(__gen_e_acsl__4); } - /*@ assert 0.1 ≡ 0.1; */ ; - __e_acsl_assert(1,1,"Assertion","main","1.0 == 1.0", - "tests/arith/rationals.c",14); - /*@ assert 1.0 ≡ 1.0; */ ; + /*@ assert 0.1 == 0.1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "1.0 == 1.0"; + __gen_e_acsl_assert_data_3.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_3); + } + /*@ assert 1.0 == 1.0; */ ; { __e_acsl_mpq_t __gen_e_acsl__5; double __gen_e_acsl__6; __e_acsl_mpq_t __gen_e_acsl__7; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__5); __gmpq_set_str(__gen_e_acsl__5,"01/10",10); __gen_e_acsl__6 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); @@ -74,30 +99,42 @@ int main(void) __gmpq_set_d(__gen_e_acsl__7,__gen_e_acsl__6); __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7), (__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main", - "(double)0.1 != 0.1","tests/arith/rationals.c",15); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "(double)0.1 != 0.1"; + __gen_e_acsl_assert_data_4.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 15; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_4); __gmpq_clear(__gen_e_acsl__5); __gmpq_clear(__gen_e_acsl__7); } - /*@ assert (double)0.1 ≢ 0.1; */ ; + /*@ assert (double)0.1 != 0.1; */ ; { __e_acsl_mpq_t __gen_e_acsl__8; double __gen_e_acsl__9; double __gen_e_acsl__10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__8); __gmpq_set_str(__gen_e_acsl__8,"01/10",10); __gen_e_acsl__9 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__8)); __gen_e_acsl__10 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__8)); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "(float)0.1 != (double)0.1"; + __gen_e_acsl_assert_data_5.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 16; /*@ assert Eva: is_nan_or_infinite: \is_finite(__gen_e_acsl__9); */ /*@ assert Eva: is_nan_or_infinite: \is_finite(__gen_e_acsl__10); */ /*@ assert Eva: is_nan_or_infinite: \is_finite((float)__gen_e_acsl__9); */ - __e_acsl_assert((double)((float)__gen_e_acsl__9) != __gen_e_acsl__10,1, - "Assertion","main","(float)0.1 != (double)0.1", - "tests/arith/rationals.c",16); + __e_acsl_assert((double)((float)__gen_e_acsl__9) != __gen_e_acsl__10, + & __gen_e_acsl_assert_data_5); __gmpq_clear(__gen_e_acsl__8); } - /*@ assert (float)0.1 ≢ (double)0.1; */ ; + /*@ assert (float)0.1 != (double)0.1; */ ; { __e_acsl_mpq_t __gen_e_acsl__11; double __gen_e_acsl__12; @@ -106,6 +143,8 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl_add_2; __e_acsl_mpq_t __gen_e_acsl__15; int __gen_e_acsl_ne_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__11); __gmpq_set_str(__gen_e_acsl__11,"11/10",10); __gen_e_acsl__12 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__11)); @@ -122,15 +161,20 @@ int main(void) __gmpq_set_d(__gen_e_acsl__15,__gen_e_acsl__12); __gen_e_acsl_ne_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__15), (__e_acsl_mpq_struct const *)(__gen_e_acsl_add_2)); - __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","main", - "(double)1.1 != 1 + 0.1","tests/arith/rationals.c",17); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "(double)1.1 != 1 + 0.1"; + __gen_e_acsl_assert_data_7.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 17; + __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_7); __gmpq_clear(__gen_e_acsl__11); __gmpq_clear(__gen_e_acsl__13); __gmpq_clear(__gen_e_acsl__14); __gmpq_clear(__gen_e_acsl_add_2); __gmpq_clear(__gen_e_acsl__15); } - /*@ assert (double)1.1 ≢ 1 + 0.1; */ ; + /*@ assert (double)1.1 != 1 + 0.1; */ ; { __e_acsl_mpq_t __gen_e_acsl__16; __e_acsl_mpq_t __gen_e_acsl__17; @@ -139,6 +183,8 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl__19; __e_acsl_mpq_t __gen_e_acsl_sub; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__16); __gmpq_set_str(__gen_e_acsl__16,"1",10); __gmpq_init(__gen_e_acsl__17); @@ -157,8 +203,13 @@ int main(void) (__e_acsl_mpq_struct const *)(__gen_e_acsl__19)); __gen_e_acsl_eq_3 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_3), (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main", - "1 + 0.1 == 2 - 0.9","tests/arith/rationals.c",18); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "1 + 0.1 == 2 - 0.9"; + __gen_e_acsl_assert_data_8.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 18; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_8); __gmpq_clear(__gen_e_acsl__16); __gmpq_clear(__gen_e_acsl__17); __gmpq_clear(__gen_e_acsl_add_3); @@ -166,7 +217,7 @@ int main(void) __gmpq_clear(__gen_e_acsl__19); __gmpq_clear(__gen_e_acsl_sub); } - /*@ assert 1 + 0.1 ≡ 2 - 0.9; */ ; + /*@ assert 1 + 0.1 == 2 - 0.9; */ ; float x = 0.2f; float y = 0.3f; float sum = x + y; @@ -176,6 +227,11 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl_mul; __e_acsl_mpq_t __gen_e_acsl__21; int __gen_e_acsl_ne_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"sum",sum); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"x",x); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"y",y); __gmpq_init(__gen_e_acsl_y); __gmpq_set_d(__gen_e_acsl_y,(double)y); __gmpq_init(__gen_e_acsl__20); @@ -188,14 +244,20 @@ int main(void) __gmpq_set_d(__gen_e_acsl__21,(double)sum); __gen_e_acsl_ne_3 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__21), (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul)); - __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","main", - "sum != x * y","tests/arith/rationals.c",20); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "sum != x * y"; + __gen_e_acsl_assert_data_9.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 20; + __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); __gmpq_clear(__gen_e_acsl_y); __gmpq_clear(__gen_e_acsl__20); __gmpq_clear(__gen_e_acsl_mul); __gmpq_clear(__gen_e_acsl__21); } - /*@ assert sum ≢ x * y; */ ; + /*@ assert sum != x * y; */ ; double d = 0.1; __gen_e_acsl_avg(4.3,11.7); { @@ -204,6 +266,8 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl_add_4; __e_acsl_mpq_t __gen_e_acsl__24; int __gen_e_acsl_ne_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gmpq_init(__gen_e_acsl__22); __gmpq_set_str(__gen_e_acsl__22,"1",10); __gmpq_init(__gen_e_acsl__23); @@ -216,14 +280,19 @@ int main(void) __gmpq_set_d(__gen_e_acsl__24,1.1); __gen_e_acsl_ne_4 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__24), (__e_acsl_mpq_struct const *)(__gen_e_acsl_add_4)); - __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","main", - "1.1d != 1 + 0.1","tests/arith/rationals.c",28); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "1.1d != 1 + 0.1"; + __gen_e_acsl_assert_data_10.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 28; + __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_10); __gmpq_clear(__gen_e_acsl__22); __gmpq_clear(__gen_e_acsl__23); __gmpq_clear(__gen_e_acsl_add_4); __gmpq_clear(__gen_e_acsl__24); } - /*@ assert 1.1d ≢ 1 + 0.1; */ ; + /*@ assert 1.1d != 1 + 0.1; */ ; short a = (short)1; short b = (short)1; { @@ -234,6 +303,10 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl__28; __e_acsl_mpq_t __gen_e_acsl_sub_2; int __gen_e_acsl_gt; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_11,"a",0,a); + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_11,"b",0,b); __gmpq_init(__gen_e_acsl__25); __gmpq_set_si(__gen_e_acsl__25,(long)a,1UL); __gmpq_init(__gen_e_acsl__26); @@ -252,8 +325,14 @@ int main(void) (__e_acsl_mpq_struct const *)(__gen_e_acsl__28)); __gen_e_acsl_gt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_5), (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub_2)); - __e_acsl_assert(__gen_e_acsl_gt > 0,1,"Assertion","main", - "a + b > 2. - 1.","tests/arith/rationals.c",31); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "a + b > 2. - 1."; + __gen_e_acsl_assert_data_11.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 31; + __e_acsl_assert(__gen_e_acsl_gt > 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gmpq_clear(__gen_e_acsl__25); __gmpq_clear(__gen_e_acsl__26); __gmpq_clear(__gen_e_acsl_add_5); @@ -263,6 +342,7 @@ int main(void) } /*@ assert a + b > 2. - 1.; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } @@ -297,7 +377,12 @@ double __gen_e_acsl_avg(double a, double b) __e_acsl_mpq_t __gen_e_acsl__3; int __gen_e_acsl_lt; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_delta = 1; + __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"\\old(a)", + (__e_acsl_mpq_struct const *)(__gen_e_acsl_at)); + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\old(b)", + __gen_e_acsl_at_2); __gmpq_init(__gen_e_acsl_); __gmpq_set_d(__gen_e_acsl_,__gen_e_acsl_at_2); __gmpq_init(__gen_e_acsl_add); @@ -313,12 +398,18 @@ double __gen_e_acsl_avg(double a, double b) __gmpq_init(__gen_e_acsl_avg_real); __gmpq_set(__gen_e_acsl_avg_real, (__e_acsl_mpq_struct const *)(__gen_e_acsl_div)); + __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"avg_real", + (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"delta",0, + __gen_e_acsl_delta); __gmpq_init(__gen_e_acsl_delta_2); __gmpq_set_si(__gen_e_acsl_delta_2,(long)__gen_e_acsl_delta,1UL); __gmpq_init(__gen_e_acsl_sub); __gmpq_sub(__gen_e_acsl_sub, (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real), (__e_acsl_mpq_struct const *)(__gen_e_acsl_delta_2)); + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\result", + __retres); __gmpq_init(__gen_e_acsl__3); __gmpq_set_d(__gen_e_acsl__3,__retres); __gen_e_acsl_lt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_sub), @@ -328,6 +419,12 @@ double __gen_e_acsl_avg(double a, double b) __e_acsl_mpq_t __gen_e_acsl_add_2; __e_acsl_mpq_t __gen_e_acsl__4; int __gen_e_acsl_lt_2; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\result", + __retres); + __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"avg_real", + (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"delta",0, + __gen_e_acsl_delta); __gmpq_init(__gen_e_acsl_delta_3); __gmpq_set_si(__gen_e_acsl_delta_3,(long)__gen_e_acsl_delta,1UL); __gmpq_init(__gen_e_acsl_add_2); @@ -344,9 +441,14 @@ double __gen_e_acsl_avg(double a, double b) __gmpq_clear(__gen_e_acsl__4); } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Postcondition","avg", - "\\let delta = 1;\n\\let avg_real = (\\old(a) + \\old(b)) / 2;\n avg_real - delta < \\result < avg_real + delta", - "tests/arith/rationals.c",4); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\let delta = 1;\n\\let avg_real = (\\old(a) + \\old(b)) / 2;\n avg_real - delta < \\result < avg_real + delta"; + __gen_e_acsl_assert_data.file = "tests/arith/rationals.c"; + __gen_e_acsl_assert_data.fct = "avg"; + __gen_e_acsl_assert_data.line = 4; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpq_clear(__gen_e_acsl_avg_real); __gmpq_clear(__gen_e_acsl_); __gmpq_clear(__gen_e_acsl_add); diff --git a/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle index 761e0a99df75073bd2c6b624a90886f3ce9daf7d..a481bf0eed1d199fefb02fc50031cc2a8555c70a 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle @@ -3,17 +3,65 @@ E-ACSL construct `let-binding on array or pointer' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/arith/let.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:7: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:7: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:10: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:10: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:9: Warning: assertion got status unknown. [eva:alarm] tests/arith/let.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:15: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:19: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:24: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:24: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:24: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:24: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/let.c:24: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:27: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:30: Warning: + function __e_acsl_assert_register_float: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:30: Warning: + function __e_acsl_assert_register_float: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:30: Warning: assertion got status unknown. [eva:alarm] tests/arith/let.c:34: Warning: assertion got status unknown. [eva:alarm] tests/arith/let.c:36: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/let.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:41: Warning: assertion got status unknown. +[eva:alarm] tests/arith/let.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/let.c:48: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle index 2eaa50601e582586894367106078a8ef630d85eb..7e5ee50865ee1b646c0390af22d90c2782795d18 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle @@ -2,37 +2,39 @@ [e-acsl] tests/arith/quantif.i:88: Warning: invalid E-ACSL construct `invalid guard 10 > i in quantification - failed_invalid_guards: ∀ ℤ i; 10 > i ≥ 0 ⇒ p1(i, 2, 2). - Missing guard for i. Only < and ≤ are allowed to guard quantifier variables'. + failed_invalid_guards: \forall integer i; 10 > i >= 0 ==> p1(i, 2, 2). + Missing guard for i. Only < and <= are allowed to guard quantifier variables'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:90: Warning: invalid E-ACSL construct `invalid guard p1(i, j, k) in quantification failed_unguarded_k: - ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i < 10 ∧ 1 < j ≤ 11 ⇒ p1(i, j, k). + \forall integer i, integer j, integer k; + 0 <= i < 10 && 1 < j <= 11 ==> p1(i, j, k). Missing guard for k. '. Ignoring annotation. [e-acsl] tests/arith/quantif.i:92: Warning: E-ACSL construct `non integer variable i in quantification - failed_non_integer: ∀ ℠i; 0 ≤ i < 10 ⇒ p1(\truncate(i), 2, 2)' + failed_non_integer: \forall real i; 0 <= i < 10 ==> p1(\truncate(i), 2, 2)' is not yet supported. Ignoring annotation. [e-acsl] tests/arith/quantif.i:94: Warning: invalid E-ACSL construct `missing lower bound for i in quantification - failed_missing_lower_bound: ∀ ℤ i; i < 10 ⇒ p1(i, 2, 2)'. + failed_missing_lower_bound: \forall integer i; i < 10 ==> p1(i, 2, 2)'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:96: Warning: invalid E-ACSL construct `invalid guard p1(i, 2, 2) in quantification - failded_missing_upper_bound: ∀ ℤ i; 0 ≤ i ⇒ p1(i, 2, 2). + failded_missing_upper_bound: \forall integer i; 0 <= i ==> p1(i, 2, 2). Missing upper bound for i. '. Ignoring annotation. [e-acsl] tests/arith/quantif.i:98: Warning: invalid E-ACSL construct `invalid guard p1(i, j, 2) in quantification - failed_invalid_upper_bound_1: ∀ ℤ i, ℤ j; 0 ≤ i < j ⇒ p1(i, j, 2). + failed_invalid_upper_bound_1: + \forall integer i, integer j; 0 <= i < j ==> p1(i, j, 2). Missing upper bound for j. '. Ignoring annotation. [e-acsl] tests/arith/quantif.i:100: Warning: @@ -40,33 +42,34 @@ `missing lower bound for i when processing the linked upper bound i < j in quantification failed_invalid_upper_bound_2: - ∀ ℤ i, ℤ j; i < j ∧ 0 ≤ i ⇒ p1(i, 2, 2)'. + \forall integer i, integer j; i < j && 0 <= i ==> p1(i, 2, 2)'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:102: Warning: invalid E-ACSL construct - `found existing lower bound i < j when processing 3 ≤ j in quantification + `found existing lower bound i < j when processing 3 <= j in quantification failed_extra_constraint: - ∀ ℤ i, ℤ j; 0 ≤ i < j ∧ i < 10 ∧ 3 ≤ j < 5 ⇒ p1(i, j, 2)'. + \forall integer i, integer j; + 0 <= i < j && i < 10 && 3 <= j < 5 ==> p1(i, j, 2)'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:104: Warning: invalid E-ACSL construct - `found existing lower bound 0 ≤ i when processing j < i in quantification + `found existing lower bound 0 <= i when processing j < i in quantification failed_multiple_upper_bounds: - ∀ ℤ i, ℤ j; 0 ≤ i < j < i ∧ j ≤ 10 ⇒ p1(i, j, 2)'. + \forall integer i, integer j; 0 <= i < j < i && j <= 10 ==> p1(i, j, 2)'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:106: Warning: invalid E-ACSL construct `found existing lower bound i < k when processing j < k in quantification multiple_linked_upper: - ∀ ℤ i, ℤ j, ℤ k; - 0 ≤ i < k ∧ 1 ≤ j < k ∧ 2 ≤ k < 10 ⇒ p1(i, j, k)'. + \forall integer i, integer j, integer k; + 0 <= i < k && 1 <= j < k && 2 <= k < 10 ==> p1(i, j, k)'. Ignoring annotation. [e-acsl] tests/arith/quantif.i:108: Warning: invalid E-ACSL construct - `invalid constraint 2 ≤ i, both operands are constants or already bounded in quantification + `invalid constraint 2 <= i, both operands are constants or already bounded in quantification multiple_guard: - ∀ ℤ i, ℤ j; - 0 ≤ i < 10 ∧ 2 ≤ i < 8 ∧ 4 ≤ j < 6 ⇒ p1(i, j, 2)'. + \forall integer i, integer j; + 0 <= i < 10 && 2 <= i < 8 && 4 <= j < 6 ==> p1(i, j, 2)'. Ignoring annotation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/arith/quantif.i:22: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle index 2fe8336c2779dad2856a000f5f37523658474df1..4b69e0773d5feaef3ac4f2fb162c2586c814a1ac 100644 --- a/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle +++ b/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle @@ -35,8 +35,32 @@ [eva:alarm] tests/arith/rationals.c:18: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/rationals.c:18: Warning: assertion got status unknown. +[eva:alarm] tests/arith/rationals.c:20: Warning: + function __e_acsl_assert_register_float: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:20: Warning: + function __e_acsl_assert_register_float: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/rationals.c:20: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/arith/rationals.c:5: Warning: + function __e_acsl_assert_register_double: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:6: Warning: + function __e_acsl_assert_register_mpq: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:6: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:6: Warning: + function __e_acsl_assert_register_double: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:6: Warning: + function __e_acsl_assert_register_mpq: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/arith/rationals.c:6: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/rationals.c:4: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/rationals.c:4: Warning: @@ -44,5 +68,8 @@ [eva:alarm] tests/arith/rationals.c:28: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/arith/rationals.c:28: Warning: assertion got status unknown. +[eva:alarm] tests/arith/rationals.c:31: Warning: + function __e_acsl_assert_register_short: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/arith/rationals.c:31: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle index efd026311297e55d8fefb674326118e6ece88624..86232db36ffcac8f8c28b462dd6a09b8b08900ce 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1304.i:32: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1304.i:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle index efd026311297e55d8fefb674326118e6ece88624..b6bb7a865262dce7611cc9f289a3163ada2c6e7a 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle @@ -1,2 +1,23 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1326.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1326.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1326.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1326.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1326.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1326.i:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] :0: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle index efd026311297e55d8fefb674326118e6ece88624..fa29801de2b58ea8f86ef784924e8dd1d29a2d0d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1399.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1399.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle index efd026311297e55d8fefb674326118e6ece88624..d51edaf2d2c386a2ac861558821bc8bc672b570c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle @@ -1,2 +1,11 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1478.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1478.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1478.c:11: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle index efd026311297e55d8fefb674326118e6ece88624..f79db5868c842f78312deac36e3bcd14ad14d603 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle @@ -1,2 +1,20 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1700.i:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1700.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1700.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1700.i:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1700.i:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1700.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle index efd026311297e55d8fefb674326118e6ece88624..4b03ca476eb47a1f4d15c81b3a21dc5dcb49b3e4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1717.i:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1717.i:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1717.i:10: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1717.i:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle index efd026311297e55d8fefb674326118e6ece88624..113ee6ecd8402bb090d9a998d7e704206cced536 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1718.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1718.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1718.i:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1718.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle index 120779645cf314b1e6e1d9272bf454d1899ca0f5..ce37712a8261231304302530b0cdb7e55fedc29a 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle @@ -1,7 +1,24 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1740.i:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1740.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1740.i:11: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1740.i:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:locals-escaping] tests/bts/bts1740.i:12: Warning: locals {a} escaping the scope of a block of main through p [eva:alarm] tests/bts/bts1740.i:16: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&p); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1740.i:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1740.i:16: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&p); diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle index efd026311297e55d8fefb674326118e6ece88624..329c7caad6b0784c018fc36eae353c77afd8b5b4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle @@ -1,2 +1,56 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts1837.i:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:21: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:22: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts1837.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle index efd026311297e55d8fefb674326118e6ece88624..48090f57abde8f0ece3cedd270396f1105bde879 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts2191.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2191.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2191.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2191.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle index 5e19b9d7d6eecf52c360612ac19e7e7406a776f2..c3b727f9f15cbec8d940ee81081ccc586625237f 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle @@ -6,3 +6,9 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:78: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:78: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle index 1ea3c8ae98490869fa6b0957443425e07dde6807..d25b09520078c72af45f4c7b0e3823f09a147da8 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle @@ -1,6 +1,9 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/bts/bts2231.i:8: Warning: - signed overflow. assert -9223372036854775808 ≤ __gen_e_acsl__2 - 1; + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2231.i:8: Warning: + signed overflow. assert -9223372036854775808 <= __gen_e_acsl__2 - 1; [eva:alarm] tests/bts/bts2231.i:8: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle index 911524192af0f41e118d953a0cd66c42751df0c1..abb0a4b867b9cc06cf9b53f3ce515b1cf529eb7c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle @@ -30,5 +30,14 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts2252.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2252.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2252.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/bts2252.c:18: Warning: out of bounds read. assert \valid_read(srcbuf + i); diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle index 2ccd0176049ef668c0d7ccace06550886fe3b6f7..0667fd1650c5c167cbfb9344af3579b44ae85cb5 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle @@ -1,4 +1,16 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/bts2386.c:7: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2386.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2386.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/bts2386.c:7: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/bts/bts2386.c:8: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle index 7c1384a1c04f5c52a72a6548da780955c26fe900..e9ae2d5d9d627ba753d8bbafc819f3c118068fae 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle @@ -3,3 +3,9 @@ [eva:unknown-size] tests/bts/bts2406.c:5: Warning: during initialization of variable 'tab', size of type 'char const []' cannot be computed (Size of array without number of elements.) +[eva:alarm] tests/bts/bts2406.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/bts2406.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c index 8c7d12a1602c19079507484fd0419b37327805fd..ba84dea73fed8ff4d318665ad08c7c49201b29b5 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -43,11 +43,24 @@ int main(void) } { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "(unsigned char *)buf",(void *)(buf)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(union msg)",0,sizeof(union msg)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf), sizeof(union msg)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized((union msg *)((unsigned char *)buf))", - "tests/bts/bts1304.i",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized((union msg *)((unsigned char *)buf))", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized((union msg *)((unsigned char *)buf))"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1304.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 32; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized((union msg *)((unsigned char *)buf)); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c index aa6edd56fa7dddc19ec5c7a78c4ffe0f97881415..12c10eb3b08db2833c9b8fe3902916e3f20b4981 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,7 +11,7 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; behavior OverEstimate_Motoring: assumes \true; ensures - *\old(Mtmax_out) ≢ + *\old(Mtmax_out) != *\old(Mtmax_in) + (5 - ((5 / 80) * *\old(Mwmax)) * 0.4); */ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out); @@ -37,9 +37,9 @@ void foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) behavior UnderEstimate_Motoring: assumes \true; ensures - *\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)? - *\old(Mtmin_in) ≢ 0.: - 0.85 * *\old(Mwmin) ≢ 0.; + *\old(Mtmin_out) == *\old(Mtmin_in) < 0.85 * *\old(Mwmin)? + *\old(Mtmin_in) != 0.: + 0.85 * *\old(Mwmin) != 0.; */ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out); @@ -85,9 +85,9 @@ int main(void) behavior UnderEstimate_Motoring: assumes \true; ensures - *\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)? - *\old(Mtmin_in) ≢ 0.: - 0.85 * *\old(Mwmin) ≢ 0.; + *\old(Mtmin_out) == *\old(Mtmin_in) < 0.85 * *\old(Mwmin)? + *\old(Mtmin_in) != 0.: + 0.85 * *\old(Mwmin) != 0.; */ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) { @@ -106,20 +106,61 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_store_block((void *)(& Mwmin),(size_t)8); __e_acsl_store_block((void *)(& Mtmin_in),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"Mtmin_in", + (void *)Mtmin_in); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmin_in,sizeof(float), (void *)Mtmin_in, (void *)(& Mtmin_in)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","bar", - "\\valid(Mtmin_in)","tests/bts/bts1307.i",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(Mtmin_in)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(Mtmin_in)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data.fct = "bar"; + __gen_e_acsl_assert_data.line = 20; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"Mwmin", + (void *)Mwmin); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmin,sizeof(float), (void *)Mwmin,(void *)(& Mwmin)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","bar", - "\\valid(Mwmin)","tests/bts/bts1307.i",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(Mwmin)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(Mwmin)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_2.fct = "bar"; + __gen_e_acsl_assert_data_2.line = 21; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"Mtmin_out", + (void *)Mtmin_out); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmin_out,sizeof(float), (void *)Mtmin_out, (void *)(& Mtmin_out)); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Precondition","bar", - "\\valid(Mtmin_out)","tests/bts/bts1307.i",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(Mtmin_out)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(Mtmin_out)"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_3.fct = "bar"; + __gen_e_acsl_assert_data_3.line = 22; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1); } __gen_e_acsl_at_6 = Mwmin; @@ -138,28 +179,61 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) int __gen_e_acsl_valid_read_2; int __gen_e_acsl_and; int __gen_e_acsl_if; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmin_out)",*__gen_e_acsl_at); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmin_in)",*__gen_e_acsl_at_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_at_2", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_2, sizeof(float), (void *)__gen_e_acsl_at_2, (void *)(& __gen_e_acsl_at_2)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at_2)", - "tests/bts/bts1307.i",26); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2)"; + __gen_e_acsl_assert_data_5.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_5.fct = "bar"; + __gen_e_acsl_assert_data_5.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_at",(void *)__gen_e_acsl_at); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at, sizeof(float), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at)", - "tests/bts/bts1307.i",26); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at)"; + __gen_e_acsl_assert_data_6.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_6.fct = "bar"; + __gen_e_acsl_assert_data_6.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); if (*__gen_e_acsl_at == *__gen_e_acsl_at_2) { __e_acsl_mpq_t __gen_e_acsl_; __e_acsl_mpq_t __gen_e_acsl__2; __e_acsl_mpq_t __gen_e_acsl_mul; __e_acsl_mpq_t __gen_e_acsl__3; int __gen_e_acsl_lt; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmin_in)",*__gen_e_acsl_at_3); __gmpq_init(__gen_e_acsl_); __gmpq_set_str(__gen_e_acsl_,"085/100",10); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mwmin)",*__gen_e_acsl_at_4); __gmpq_init(__gen_e_acsl__2); __gmpq_set_d(__gen_e_acsl__2,(double)*__gen_e_acsl_at_4); __gmpq_init(__gen_e_acsl_mul); @@ -179,13 +253,28 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmin_in)",*__gen_e_acsl_at_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_at_5", + (void *)__gen_e_acsl_at_5); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_5, sizeof(float), (void *)__gen_e_acsl_at_5, (void *)(& __gen_e_acsl_at_5)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at_5)", - "tests/bts/bts1307.i",26); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_5)"; + __gen_e_acsl_assert_data_7.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_7.fct = "bar"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gen_e_acsl_if = (double)*__gen_e_acsl_at_5 != 0.; } else { @@ -196,6 +285,8 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) int __gen_e_acsl_ne; __gmpq_init(__gen_e_acsl__4); __gmpq_set_str(__gen_e_acsl__4,"085/100",10); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mwmin)",*__gen_e_acsl_at_6); __gmpq_init(__gen_e_acsl__5); __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_6); __gmpq_init(__gen_e_acsl_mul_2); @@ -212,9 +303,14 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __gmpq_clear(__gen_e_acsl_mul_2); __gmpq_clear(__gen_e_acsl__6); } - __e_acsl_assert(__gen_e_acsl_if,1,"Postcondition","bar", - "UnderEstimate_Motoring:\n *\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0.", - "tests/bts/bts1307.i",26); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "UnderEstimate_Motoring:\n *\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0."; + __gen_e_acsl_assert_data_4.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_4.fct = "bar"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(__gen_e_acsl_if,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& Mtmin_out)); @@ -231,7 +327,7 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) behavior OverEstimate_Motoring: assumes \true; ensures - *\old(Mtmax_out) ≢ + *\old(Mtmax_out) != *\old(Mtmax_in) + (5 - ((5 / 80) * *\old(Mwmax)) * 0.4); */ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) @@ -248,20 +344,61 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __e_acsl_store_block((void *)(& Mwmax),(size_t)8); __e_acsl_store_block((void *)(& Mtmax_in),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"Mtmax_in", + (void *)Mtmax_in); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmax_in,sizeof(float), (void *)Mtmax_in, (void *)(& Mtmax_in)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","foo", - "\\valid(Mtmax_in)","tests/bts/bts1307.i",5); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(Mtmax_in)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(Mtmax_in)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data.fct = "foo"; + __gen_e_acsl_assert_data.line = 5; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"Mwmax", + (void *)Mwmax); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmax,sizeof(float), (void *)Mwmax,(void *)(& Mwmax)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","foo", - "\\valid(Mwmax)","tests/bts/bts1307.i",6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(Mwmax)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(Mwmax)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_2.fct = "foo"; + __gen_e_acsl_assert_data_2.line = 6; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"Mtmax_out", + (void *)Mtmax_out); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(float)",0,sizeof(float)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmax_out,sizeof(float), (void *)Mtmax_out, (void *)(& Mtmax_out)); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Precondition","foo", - "\\valid(Mtmax_out)","tests/bts/bts1307.i",7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(Mtmax_out)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(Mtmax_out)"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_3.fct = "foo"; + __gen_e_acsl_assert_data_3.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1); } __gen_e_acsl_at_3 = Mwmax; @@ -286,6 +423,12 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __e_acsl_mpq_t __gen_e_acsl_add; __e_acsl_mpq_t __gen_e_acsl__7; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmax_out)",*__gen_e_acsl_at); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mtmax_in)",*__gen_e_acsl_at_2); __gmpq_init(__gen_e_acsl_); __gmpq_set_str(__gen_e_acsl_,"5",10); __gmpq_init(__gen_e_acsl__2); @@ -296,6 +439,8 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __gmpq_div(__gen_e_acsl_div, (__e_acsl_mpq_struct const *)(__gen_e_acsl__2), (__e_acsl_mpq_struct const *)(__gen_e_acsl__3)); + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4, + "*\\old(Mwmax)",*__gen_e_acsl_at_3); __gmpq_init(__gen_e_acsl__4); __gmpq_set_d(__gen_e_acsl__4,(double)*__gen_e_acsl_at_3); __gmpq_init(__gen_e_acsl_mul); @@ -322,9 +467,14 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __gmpq_set_d(__gen_e_acsl__7,(double)*__gen_e_acsl_at); __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7), (__e_acsl_mpq_struct const *)(__gen_e_acsl_add)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Postcondition","foo", - "OverEstimate_Motoring:\n *\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)", - "tests/bts/bts1307.i",11); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "OverEstimate_Motoring:\n *\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)"; + __gen_e_acsl_assert_data_4.file = "tests/bts/bts1307.i"; + __gen_e_acsl_assert_data_4.fct = "foo"; + __gen_e_acsl_assert_data_4.line = 11; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpq_clear(__gen_e_acsl_); __gmpq_clear(__gen_e_acsl__2); __gmpq_clear(__gen_e_acsl__3); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c index 9755e8cd106f5a74c39689df65735c50ff024ad0..40969df29026a65fc79e055ca6c6745b3560904c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c @@ -1,12 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ behavior yes: - assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i); - ensures \result ≡ 1; + assumes \forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i); + ensures \result == 1; */ int __gen_e_acsl_sorted(int *t, int n); @@ -38,9 +38,19 @@ int main(void) __e_acsl_store_block((void *)(t),(size_t)28); __e_acsl_full_init((void *)(& t)); int n = __gen_e_acsl_sorted(t,7); - __e_acsl_assert(n == 1,1,"Assertion","main","n == 1","tests/bts/bts1324.i", - 23); - /*@ assert n ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "n == 1"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1324.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 23; + __e_acsl_assert(n == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert n == 1; */ ; __retres = 0; __e_acsl_delete_block((void *)(t)); __e_acsl_memory_clean(); @@ -48,8 +58,8 @@ int main(void) } /*@ behavior yes: - assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i); - ensures \result ≡ 1; + assumes \forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i); + ensures \result == 1; */ int __gen_e_acsl_sorted(int *t, int n) { @@ -67,20 +77,47 @@ int __gen_e_acsl_sorted(int *t, int n) { int __gen_e_acsl_valid_read; int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(t + __gen_e_acsl_i), sizeof(int),(void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","sorted", - "mem_access: \\valid_read(t + __gen_e_acsl_i)", - "tests/bts/bts1324.i",6); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "RTE"; + __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_i)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1324.i"; + __gen_e_acsl_assert_data.fct = "sorted"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t", + (void *)t); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(t + ( __gen_e_acsl_i - 1L)), sizeof(int), (void *)t, (void *)(& t)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","sorted", - "mem_access: \\valid_read(t + (long)(__gen_e_acsl_i - 1))", - "tests/bts/bts1324.i",6); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(t + (long)(__gen_e_acsl_i - 1))"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1324.i"; + __gen_e_acsl_assert_data_2.fct = "sorted"; + __gen_e_acsl_assert_data_2.line = 6; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); if (*(t + (__gen_e_acsl_i - 1L)) <= *(t + __gen_e_acsl_i)) ; else { __gen_e_acsl_forall = 0; @@ -98,10 +135,20 @@ int __gen_e_acsl_sorted(int *t, int n) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1,1, - "Postcondition","sorted", - "yes: \\result == 1", - "tests/bts/bts1324.i",7); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "yes: \\result == 1"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1324.i"; + __gen_e_acsl_assert_data_3.fct = "sorted"; + __gen_e_acsl_assert_data_3.line = 7; + __e_acsl_assert(__retres == 1,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& t)); return __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c index 68220ac9996606c8d648333cf04fb942bb7d1e31..5116b129a3ddb98cff260c6231e85aa0f7081837 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c @@ -1,12 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; typedef int ArrayInt[5]; /*@ ensures - *\old(AverageAccel) ≡ + *\old(AverageAccel) == (((((*\old(Accel))[4] + (*\old(Accel))[3]) + (*\old(Accel))[2]) + (*\old(Accel))[1]) + (*\old(Accel))[0]) @@ -44,7 +44,7 @@ int main(void) } /*@ ensures - *\old(AverageAccel) ≡ + *\old(AverageAccel) == (((((*\old(Accel))[4] + (*\old(Accel))[3]) + (*\old(Accel))[2]) + (*\old(Accel))[1]) + (*\old(Accel))[0]) @@ -75,58 +75,146 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, int __gen_e_acsl_valid_read_4; int __gen_e_acsl_valid_read_5; int __gen_e_acsl_valid_read_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "*\\old(AverageAccel)",0,*__gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "(*\\old(Accel))[4]",0, + (*__gen_e_acsl_at_2)[4]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "(*\\old(Accel))[3]",0, + (*__gen_e_acsl_at_3)[3]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "(*\\old(Accel))[2]",0, + (*__gen_e_acsl_at_4)[2]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "(*\\old(Accel))[1]",0, + (*__gen_e_acsl_at_5)[1]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "(*\\old(Accel))[0]",0, + (*__gen_e_acsl_at_6)[0]); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(int *)*__gen_e_acsl_at_6", + (void *)(*__gen_e_acsl_at_6)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(*__gen_e_acsl_at_6), sizeof(int), (void *)(*__gen_e_acsl_at_6), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read((int *)*__gen_e_acsl_at_6)", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read((int *)*__gen_e_acsl_at_6)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_2.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "&(*__gen_e_acsl_at_5)[1]", + (void *)(& (*__gen_e_acsl_at_5)[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_5)[1]), sizeof(int), (void *)(*__gen_e_acsl_at_5), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read(&(*__gen_e_acsl_at_5)[1])", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_5)[1])"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_3.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_3.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "&(*__gen_e_acsl_at_4)[2]", + (void *)(& (*__gen_e_acsl_at_4)[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_4)[2]), sizeof(int), (void *)(*__gen_e_acsl_at_4), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read(&(*__gen_e_acsl_at_4)[2])", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_4)[2])"; + __gen_e_acsl_assert_data_4.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_4.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_4.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "&(*__gen_e_acsl_at_3)[3]", + (void *)(& (*__gen_e_acsl_at_3)[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_3)[3]), sizeof(int), (void *)(*__gen_e_acsl_at_3), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read(&(*__gen_e_acsl_at_3)[3])", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_3)[3])"; + __gen_e_acsl_assert_data_5.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_5.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_5.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "&(*__gen_e_acsl_at_2)[4]", + (void *)(& (*__gen_e_acsl_at_2)[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_2)[4]), sizeof(int), (void *)(*__gen_e_acsl_at_2), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read(&(*__gen_e_acsl_at_2)[4])", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_2)[4])"; + __gen_e_acsl_assert_data_6.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_6.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_6.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_at",(void *)__gen_e_acsl_at); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)__gen_e_acsl_at, sizeof(int), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE", - "atp_NORMAL_computeAverageAccel", - "mem_access: \\valid_read(__gen_e_acsl_at)", - "tests/bts/bts1326.i",8); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at)"; + __gen_e_acsl_assert_data_7.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data_7.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data_7.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4] + (*\\old(Accel))[3]) + (*\\old(Accel))[2]) +\n (*\\old(Accel))[1])\n + (*\\old(Accel))[0])\n/ 5"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1326.i"; + __gen_e_acsl_assert_data.fct = "atp_NORMAL_computeAverageAccel"; + __gen_e_acsl_assert_data.line = 8; __e_acsl_assert(*__gen_e_acsl_at == (int)((((((*__gen_e_acsl_at_2)[4] + (long)(*__gen_e_acsl_at_3)[3]) + (*__gen_e_acsl_at_4)[2]) + (*__gen_e_acsl_at_5)[1]) + (*__gen_e_acsl_at_6)[0]) / 5L), - 1,"Postcondition","atp_NORMAL_computeAverageAccel", - "*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4] + (*\\old(Accel))[3]) + (*\\old(Accel))[2]) +\n (*\\old(Accel))[1])\n + (*\\old(Accel))[0])\n/ 5", - "tests/bts/bts1326.i",8); + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __e_acsl_delete_block((void *)(& AverageAccel)); __e_acsl_delete_block((void *)(& Accel)); return; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c index 1b997cf7e674d9090b7b2d3ef1c870a9f539a731..3b3f0b60cae7b496dec1484fc541a33d35d386c1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c index 3b092ae6734c01a72b86c39495bbafe588b7b386..63c8499eead6e44d73e9bcfff9d7039fc445dffa 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; @@ -7,15 +8,17 @@ char *__gen_e_acsl_literal_string_2; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ behavior exists: - assumes ∃ ℤ i; 0 ≤ i < (int)n ∧ (int)*((char *)buf + i) ≡ c; + assumes + \exists integer i; 0 <= i < (int)n && (int)*((char *)buf + i) == c; ensures - ∀ int j; - 0 ≤ j < (int)\offset((char *)\result) ⇒ - (int)*((char *)\old(buf) + j) ≢ \old(c); + \forall int j; + 0 <= j < (int)\offset((char *)\result) ==> + (int)*((char *)\old(buf) + j) != \old(c); behavior not_exists: - assumes ∀ ℤ k; 0 ≤ k < (int)n ⇒ (int)*((char *)buf + k) ≢ c; - ensures \result ≡ (void *)0; + assumes + \forall integer k; 0 <= k < (int)n ==> (int)*((char *)buf + k) != c; + ensures \result == (void *)0; */ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n); @@ -51,15 +54,17 @@ void *memchr(void const *buf, int c, size_t n) } /*@ behavior exists: - assumes ∃ ℤ i; 0 ≤ i < (int)n ∧ (int)*((char *)buf + i) ≡ c; + assumes + \exists integer i; 0 <= i < (int)n && (int)*((char *)buf + i) == c; ensures - ∀ int j; - 0 ≤ j < (int)\offset((char *)\result) ⇒ - (int)*((char *)\old(buf) + j) ≢ \old(c); + \forall int j; + 0 <= j < (int)\offset((char *)\result) ==> + (int)*((char *)\old(buf) + j) != \old(c); behavior not_exists: - assumes ∀ ℤ k; 0 ≤ k < (int)n ⇒ (int)*((char *)buf + k) ≢ c; - ensures \result ≡ (void *)0; + assumes + \forall integer k; 0 <= k < (int)n ==> (int)*((char *)buf + k) != c; + ensures \result == (void *)0; */ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) { @@ -82,13 +87,26 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) else break; { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"buf", + (void *)buf); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_i), sizeof(char), (void *)buf, (void *)(& buf)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memchr", - "mem_access: \\valid_read((char *)buf + __gen_e_acsl_i)", - "tests/bts/bts1390.c",8); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "RTE"; + __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read((char *)buf + __gen_e_acsl_i)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1390.c"; + __gen_e_acsl_assert_data.fct = "memchr"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); if (! ((int)*((char *)buf + __gen_e_acsl_i) == c)) ; else { __gen_e_acsl_exists = 1; @@ -107,13 +125,27 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) else break; { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"buf", + (void *)buf); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_k",0,__gen_e_acsl_k); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_k), sizeof(char), (void *)buf, (void *)(& buf)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memchr", - "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)", - "tests/bts/bts1390.c",11); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1390.c"; + __gen_e_acsl_assert_data_2.fct = "memchr"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); if ((int)*((char *)buf + __gen_e_acsl_k) != c) ; else { __gen_e_acsl_forall = 0; @@ -136,6 +168,8 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_forall_2; unsigned int __gen_e_acsl_j; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_j = 0; while (1) { @@ -148,13 +182,28 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) } { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_at", + (void *)__gen_e_acsl_at); + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_j",0,__gen_e_acsl_j); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)((char *)__gen_e_acsl_at + __gen_e_acsl_j), sizeof(char), (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","memchr", - "mem_access: \\valid_read((char *)__gen_e_acsl_at + __gen_e_acsl_j)", - "tests/bts/bts1390.c",9); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read((char *)__gen_e_acsl_at + __gen_e_acsl_j)"; + __gen_e_acsl_assert_data_4.file = "tests/bts/bts1390.c"; + __gen_e_acsl_assert_data_4.fct = "memchr"; + __gen_e_acsl_assert_data_4.line = 9; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); if ((int)*((char *)__gen_e_acsl_at + __gen_e_acsl_j) != __gen_e_acsl_at_2) ; else { @@ -165,16 +214,34 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) __gen_e_acsl_j ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Postcondition","memchr", - "exists:\n \\forall int j;\n 0 <= j < (int)\\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf) + j) != \\old(c)", - "tests/bts/bts1390.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "exists:\n \\forall int j;\n 0 <= j < (int)\\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf) + j) != \\old(c)", + 0,__gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "exists:\n \\forall int j;\n 0 <= j < (int)\\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf) + j) != \\old(c)"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1390.c"; + __gen_e_acsl_assert_data_3.fct = "memchr"; + __gen_e_acsl_assert_data_3.line = 9; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (void *)0,1, - "Postcondition","memchr", - "not_exists: \\result == (void *)0", - "tests/bts/bts1390.c",12); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"\\result", + __retres); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "not_exists: \\result == (void *)0"; + __gen_e_acsl_assert_data_5.file = "tests/bts/bts1390.c"; + __gen_e_acsl_assert_data_5.fct = "memchr"; + __gen_e_acsl_assert_data_5.line = 12; + __e_acsl_assert(__retres == (void *)0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& buf)); __e_acsl_delete_block((void *)(& __retres)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c index e22850aba10b0f49c53415da9b086424d516621d..6c395f6b4b1e586123564b7497c14a73dc9d7988 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -24,11 +24,23 @@ int fact(int n) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = __gen_e_acsl_fact(5); - __e_acsl_assert(x == 120,1,"Assertion","main","x == 120", - "tests/bts/bts1395.i",15); - /*@ assert x ≡ 120; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x == 120"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1395.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(x == 120,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert x == 120; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } @@ -36,8 +48,18 @@ int main(void) int __gen_e_acsl_fact(int n) { int __retres; - __e_acsl_assert(n > 0,1,"Precondition","fact","n > 0", - "tests/bts/bts1395.i",6); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "n > 0"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1395.i"; + __gen_e_acsl_assert_data.fct = "fact"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(n > 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = fact(n); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c index 1709bdc247e2c455a34cd1ea655f48e80062dda7..62eedb96d6bb73d9aea151b013a92e4c9730d051 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c index 35354e15a4a3ee1319c32cb1f7bf4ddc15c63cf0..df2577913c7e41c9209e3f6685ec04d31db9daaf 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -22,22 +23,52 @@ int main(void) { int __gen_e_acsl_valid_read; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "&state->dataQueue[state->bitsInQueue / 8]", + (void *)(& state->dataQueue[state->bitsInQueue / 8U])); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "&state->bitsInQueue", + (void *)(& state->bitsInQueue)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(unsigned int)",0, + sizeof(unsigned int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& state->bitsInQueue), sizeof(unsigned int), (void *)(& state->bitsInQueue), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(&state->bitsInQueue)", - "tests/bts/bts1399.c",19); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(&state->bitsInQueue)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1399.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 19; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(unsigned char __attribute__((__aligned__(32))))", + 0, + sizeof(unsigned char __attribute__(( + __aligned__(32))))); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& state->dataQueue[ state->bitsInQueue / 8U]), sizeof(unsigned char __attribute__(( __aligned__(32))))); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized(&state->dataQueue[state->bitsInQueue / 8])", - "tests/bts/bts1399.c",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&state->dataQueue[state->bitsInQueue / 8])", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&state->dataQueue[state->bitsInQueue / 8])"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1399.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 19; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&state->dataQueue[state->bitsInQueue / 8]); */ ; + /*@ assert !\initialized(&state->dataQueue[state->bitsInQueue / 8]); */ ; free((void *)state); __retres = 0; __e_acsl_delete_block((void *)(& state)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c index f235a94655c43df645f7f898406274d5f66049dd..4de286d405b1f1019492c6277d6b851eafea5f96 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -8,9 +8,9 @@ int global_i; int *global_i_ptr = & global_i; int global_i = 0; -/*@ requires global_i ≡ 0; +/*@ requires global_i == 0; requires \valid(global_i_ptr); - requires global_i_ptr ≡ &global_i; + requires global_i_ptr == &global_i; */ void __gen_e_acsl_loop(void); @@ -19,23 +19,59 @@ void loop(void) return; } -/*@ requires global_i ≡ 0; +/*@ requires global_i == 0; requires \valid(global_i_ptr); - requires global_i_ptr ≡ &global_i; + requires global_i_ptr == &global_i; */ void __gen_e_acsl_loop(void) { { int __gen_e_acsl_valid; - __e_acsl_assert(global_i == 0,1,"Precondition","loop","global_i == 0", - "tests/bts/bts1478.c",9); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"global_i",0, + global_i); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "global_i == 0"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1478.c"; + __gen_e_acsl_assert_data.fct = "loop"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(global_i == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"global_i_ptr", + (void *)global_i_ptr); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)global_i_ptr,sizeof(int), (void *)global_i_ptr, (void *)(& global_i_ptr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","loop", - "\\valid(global_i_ptr)","tests/bts/bts1478.c",10); - __e_acsl_assert(global_i_ptr == & global_i,1,"Precondition","loop", - "global_i_ptr == &global_i","tests/bts/bts1478.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(global_i_ptr)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(global_i_ptr)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1478.c"; + __gen_e_acsl_assert_data_2.fct = "loop"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"global_i_ptr", + (void *)global_i_ptr); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&global_i", + (void *)(& global_i)); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "global_i_ptr == &global_i"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1478.c"; + __gen_e_acsl_assert_data_3.fct = "loop"; + __gen_e_acsl_assert_data_3.line = 11; + __e_acsl_assert(global_i_ptr == & global_i,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } loop(); return; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c index 235b00e3ce39f982b658a892f2b6c39bc4540062..6b59906b4145dde0fa279341bf4af2bc96b813e1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -17,10 +17,24 @@ int main(void) __e_acsl_store_block((void *)(& s),(size_t)0); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&s", + (void *)(& s)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(struct toto)",0, + sizeof(struct toto)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& s),sizeof(struct toto), (void *)(& s),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&s)", - "tests/bts/bts1700.i",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&s)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&s)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1700.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&s); */ ; __e_acsl_full_init((void *)(& p)); @@ -28,17 +42,40 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(struct toto *)",0, + sizeof(struct toto *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(struct toto *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(struct toto)",0, + sizeof(struct toto)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(struct toto), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and = __gen_e_acsl_valid_2; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/bts/bts1700.i",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1700.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c index 12837b756e42c9db9a7d9ec9d136bec4f93cbedb..b20490f30a41b0da548398af226178cf1104c4ce 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -19,17 +19,36 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/bts/bts1717.i",10); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1717.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = 0; goto return_label; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c index 248e0c5dac9a77836ed676ee647a64e8ba15dc1b..3cc04964acabdec262a0c3c16160452167dba042 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -19,17 +19,36 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/bts/bts1718.i",13); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1718.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = 0; goto return_label; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c index 71d5655e76f7283ef6b7fbb843c8725b835c3358..7413b868d898efde6359f8da31ab1a11789df32f 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -19,17 +19,38 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/bts/bts1740.i",11); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1740.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; __e_acsl_delete_block((void *)(& a)); @@ -37,22 +58,43 @@ int main(void) __e_acsl_delete_block((void *)(& a)); } L: - /*@ assert ¬\valid(p); */ + /*@ assert !\valid(p); */ { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; - /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */ + /*@ assert Eva: dangling_pointer: !\dangling(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(p)", - "tests/bts/bts1740.i",16); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1740.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __retres = 0; __e_acsl_delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c index 68b811cf123a0c069ef8392ef08d26b80b9ed603..8ba680fa8caf75e8fc2f875e176d725528d0a746 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; @@ -19,46 +19,102 @@ int f(void) __e_acsl_full_init((void *)(& s2)); { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"S",(void *)S); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)S,sizeof(char), (void *)S,(void *)(& S)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"Assertion","f", - "\\valid_read(S)","tests/bts/bts1837.i",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(S)",0,__gen_e_acsl_valid_read); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(S)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1837.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid_read(S); */ ; { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&s1", + (void *)(& s1)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& s1), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&s1)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s1", + (void *)s1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)s1, sizeof(char), (void *)s1, (void *)(& s1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid_read(s1)",0, + __gen_e_acsl_valid_read_2); __gen_e_acsl_and = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","f","\\valid_read(s1)", - "tests/bts/bts1837.i",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(s1)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1837.i"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid_read(s1); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&s2", + (void *)(& s2)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& s2), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&s2)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"s2", + (void *)s2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)s2, sizeof(char), (void *)s2, (void *)(& s2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid_read(s2)",0, + __gen_e_acsl_valid_read_3); __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","f","\\valid_read(s2)", - "tests/bts/bts1837.i",13); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(s2)"; + __gen_e_acsl_assert_data_3.file = "tests/bts/bts1837.i"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid_read(s2); */ ; __retres = 0; @@ -116,37 +172,80 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&s", + (void *)(& s)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& s), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&s)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s", + (void *)s); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)s, sizeof(char), (void *)s, (void *)(& s)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(s)",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main", - "\\valid_read(s)","tests/bts/bts1837.i",21); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(s)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts1837.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 21; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid_read(s); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&s", + (void *)(& s)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& s), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&s)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s", + (void *)s); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)s,sizeof(char), (void *)s,(void *)(& s)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(s)",0,__gen_e_acsl_valid); __gen_e_acsl_and_2 = __gen_e_acsl_valid; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main", - "!\\valid(s)","tests/bts/bts1837.i",22); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(s)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts1837.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 22; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(s); */ ; + /*@ assert !\valid(s); */ ; __e_acsl_delete_block((void *)(& s)); } } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c index b83815b665daf90d54ba40bef0923b97c7da0338..32463190ef073d30250225801c4c266b8b59331b 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; @@ -48,19 +48,40 @@ int main(int argc, char **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&_G[0].str", + (void *)(& _G[0].str)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& _G[0].str), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&_G[0].str)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"_G[0].str", + (void *)_G[0].str); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)_G[0].str, sizeof(char), (void *)_G[0].str, (void *)(& _G[0].str)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(_G[0].str)",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main", - "\\valid_read(_G[0].str)","tests/bts/bts2191.c",14); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(_G[0].str)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts2191.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid_read(_G[0].str); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c index d71a4c41cf78610b9bd88b1f2eb3f8163381ee20..f265fe806dd9486d28826d5730133fd5fe7e4a74 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; @@ -23,13 +24,26 @@ int __gen_e_acsl_atoi(char const *nptr) { int __gen_e_acsl_valid_read; __e_acsl_store_block((void *)(& nptr),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"nptr", + (void *)nptr); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char const)",0,sizeof(char const)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)nptr, sizeof(char const), (void *)nptr, (void *)(& nptr)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"Precondition","atoi", - "valid_nptr: \\valid_read(nptr)", - "FRAMAC_SHARE/libc/stdlib.h",78); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(nptr)",0, + __gen_e_acsl_valid_read); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "valid_nptr: \\valid_read(nptr)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "atoi"; + __gen_e_acsl_assert_data.line = 78; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = atoi(nptr); __e_acsl_delete_block((void *)(& nptr)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c index beb8f456827b957dd1ca4ea3e6612b0b11bd4349..bbaf3461677ab8f8571d84b6f459df6ab248f6ea 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -8,6 +8,7 @@ long A = (long)0; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { __e_acsl_mpz_t __gen_e_acsl_A; __e_acsl_mpz_t __gen_e_acsl_; @@ -17,14 +18,17 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_add; __e_acsl_mpz_t __gen_e_acsl__4; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"A",0,A); __gmpz_init_set_si(__gen_e_acsl_A,A); __gmpz_init_set_si(__gen_e_acsl_,3L); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"A",0,A); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul,(__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl_A)); __gen_e_acsl__2 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); /*@ assert - Eva: signed_overflow: -9223372036854775808 ≤ __gen_e_acsl__2 - 1; + Eva: signed_overflow: -9223372036854775808 <= __gen_e_acsl__2 - 1; */ __gmpz_init_set_si(__gen_e_acsl__3,__gen_e_acsl__2 - 1L); __gmpz_init(__gen_e_acsl_add); @@ -34,9 +38,14 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__4,(long)(-1)); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "A + (long)((long)(3 * A) - 1) == -1", - "tests/bts/bts2231.i",8); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "A + (long)((long)(3 * A) - 1) == -1"; + __gen_e_acsl_assert_data.file = "tests/bts/bts2231.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_A); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_mul); @@ -44,8 +53,9 @@ int main(void) __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__4); } - /*@ assert A + (long)((long)(3 * A) - 1) ≡ -1; */ ; + /*@ assert A + (long)((long)(3 * A) - 1) == -1; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c index d5ae3f9c19149dec4caa469becf4312261f7bc43..9fdc1841758b4e793b87e2e3d0987e3863b01d2d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -9,7 +10,7 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires room_nstring: \valid(dest + (0 .. n - 1)); requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); assigns *(dest + (0 .. n - 1)), \result; assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); @@ -17,13 +18,12 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; behavior complete: assumes src_fits: strlen(src) < n; - ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; + ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0; behavior partial: - assumes src_too_long: n ≤ strlen(src); + assumes src_too_long: n <= strlen(src); ensures - equal_prefix: - memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; + equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0; */ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n); @@ -31,7 +31,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires room_nstring: \valid(dest + (0 .. n - 1)); requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); assigns *(dest + (0 .. n - 1)), \result; assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); @@ -39,13 +39,12 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, behavior complete: assumes src_fits: strlen(src) < n; - ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; + ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0; behavior partial: - assumes src_too_long: n ≤ strlen(src); + assumes src_too_long: n <= strlen(src); ensures - equal_prefix: - memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; + equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0; */ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n) @@ -84,6 +83,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_store_block((void *)(& src),(size_t)8); __e_acsl_store_block((void *)(& dest),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0,n); __gmpz_init_set_ui(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -101,51 +109,141 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid = __e_acsl_valid((void *)(dest + 1 * 0), __gen_e_acsl_if,(void *)dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","strncpy", - "room_nstring: \\valid(dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",380); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "room_nstring: \\valid(dest + (0 .. n - 1))", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "room_nstring: \\valid(dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_2.fct = "strncpy"; + __gen_e_acsl_assert_data_2.line = 380; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n); __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(dest + 1 * 0), __gen_e_acsl_if_2, (void *)dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","strncpy", - "separated_guard: \\valid_read(dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strncpy"; + __gen_e_acsl_assert_data_4.line = 382; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char const)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char const)",0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n); __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(src + 1 * 0), __gen_e_acsl_if_3, (void *)src, (void *)(& src)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","strncpy", - "separated_guard: \\valid_read(src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read(src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_5.fct = "strncpy"; + __gen_e_acsl_assert_data_5.line = 382; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char const)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char const)",0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_5 = 1UL * __gen_e_acsl__7; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0UL) __gen_e_acsl_if_5 = 0UL; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_separated = __e_acsl_separated((size_t)2,dest + 1 * 0, __gen_e_acsl_if_4, src + 1 * 0, __gen_e_acsl_if_5); - __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","strncpy", - "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))", + 0,__gen_e_acsl_separated); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "strncpy"; + __gen_e_acsl_assert_data_3.line = 382; + __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_n); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_sub); @@ -174,9 +272,30 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, unsigned long __gen_e_acsl__10; unsigned long __gen_e_acsl_if_6; int __gen_e_acsl_initialized; - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",385); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_6.fct = "strncpy"; + __gen_e_acsl_assert_data_6.line = 385; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", + 0,1); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); __gmpz_init_set_si(__gen_e_acsl__8,1L); __gmpz_init(__gen_e_acsl_sub_3); __gmpz_sub(__gen_e_acsl_sub_3, @@ -193,14 +312,28 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gen_e_acsl__10 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","strncpy", - "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))", - "FRAMAC_SHARE/libc/string.h",386); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Postcondition"; + __gen_e_acsl_assert_data_7.pred_txt = "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_7.fct = "strncpy"; + __gen_e_acsl_assert_data_7.line = 386; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& src)); __e_acsl_delete_block((void *)(& dest)); @@ -247,14 +380,30 @@ int main(void) while (i < 0) { { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"srcbuf", + (void *)srcbuf); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(srcbuf + i), sizeof(char), (void *)srcbuf, (void *)(& srcbuf)); - __e_acsl_assert(! __gen_e_acsl_valid_read,1,"Assertion","main", - "!\\valid_read(srcbuf + i)","tests/bts/bts2252.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(srcbuf + i)",0, + __gen_e_acsl_valid_read); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid_read(srcbuf + i)"; + __gen_e_acsl_assert_data.file = "tests/bts/bts2252.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 17; + __e_acsl_assert(! __gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid_read(srcbuf + i); */ ; + /*@ assert !\valid_read(srcbuf + i); */ ; /*@ assert Eva: mem_access: \valid_read(srcbuf + i); */ if ((int)*(srcbuf + i) == (int)ch) loc = i; i ++; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c index 3e6032ceff5d360da26a744d1e92abf383164fad..1eb6cb65ad02597b2a440e03249f1038c807b386 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c index 60838e80f0077118a75fd3c90152cd1d6a173af9..47653dd4a62b3c6bfc7e9a1f2b3d30d9fd46b4c2 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -16,26 +16,48 @@ void f(void const *s, int c, unsigned long n) __e_acsl_mpz_t __gen_e_acsl_n; __e_acsl_mpz_t __gen_e_acsl_sub; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s",(void *)s); __gmpz_init_set_ui(__gen_e_acsl_,p - (unsigned char const *)s); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n); __gmpz_init_set_ui(__gen_e_acsl_n,n); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n); __gmpz_init(__gen_e_acsl_sub); __gmpz_sub(__gen_e_acsl_sub, (__e_acsl_mpz_struct const *)(__gen_e_acsl_n), (__e_acsl_mpz_struct const *)(__gen_e_acsl_n)); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","f", - "p - (unsigned char const *)s == n - n", - "tests/bts/bts2386.c",7); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "p - (unsigned char const *)s == n - n"; + __gen_e_acsl_assert_data.file = "tests/bts/bts2386.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_n); __gmpz_clear(__gen_e_acsl_sub); } - /*@ assert p - (unsigned char const *)s ≡ n - n; */ ; - __e_acsl_assert(p - (unsigned char const *)s == 0UL,1,"Assertion","f", - "p - (unsigned char const *)s == 0","tests/bts/bts2386.c", - 8); - /*@ assert p - (unsigned char const *)s ≡ 0; */ ; + /*@ assert p - (unsigned char const *)s == n - n; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s",(void *)s); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "p - (unsigned char const *)s == 0"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts2386.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(p - (unsigned char const *)s == 0UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert p - (unsigned char const *)s == 0; */ ; __e_acsl_delete_block((void *)(& s)); __e_acsl_delete_block((void *)(& p)); return; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c index 3005fdba28a0e7fde0476a544deb1cee8ad1c2aa..97e118a8083f74257a68bb77a651384dbdbeb2e4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -35,28 +35,72 @@ int main(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); __gen_e_acsl_size = 1 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid = __e_acsl_valid((void *)(p + 1 * 0), (size_t)__gen_e_acsl_if,(void *)p, (void *)(& p)); - __e_acsl_assert(! __gen_e_acsl_valid,1,"Assertion","main", - "!\\valid(p + (0 .. 9))","tests/bts/bts2406.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(p + (0 .. 9))",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(p + (0 .. 9))"; + __gen_e_acsl_assert_data.file = "tests/bts/bts2406.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(p + (0 .. 9)); */ ; + /*@ assert !\valid(p + (0 .. 9)); */ ; { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"(char *)t", + (void *)(t)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); __gen_e_acsl_size_2 = 1 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(t + 1 * 0), (size_t)__gen_e_acsl_if_2, (void *)(t),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main", - "\\valid(&t[0 .. 9])","tests/bts/bts2406.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&t[0 .. 9])",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&t[0 .. 9])"; + __gen_e_acsl_assert_data_2.file = "tests/bts/bts2406.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(&t[0 .. 9]); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c index 5a48d337504908d0c693c30fd49b517d85fb46a6..3a6985a9a8c718b605bc19704d321282d7ad91c7 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -15,10 +15,23 @@ int f(void) /*@ assert \valid(&a); */ { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int), (void *)(& a),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","f","\\valid(&a)", - "tests/bts/issue-eacsl-105.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-105.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = 0; goto return_label; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c index e5d36213c8486363a11a0192fd2b883a5b7122c2..d3d900437fd0c9ee1850c872259f0a0c09d66bf6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c @@ -1,13 +1,13 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; struct X { int i ; }; -/*@ ensures *\old(item) ≡ \old(*item); */ +/*@ ensures *\old(item) == \old(*item); */ void __gen_e_acsl_f(struct X *item); void f(struct X *item) @@ -31,7 +31,7 @@ int main(void) return __retres; } -/*@ ensures *\old(item) ≡ \old(*item); */ +/*@ ensures *\old(item) == \old(*item); */ void __gen_e_acsl_f(struct X *item) { struct X __gen_e_acsl_at_2; @@ -39,13 +39,24 @@ void __gen_e_acsl_f(struct X *item) __e_acsl_store_block((void *)(& item),(size_t)8); { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"item", + (void *)item); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(struct X)",0,sizeof(struct X)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)item, sizeof(struct X), (void *)item, (void *)(& item)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(item)", - "tests/bts/issue-eacsl-139.c",9); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(item)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-139.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 9; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_at_2 = *item; } __gen_e_acsl_at = item; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c index 072539c22ae052daad7e7f24e6eeb21173da8bc6..5e77a29db646b87d8c1110e88d85af210d279273 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -29,10 +29,23 @@ int main(void) __e_acsl_globals_init(); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&G", + (void *)(& G)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& G),sizeof(int), (void *)(& G),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&G)", - "tests/bts/issue-eacsl-145.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&G)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&G)"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-145.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&G); */ ; int a = G; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c index 8d33325a01f4ce58d9de5e794582195de7b1d3f7..49b0d3b8bf1a090df731fb091e239d438125148c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c @@ -1,15 +1,17 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(int argc, char **argv) { int __retres; + __e_acsl_memory_init(& argc,& argv,(size_t)8); { int __gen_e_acsl_exists; int __gen_e_acsl_x; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_exists = 0; __gen_e_acsl_x = (unsigned int)(-1 + 1); while (1) { @@ -22,14 +24,24 @@ int main(int argc, char **argv) __gen_e_acsl_x ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main", - "\\exists unsigned int x; -1 < x < 5 && x == 0", - "tests/bts/issue-eacsl-149.c",4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\exists unsigned int x; -1 < x < 5 && x == 0", + 0,__gen_e_acsl_exists); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\exists unsigned int x; -1 < x < 5 && x == 0"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-149.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 4; + __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ∃ unsigned int x; -1 < x < 5 ∧ x ≡ 0; */ ; + /*@ assert \exists unsigned int x; -1 < x < 5 && x == 0; */ ; { int __gen_e_acsl_forall; int __gen_e_acsl_x_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_x_2 = (unsigned int)(-1 + 1); while (1) { @@ -42,12 +54,21 @@ int main(int argc, char **argv) __gen_e_acsl_x_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(! __gen_e_acsl_forall,1,"Assertion","main", - "!(\\forall unsigned int x; -1 < x < 5 ==> x != 0)", - "tests/bts/issue-eacsl-149.c",5); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\forall unsigned int x; -1 < x < 5 ==> x != 0", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!(\\forall unsigned int x; -1 < x < 5 ==> x != 0)"; + __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-149.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 5; + __e_acsl_assert(! __gen_e_acsl_forall,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬(∀ unsigned int x; -1 < x < 5 ⇒ x ≢ 0); */ ; + /*@ assert !(\forall unsigned int x; -1 < x < 5 ==> x != 0); */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c index 91b232c39ba10381933188988101853b64531d2a..6efb4bde152db550893469d59f695983dbc2835b 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -8,16 +8,44 @@ double d2 = 11.; int main(void) { int __retres; - __e_acsl_assert(-2147483649. < d2,1,"RTE","main", - "float_to_int: -2147483649 < d2", - "tests/bts/issue-eacsl-172.c",7); - __e_acsl_assert(d2 < 2147483648.,1,"RTE","main", - "float_to_int: d2 < 2147483648", - "tests/bts/issue-eacsl-172.c",7); - __e_acsl_assert((int)d2 > 10,1,"Assertion","main","(int)d2 > 10", - "tests/bts/issue-eacsl-172.c",7); + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"d2",d2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_2,"d2",d2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "float_to_int: -2147483649 < d2"; + __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-172.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 7; + __e_acsl_assert(-2147483649. < d2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_3,"d2",d2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "float_to_int: d2 < 2147483648"; + __gen_e_acsl_assert_data_3.file = "tests/bts/issue-eacsl-172.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 7; + __e_acsl_assert(d2 < 2147483648.,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "(int)d2 > 10"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-172.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert((int)d2 > 10,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } /*@ assert (int)d2 > 10; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c index f3b0980fe6050cb156957fba63de14a803b15060..df715b41a9d7e7687f4fbab81eed0f244cfc47a1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c @@ -1,12 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ -logic ℤ f(ℤ n) = - n ≤ 2147483647 + 1 ∨ n ≥ 9223372036854775807L + 1? 0: f(n + 1) + n; +logic integer f(integer n) = + n <= 2147483647 + 1 || n >= 9223372036854775807L + 1? 0: f(n + 1) + n; */ void __gen_e_acsl_f(__e_acsl_mpz_t *__retres_arg, int n); @@ -18,38 +18,60 @@ void __gen_e_acsl_f_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n); int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { __e_acsl_mpz_t __gen_e_acsl_f_8; __e_acsl_mpz_t __gen_e_acsl__10; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_f(& __gen_e_acsl_f_8,0); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"f(0)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f_8)); __gmpz_init_set_si(__gen_e_acsl__10,0L); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__10)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","f(0) == 0", - "tests/bts/issue-eacsl-177.c",12); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "f(0) == 0"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-177.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_f_8); __gmpz_clear(__gen_e_acsl__10); } - /*@ assert f(0) ≡ 0; */ ; + /*@ assert f(0) == 0; */ ; { long __gen_e_acsl_n_5; __e_acsl_mpz_t __gen_e_acsl_f_10; __e_acsl_mpz_t __gen_e_acsl__11; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_n_5 = 9223372036854775807L; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"n",0, + __gen_e_acsl_n_5); __gen_e_acsl_f_2(& __gen_e_acsl_f_10,__gen_e_acsl_n_5); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,"f(n)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f_10)); __gmpz_init_set_si(__gen_e_acsl__11,0L); __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f_10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main", - "\\let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0", - "tests/bts/issue-eacsl-177.c",14); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0"; + __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-177.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl_f_10); __gmpz_clear(__gen_e_acsl__11); } - /*@ assert \let n = 0 ≡ 0? 9223372036854775807L: -1; f(n) ≢ 0; */ ; + /*@ assert \let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c index 559ef66c07d1b3649d063335a8f41b015fe6f4e8..7eafbcd172d38a45945b46eb36cef07cd59acdf6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; @@ -9,7 +10,7 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; requires valid_mode: valid_read_string(mode); ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from (indirect: *(filename + (0 .. strlen{Old}(filename)))), @@ -20,7 +21,7 @@ FILE *__gen_e_acsl_fopen(char const * restrict filename, /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); requires valid_stream: \valid(stream); - ensures size_read: \result ≤ \old(nmemb); + ensures size_read: \result <= \old(nmemb); ensures initialization: \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); @@ -36,7 +37,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); requires valid_stream: \valid(stream); - ensures size_read: \result ≤ \old(nmemb); + ensures size_read: \result <= \old(nmemb); ensures initialization: \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); @@ -75,8 +76,17 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, int __gen_e_acsl_valid_2; __e_acsl_store_block((void *)(& stream),(size_t)8); __e_acsl_store_block((void *)(& ptr),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr",ptr); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); __gmpz_init_set_si(__gen_e_acsl_sizeof,1L); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"nmemb",0, + nmemb); __gmpz_init_set_ui(__gen_e_acsl_nmemb,nmemb); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size); __gmpz_init_set_ui(__gen_e_acsl_size_2,size); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, @@ -102,6 +112,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gmpz_init_set(__gen_e_acsl_size, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); if (__gen_e_acsl_le <= 0) { @@ -111,26 +123,64 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_clear(__gen_e_acsl__3); } - else __gmpz_init_set(__gen_e_acsl_if, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL); __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","fread", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",351); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_2.fct = "fread"; + __gen_e_acsl_assert_data_2.line = 351; + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 1 * 0), __gen_e_acsl_size_3,ptr, (void *)(& ptr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fread", - "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))", - "FRAMAC_SHARE/libc/stdio.h",351); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data.fct = "fread"; + __gen_e_acsl_assert_data.line = 351; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"stream", + (void *)stream); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(FILE)",0,sizeof(FILE)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stream,sizeof(FILE), (void *)stream,(void *)(& stream)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","fread", - "valid_stream: \\valid(stream)", - "FRAMAC_SHARE/libc/stdio.h",352); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(stream)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "valid_stream: \\valid(stream)"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_3.fct = "fread"; + __gen_e_acsl_assert_data_3.line = 352; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_nmemb); @@ -162,7 +212,13 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, __e_acsl_mpz_t __gen_e_acsl__5; int __gen_e_acsl_le_3; unsigned long __gen_e_acsl_size_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"__retres",0, + __retres); __gmpz_init_set_ui(__gen_e_acsl___retres,__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + size); __gmpz_init_set_ui(__gen_e_acsl_size_4,size); __gmpz_init(__gen_e_acsl_mul_3); __gmpz_mul(__gen_e_acsl_mul_3, @@ -171,9 +227,14 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL); __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_le_3 <= 0,1,"RTE","fread", - "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",350); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_4.fct = "fread"; + __gen_e_acsl_assert_data_4.line = 350; + __e_acsl_assert(__gen_e_acsl_le_3 <= 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gen_e_acsl_size_5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3)); __e_acsl_initialize(ptr,__gen_e_acsl_size_5); __gmpz_clear(__gen_e_acsl___retres); @@ -198,11 +259,35 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, int __gen_e_acsl_le_5; unsigned long __gen_e_acsl_size_8; int __gen_e_acsl_initialized; - __e_acsl_assert(__retres <= __gen_e_acsl_at,1,"Postcondition","fread", - "size_read: \\result <= \\old(nmemb)", - "FRAMAC_SHARE/libc/stdio.h",356); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"\\result",0, + __retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "\\old(nmemb)",0,__gen_e_acsl_at); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "size_read: \\result <= \\old(nmemb)"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_5.fct = "fread"; + __gen_e_acsl_assert_data_5.line = 356; + __e_acsl_assert(__retres <= __gen_e_acsl_at,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(ptr)", + __gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)", + 0,1); __gmpz_init_set_si(__gen_e_acsl_sizeof_2,1L); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"\\result",0, + __retres); __gmpz_init_set_ui(__gen_e_acsl_result,__retres); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"\\old(size)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); __gmpz_init(__gen_e_acsl_mul_4); __gmpz_mul(__gen_e_acsl_mul_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_result), @@ -227,6 +312,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __gmpz_init_set(__gen_e_acsl_size_6, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_5)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); if (__gen_e_acsl_le_4 <= 0) { @@ -236,21 +323,46 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_clear(__gen_e_acsl__8); } - else __gmpz_init_set(__gen_e_acsl_if_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + __gmpz_init_set(__gen_e_acsl_if_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gmpz_init_set_ui(__gen_e_acsl__9,18446744073709551615UL); __gen_e_acsl_le_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); - __e_acsl_assert(__gen_e_acsl_le_5 <= 0,1,"RTE","fread", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",357); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_7.fct = "fread"; + __gen_e_acsl_assert_data_7.line = 357; + __e_acsl_assert(__gen_e_acsl_le_5 <= 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gen_e_acsl_size_8 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_size_8); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","fread", - "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))", - "FRAMAC_SHARE/libc/stdio.h",357); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_6.fct = "fread"; + __gen_e_acsl_assert_data_6.line = 357; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_delete_block((void *)(& stream)); __e_acsl_delete_block((void *)(& ptr)); __gmpz_clear(__gen_e_acsl_size_6); @@ -274,7 +386,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, requires valid_mode: valid_read_string(mode); ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from (indirect: *(filename + (0 .. strlen{Old}(filename)))), @@ -329,11 +441,25 @@ int main(void) if (res == 4) { { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&buf_0[3]", + (void *)(& buf_0[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& buf_0[3]), sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&buf_0[3])", - "tests/bts/issue-eacsl-40.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&buf_0[3])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&buf_0[3])"; + __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-40.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(&buf_0[3]); */ ; __e_acsl_initialize((void *)(buf_0),sizeof(char)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c index 24396bfc82b95133eb8119e99c3557439a09461c..a547dad399d3fad6dd02badaeff16b05d18d4c43 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c index c5762d971dea76d2d8ac74cdb935ff134fad1b8b..aa08a91b85f061484af0a502377b1b198b6e5b44 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c @@ -1,15 +1,17 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { int __gen_e_acsl_forall; int __gen_e_acsl_c; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_c = (unsigned char)4; while (1) { @@ -27,28 +29,53 @@ int main(void) __gen_e_acsl_c ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main", - "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255", - "tests/bts/issue69.c",6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255"; + __gen_e_acsl_assert_data.file = "tests/bts/issue69.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ∀ unsigned char c; 4 ≤ c ≤ 300 ⇒ 0 ≤ c ≤ 255; */ ; + /*@ assert \forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255; */ ; int n = 5; { int __gen_e_acsl_m; int __gen_e_acsl_if; int __gen_e_acsl_forall_2; int __gen_e_acsl_u; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n); if (n > 0) __gen_e_acsl_if = 4; else __gen_e_acsl_if = 341; __gen_e_acsl_m = __gen_e_acsl_if; __gen_e_acsl_forall_2 = 1; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_u = (char)(1 + 1); while (1) { { int __gen_e_acsl_and_2; - if (-128 <= __gen_e_acsl_u) __gen_e_acsl_and_2 = __gen_e_acsl_u < 128; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0, + __gen_e_acsl_u); + if (-128 <= __gen_e_acsl_u) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0, + __gen_e_acsl_u); + __gen_e_acsl_and_2 = __gen_e_acsl_u < 128; + } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main","-128 <= u < 128", - "tests/bts/issue69.c",11); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "-128 <= u < 128"; + __gen_e_acsl_assert_data_3.file = "tests/bts/issue69.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 11; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } if (__gen_e_acsl_u < __gen_e_acsl_m) ; else break; if (__gen_e_acsl_u > 0) ; @@ -59,12 +86,22 @@ int main(void) __gen_e_acsl_u ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main", - "\\let m = n > 0? 4: 341;\n\\forall char u; 1 < u < m ==> u > 0", - "tests/bts/issue69.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\forall char u; 1 < u < m ==> u > 0",0, + __gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\let m = n > 0? 4: 341;\n\\forall char u; 1 < u < m ==> u > 0"; + __gen_e_acsl_assert_data_2.file = "tests/bts/issue69.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \let m = n > 0? 4: 341; ∀ char u; 1 < u < m ⇒ u > 0; */ ; + /*@ assert \let m = n > 0? 4: 341; \forall char u; 1 < u < m ==> u > 0; */ + ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle index efd026311297e55d8fefb674326118e6ece88624..694a6ace7a1a9a43050452f0b58ea629e93e275d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/issue-eacsl-105.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/issue-eacsl-105.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle index ac3528903af3bd4f306a3e7a91c535efefa046e6..7f3b6aca0f90ae15a80966ca7f9143f03520d159 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle @@ -4,5 +4,8 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/issue-eacsl-139.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/issue-eacsl-139.c:9: Warning: function __gen_e_acsl_f: postcondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle index 8d646242f63b276a80e5b1aecbe4798c58561b3d..6e51cc6899fa4c0308d20c0f4864a97ff0458adf 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle @@ -6,20 +6,30 @@ [eva] Computing initial state [eva] Initial state computed [eva:initial-state] Values of globals at initialization - G ∈ {0} - __e_acsl_sound_verdict ∈ [--..--] - __e_acsl_sound_verdict ∈ [--..--] - __e_acsl_heap_allocation_size ∈ [--..--] - __e_acsl_heap_allocated_blocks ∈ [--..--] - __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308] - __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38] - __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308] - __e_acsl_init ∈ [--..--] + G IN {0} + __e_acsl_sound_verdict IN [--..--] + __e_acsl_init IN [--..--] + __e_acsl_sound_verdict IN [--..--] + __e_acsl_heap_allocation_size IN [--..--] + __e_acsl_heap_allocated_blocks IN [--..--] + __e_acsl_math_HUGE_VAL IN [-1.79769313486e+308 .. 1.79769313486e+308] + __e_acsl_math_HUGE_VALF IN [-3.40282346639e+38 .. 3.40282346639e+38] + __e_acsl_math_INFINITY IN [-1.79769313486e+308 .. 1.79769313486e+308] [eva] using specification for function __e_acsl_memory_init [eva] using specification for function __e_acsl_store_block [eva] using specification for function __e_acsl_full_init +[eva] using specification for function __e_acsl_assert_register_ptr +[eva] using specification for function __e_acsl_assert_register_ulong +[eva:alarm] tests/bts/issue-eacsl-145.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva] using specification for function __e_acsl_valid +[eva] using specification for function __e_acsl_assert_register_int +[eva:alarm] tests/bts/issue-eacsl-145.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva] using specification for function __e_acsl_assert +[eva] using specification for function __e_acsl_assert_clean [eva] using specification for function __e_acsl_delete_block [eva] using specification for function __e_acsl_memory_clean [eva] done for function main @@ -27,7 +37,7 @@ [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- 3 functions analyzed (out of 5): 60% coverage. - In these functions, 23 statements reached (out of 23): 100% coverage. + In these functions, 36 statements reached (out of 36): 100% coverage. ---------------------------------------------------------------------------- No errors or warnings raised during the analysis. ---------------------------------------------------------------------------- @@ -35,6 +45,6 @@ ---------------------------------------------------------------------------- Evaluation of the logical properties reached by the analysis: Assertions 1 valid 0 unknown 0 invalid 1 total - Preconditions 2 valid 0 unknown 0 invalid 2 total - 100% of the logical properties reached have been proven. + Preconditions 8 valid 2 unknown 0 invalid 10 total + 81% of the logical properties reached have been proven. ---------------------------------------------------------------------------- diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle index dd6d9ea6b9d61f63e64152c3df0492c92862875b..eda654cff5b552f579fb68376a178448e4dae4f6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle @@ -14,6 +14,9 @@ Using specification of function __gen_e_acsl_f_3 for recursive calls of depth 100. Analysis of function __gen_e_acsl_f_3 is thus incomplete and its soundness relies on the written specification. +[eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle index 206e0f2af8778fd0860ed99a149a6d8c837113c8..99eb8b87048de208995e26ad5544d36eb211a1d7 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle @@ -31,16 +31,58 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:356: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: function __gen_e_acsl_fread: postcondition 'initialization' got status unknown. +[eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle index a3f1846d9e3c3d39035133222a4eb354bac869d2..627fd7acc98533afb4318d7dd26335fb27af9b2d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle @@ -1,3 +1,6 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/bts/issue69.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/bts/issue69.c:10: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c index f457dfd771a8c76e09af205888795157c0950a05..34edaef3d580b28d2270027e2fe08f1a2e01b101 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "string.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c index 93dcd481afdc60b43b20dc4f9acfe2457e4e5fc3..55d378e45483e210528e4f7e92c8f05702072b08 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "string.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c index 313fcf00ef198538e9a90fa4e936f8e944731937..76184e157cb74d313132d37a6040e0f145897c61 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "signal.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -41,36 +42,35 @@ char *__gen_e_acsl_literal_string_4; char *__gen_e_acsl_literal_string_8; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -89,42 +89,110 @@ void test_memory_tracking(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest", + (void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); __gen_e_acsl_size = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion", - "test_memory_tracking","\\initialized(&dest[0 .. 1])", - "tests/builtin/strcat.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&dest[0 .. 1])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&dest[0 .. 1])"; + __gen_e_acsl_assert_data.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(&dest[0 .. 1]); */ ; { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); __gen_e_acsl_size_2 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(dest + 1 * 2), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest[2 .. 3])", - "tests/builtin/strcat.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&dest[2 .. 3])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&dest[2 .. 3])"; + __gen_e_acsl_assert_data_2.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_2.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(! __gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\initialized(&dest[2 .. 3]); */ ; + /*@ assert !\initialized(&dest[2 .. 3]); */ ; { int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "(char *)src",(void *)(src)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(src + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion", - "test_memory_tracking","\\initialized(&src[0 .. 1])", - "tests/builtin/strcat.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&src[0 .. 1])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&src[0 .. 1])"; + __gen_e_acsl_assert_data_3.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_3.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_3.line = 17; + __e_acsl_assert(__gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&src[0 .. 1]); */ ; __e_acsl_builtin_strcat(dest,(char const *)(src)); @@ -132,25 +200,63 @@ void test_memory_tracking(void) int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); __gen_e_acsl_size_4 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_initialized_4,1,"Assertion", - "test_memory_tracking","\\initialized(&dest[0 .. 2])", - "tests/builtin/strcat.c",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&dest[0 .. 2])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(&dest[0 .. 2])"; + __gen_e_acsl_assert_data_4.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_4.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_4.line = 20; + __e_acsl_assert(__gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \initialized(&dest[0 .. 2]); */ ; { int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&dest[3]", + (void *)(& dest[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& dest[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest[3])", - "tests/builtin/strcat.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&dest[3])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest[3])"; + __gen_e_acsl_assert_data_5.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_5.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_5.line = 21; + __e_acsl_assert(! __gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\initialized(&dest[3]); */ ; + /*@ assert !\initialized(&dest[3]); */ ; __e_acsl_delete_block((void *)(src)); __e_acsl_delete_block((void *)(dest)); } @@ -165,47 +271,114 @@ void test_memory_tracking(void) int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); __gen_e_acsl_size_5 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(dest_0 + 1 * 0), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion", - "test_memory_tracking", - "\\initialized(&dest_0[0 .. 1])", - "tests/builtin/strcat.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&dest_0[0 .. 1])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&dest_0[0 .. 1])"; + __gen_e_acsl_assert_data_6.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_6.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_6.line = 27; + __e_acsl_assert(__gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&dest_0[0 .. 1]); */ ; { int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,1); __gen_e_acsl_size_6 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0 + 1 * 2), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion", - "test_memory_tracking", - "!\\initialized(&dest_0[2 .. 3])", - "tests/builtin/strcat.c",28); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&dest_0[2 .. 3])",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&dest_0[2 .. 3])"; + __gen_e_acsl_assert_data_7.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_7.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_7.line = 28; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&dest_0[2 .. 3]); */ ; + /*@ assert !\initialized(&dest_0[2 .. 3]); */ ; { int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "(char *)src_0",(void *)(src_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); __gen_e_acsl_size_7 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(src_0 + 1 * 0), (size_t)__gen_e_acsl_if_7); - __e_acsl_assert(__gen_e_acsl_initialized_8,1,"Assertion", - "test_memory_tracking","\\initialized(&src_0[0 .. 2])", - "tests/builtin/strcat.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&src_0[0 .. 2])",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&src_0[0 .. 2])"; + __gen_e_acsl_assert_data_8.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_8.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_8.line = 29; + __e_acsl_assert(__gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \initialized(&src_0[0 .. 2]); */ ; __e_acsl_builtin_strncat(dest_0,(char const *)(src_0),(unsigned long)1); @@ -213,27 +386,64 @@ void test_memory_tracking(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); __gen_e_acsl_size_8 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_0 + 1 * 0), (size_t)__gen_e_acsl_if_8); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion", - "test_memory_tracking", - "\\initialized(&dest_0[0 .. 2])", - "tests/builtin/strcat.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&dest_0[0 .. 2])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&dest_0[0 .. 2])"; + __gen_e_acsl_assert_data_9.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_9.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_9.line = 32; + __e_acsl_assert(__gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&dest_0[0 .. 2]); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "&dest_0[3]",(void *)(& dest_0[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& dest_0[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest_0[3])", - "tests/builtin/strcat.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&dest_0[3])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&dest_0[3])"; + __gen_e_acsl_assert_data_10.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_10.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_10.line = 33; + __e_acsl_assert(! __gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&dest_0[3]); */ ; + /*@ assert !\initialized(&dest_0[3]); */ ; __e_acsl_delete_block((void *)(src_0)); __e_acsl_delete_block((void *)(dest_0)); } @@ -248,47 +458,114 @@ void test_memory_tracking(void) int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); __gen_e_acsl_size_9 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_9); - __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion", - "test_memory_tracking", - "\\initialized(&dest_1[0 .. 1])", - "tests/builtin/strcat.c",39); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&dest_1[0 .. 1])",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 1])"; + __gen_e_acsl_assert_data_11.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_11.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_11.line = 39; + __e_acsl_assert(__gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(&dest_1[0 .. 1]); */ ; { int __gen_e_acsl_size_10; int __gen_e_acsl_if_10; int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,1); __gen_e_acsl_size_10 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_10); if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; - else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_10); + __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + } __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(dest_1 + 1 * 2), (size_t)__gen_e_acsl_if_10); - __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion", - "test_memory_tracking", - "!\\initialized(&dest_1[2 .. 3])", - "tests/builtin/strcat.c",40); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&dest_1[2 .. 3])",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[2 .. 3])"; + __gen_e_acsl_assert_data_12.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_12.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_12.line = 40; + __e_acsl_assert(! __gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\initialized(&dest_1[2 .. 3]); */ ; + /*@ assert !\initialized(&dest_1[2 .. 3]); */ ; { int __gen_e_acsl_size_11; int __gen_e_acsl_if_11; int __gen_e_acsl_initialized_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "(char *)src_1",(void *)(src_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(char)",0,1); __gen_e_acsl_size_11 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_11); if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; - else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_11); + __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + } __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(src_1 + 1 * 0), (size_t)__gen_e_acsl_if_11); - __e_acsl_assert(__gen_e_acsl_initialized_13,1,"Assertion", - "test_memory_tracking","\\initialized(&src_1[0 .. 1])", - "tests/builtin/strcat.c",41); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized(&src_1[0 .. 1])",0, + __gen_e_acsl_initialized_13); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\initialized(&src_1[0 .. 1])"; + __gen_e_acsl_assert_data_13.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_13.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_13.line = 41; + __e_acsl_assert(__gen_e_acsl_initialized_13, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } /*@ assert \initialized(&src_1[0 .. 1]); */ ; __e_acsl_builtin_strncat(dest_1,(char const *)(src_1),(unsigned long)2); @@ -296,27 +573,64 @@ void test_memory_tracking(void) int __gen_e_acsl_size_12; int __gen_e_acsl_if_12; int __gen_e_acsl_initialized_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(char)",0,1); __gen_e_acsl_size_12 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_12); if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; - else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_12); + __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + } __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_12); - __e_acsl_assert(__gen_e_acsl_initialized_14,1,"Assertion", - "test_memory_tracking", - "\\initialized(&dest_1[0 .. 2])", - "tests/builtin/strcat.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "\\initialized(&dest_1[0 .. 2])",0, + __gen_e_acsl_initialized_14); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\initialized(&dest_1[0 .. 2])"; + __gen_e_acsl_assert_data_14.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_14.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_14.line = 44; + __e_acsl_assert(__gen_e_acsl_initialized_14, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } /*@ assert \initialized(&dest_1[0 .. 2]); */ ; { int __gen_e_acsl_initialized_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "&dest_1[3]",(void *)(& dest_1[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(& dest_1[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_15,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest_1[3])", - "tests/builtin/strcat.c",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\initialized(&dest_1[3])",0, + __gen_e_acsl_initialized_15); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "!\\initialized(&dest_1[3])"; + __gen_e_acsl_assert_data_15.file = "tests/builtin/strcat.c"; + __gen_e_acsl_assert_data_15.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_15.line = 45; + __e_acsl_assert(! __gen_e_acsl_initialized_15, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert ¬\initialized(&dest_1[3]); */ ; + /*@ assert !\initialized(&dest_1[3]); */ ; __e_acsl_delete_block((void *)(src_1)); __e_acsl_delete_block((void *)(dest_1)); } @@ -324,8 +638,7 @@ void test_memory_tracking(void) } /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -336,33 +649,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -383,12 +712,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -398,30 +740,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -429,9 +805,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c index cb77e05860c921f2af86471a47a16fd3556fad20..0f0aa26e6d14542c8f36a0b17799cea189aee69e 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "signal.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -43,43 +44,42 @@ char *__gen_e_acsl_literal_string_5; char *__gen_e_acsl_literal_string_4; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; */ void __gen_e_acsl_abort(void); -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -97,7 +97,7 @@ pid_t __gen_e_acsl_fork(void); ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -105,8 +105,8 @@ pid_t __gen_e_acsl_fork(void); (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -134,7 +134,7 @@ __inline static void fail_ncomp(int cond, char *fmt, int l, int r) ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -142,8 +142,8 @@ __inline static void fail_ncomp(int cond, char *fmt, int l, int r) (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -158,19 +158,27 @@ char *__gen_e_acsl_strdup(char const *s) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1, - "Postcondition","strdup", - "no_allocation: result_null: \\result == \\null", - "FRAMAC_SHARE/libc/string.h", - 498); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result", + (void *)__retres); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strdup"; + __gen_e_acsl_assert_data_4.line = 498; + __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } } /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -181,33 +189,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -228,12 +252,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -243,30 +280,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -274,12 +345,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; @@ -287,9 +366,17 @@ void __gen_e_acsl_exit(int status) void __gen_e_acsl_abort(void) { abort(); - __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",460); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "abort"; + __gen_e_acsl_assert_data.line = 460; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c index bb72f2bbc63f1b9bba44621ad6fa764bf561cf00..41d960dd3f800c5cf02b351fdbe1e0e759cafbdb 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "signal.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -35,36 +36,35 @@ char *__gen_e_acsl_literal_string_4; char *__gen_e_acsl_literal_string_8; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -82,7 +82,7 @@ pid_t __gen_e_acsl_fork(void); ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -90,8 +90,8 @@ pid_t __gen_e_acsl_fork(void); (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -110,28 +110,73 @@ void test_memory_tracking(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest", + (void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); __gen_e_acsl_size = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest[0 .. 3])", - "tests/builtin/strcpy.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&dest[0 .. 3])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&dest[0 .. 3])"; + __gen_e_acsl_assert_data.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&dest[0 .. 3]); */ ; + /*@ assert !\initialized(&dest[0 .. 3]); */ ; { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(char *)src",(void *)(src)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); __gen_e_acsl_size_2 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(src + 1 * 0), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion", - "test_memory_tracking","\\initialized(&src[0 .. 1])", - "tests/builtin/strcpy.c",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&src[0 .. 1])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&src[0 .. 1])"; + __gen_e_acsl_assert_data_2.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_2.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&src[0 .. 1]); */ ; __e_acsl_builtin_strcpy(dest,(char const *)(src)); @@ -139,30 +184,76 @@ void test_memory_tracking(void) int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion", - "test_memory_tracking","\\initialized(&dest[0 .. 1])", - "tests/builtin/strcpy.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&dest[0 .. 1])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&dest[0 .. 1])"; + __gen_e_acsl_assert_data_3.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_3.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_3.line = 17; + __e_acsl_assert(__gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&dest[0 .. 1]); */ ; { int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); __gen_e_acsl_size_4 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 2), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest[2 .. 3])", - "tests/builtin/strcpy.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&dest[2 .. 3])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&dest[2 .. 3])"; + __gen_e_acsl_assert_data_4.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_4.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized(&dest[2 .. 3]); */ ; + /*@ assert !\initialized(&dest[2 .. 3]); */ ; __e_acsl_delete_block((void *)(src)); __e_acsl_delete_block((void *)(dest)); } @@ -176,59 +267,141 @@ void test_memory_tracking(void) int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest_0 + 1 * 0), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion", - "test_memory_tracking", - "!\\initialized(&dest_0[0 .. 3])", - "tests/builtin/strcpy.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&dest_0[0 .. 3])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest_0[0 .. 3])"; + __gen_e_acsl_assert_data_5.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_5.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_5.line = 23; + __e_acsl_assert(! __gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\initialized(&dest_0[0 .. 3]); */ ; + /*@ assert !\initialized(&dest_0[0 .. 3]); */ ; { int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "(char *)src_0",(void *)(src_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(src_0 + 1 * 0), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion", - "test_memory_tracking","\\initialized(&src_0[0 .. 3])", - "tests/builtin/strcpy.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&src_0[0 .. 3])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&src_0[0 .. 3])"; + __gen_e_acsl_assert_data_6.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_6.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_6.line = 24; + __e_acsl_assert(__gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&src_0[0 .. 3]); */ ; __e_acsl_builtin_strncpy(dest_0,(char const *)(src_0),(unsigned long)1); { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0), sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion", - "test_memory_tracking","\\initialized((char *)dest_0)", - "tests/builtin/strcpy.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized((char *)dest_0)",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\initialized((char *)dest_0)"; + __gen_e_acsl_assert_data_7.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_7.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_7.line = 27; + __e_acsl_assert(__gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \initialized((char *)dest_0); */ ; { int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); __gen_e_acsl_size_7 = 1 * ((3 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(dest_0 + 1 * 1), (size_t)__gen_e_acsl_if_7); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion", - "test_memory_tracking", - "!\\initialized(&dest_0[1 .. 3])", - "tests/builtin/strcpy.c",28); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&dest_0[1 .. 3])",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&dest_0[1 .. 3])"; + __gen_e_acsl_assert_data_8.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_8.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_8.line = 28; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized(&dest_0[1 .. 3]); */ ; + /*@ assert !\initialized(&dest_0[1 .. 3]); */ ; __e_acsl_delete_block((void *)(src_0)); __e_acsl_delete_block((void *)(dest_0)); } @@ -242,31 +415,76 @@ void test_memory_tracking(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); __gen_e_acsl_size_8 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_8); - __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion", - "test_memory_tracking", - "!\\initialized(&dest_1[0 .. 3])", - "tests/builtin/strcpy.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&dest_1[0 .. 3])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&dest_1[0 .. 3])"; + __gen_e_acsl_assert_data_9.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_9.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_9.line = 33; + __e_acsl_assert(! __gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ¬\initialized(&dest_1[0 .. 3]); */ ; + /*@ assert !\initialized(&dest_1[0 .. 3]); */ ; { int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "(char *)src_1",(void *)(src_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); __gen_e_acsl_size_9 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(src_1 + 1 * 0), (size_t)__gen_e_acsl_if_9); - __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion", - "test_memory_tracking","\\initialized(&src_1[0 .. 3])", - "tests/builtin/strcpy.c",34); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&src_1[0 .. 3])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\initialized(&src_1[0 .. 3])"; + __gen_e_acsl_assert_data_10.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_10.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_10.line = 34; + __e_acsl_assert(__gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \initialized(&src_1[0 .. 3]); */ ; __e_acsl_builtin_strncpy(dest_1,(char const *)(src_1),(unsigned long)3); @@ -274,27 +492,64 @@ void test_memory_tracking(void) int __gen_e_acsl_size_10; int __gen_e_acsl_if_10; int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); __gen_e_acsl_size_10 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_10); if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; - else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_10); + __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + } __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_10); - __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion", - "test_memory_tracking", - "\\initialized(&dest_1[0 .. 2])", - "tests/builtin/strcpy.c",37); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&dest_1[0 .. 2])",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 2])"; + __gen_e_acsl_assert_data_11.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_11.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_11.line = 37; + __e_acsl_assert(__gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(&dest_1[0 .. 2]); */ ; { int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "&dest_1[3]",(void *)(& dest_1[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& dest_1[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion", - "test_memory_tracking","!\\initialized(&dest_1[3])", - "tests/builtin/strcpy.c",38); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&dest_1[3])",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[3])"; + __gen_e_acsl_assert_data_12.file = "tests/builtin/strcpy.c"; + __gen_e_acsl_assert_data_12.fct = "test_memory_tracking"; + __gen_e_acsl_assert_data_12.line = 38; + __e_acsl_assert(! __gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\initialized(&dest_1[3]); */ ; + /*@ assert !\initialized(&dest_1[3]); */ ; __e_acsl_delete_block((void *)(src_1)); __e_acsl_delete_block((void *)(dest_1)); } @@ -313,7 +568,7 @@ void test_memory_tracking(void) ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -321,8 +576,8 @@ void test_memory_tracking(void) (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -337,19 +592,27 @@ char *__gen_e_acsl_strdup(char const *s) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1, - "Postcondition","strdup", - "no_allocation: result_null: \\result == \\null", - "FRAMAC_SHARE/libc/string.h", - 498); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result", + (void *)__retres); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strdup"; + __gen_e_acsl_assert_data_4.line = 498; + __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } } /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -360,33 +623,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -407,12 +686,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -422,30 +714,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -453,9 +779,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c index 5288ad885239b257ee03115041beef1d1b10e5e5..836035907163c2fae009d5aefc28a64ad03f4b57 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "signal.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -26,43 +27,42 @@ char *__gen_e_acsl_literal_string_4; char *__gen_e_acsl_literal_string_6; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; */ void __gen_e_acsl_abort(void); -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -80,7 +80,7 @@ pid_t __gen_e_acsl_fork(void); ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -88,8 +88,8 @@ pid_t __gen_e_acsl_fork(void); (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -108,7 +108,7 @@ char *__gen_e_acsl_strdup(char const *s); ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s))); ensures result_valid_string_and_same_contents: - valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0; + valid_string(\result) && strcmp(\result, \old(s)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: s), __fc_heap_status; assigns \result @@ -116,8 +116,8 @@ char *__gen_e_acsl_strdup(char const *s); (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(strlen(s)); - ensures result_null: \result ≡ \null; + assumes cannot_allocate: !is_allocable(strlen(s)); + ensures result_null: \result == \null; assigns \result; assigns \result \from \nothing; allocates \nothing; @@ -132,19 +132,27 @@ char *__gen_e_acsl_strdup(char const *s) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1, - "Postcondition","strdup", - "no_allocation: result_null: \\result == \\null", - "FRAMAC_SHARE/libc/string.h", - 498); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result", + (void *)__retres); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strdup"; + __gen_e_acsl_assert_data_4.line = 498; + __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } } /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -155,33 +163,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -202,12 +226,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -217,30 +254,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -248,12 +319,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; @@ -261,9 +340,17 @@ void __gen_e_acsl_exit(int status) void __gen_e_acsl_abort(void) { abort(); - __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",460); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "abort"; + __gen_e_acsl_assert_data.line = 460; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle index 355bf7bb1f029994a75c785588cf61c82170aeb9..19dbb447c775cdf3cef0296249455486845756dc 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle +++ b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle @@ -25,3 +25,9 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/acsl_check.c b/src/plugins/e-acsl/tests/constructs/acsl_check.c index 7c7659f8dda7fe7dfc3e42102563799849306fcc..28ef52feadf8f65a1292ad5be9745bbb0d0d4200 100644 --- a/src/plugins/e-acsl/tests/constructs/acsl_check.c +++ b/src/plugins/e-acsl/tests/constructs/acsl_check.c @@ -1,3 +1,6 @@ +/* run.config_dev + MACRO: ROOT_EACSL_GCC_OPTS_EXT -F -no-unicode +*/ #include <stdio.h> /*@ diff --git a/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle index cd045de605e4fc95c9335a74fdd6fda6c67ef425..d71920c4f9ef7a73008baf658e86291de49e74cf 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle @@ -1,13 +1,19 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] tests/constructs/acsl_check.c:18: Warning: +[eva:alarm] tests/constructs/acsl_check.c:21: Warning: function __e_acsl_assert, behavior non_blocking: precondition got status invalid. -[eva:alarm] tests/constructs/acsl_check.c:18: Warning: check got status invalid. -[eva:alarm] tests/constructs/acsl_check.c:19: Warning: +[eva:alarm] tests/constructs/acsl_check.c:21: Warning: check got status invalid. +[eva:alarm] tests/constructs/acsl_check.c:22: Warning: function __gen_e_acsl_f: precondition got status invalid. -[eva:alarm] tests/constructs/acsl_check.c:4: Warning: +[eva:alarm] tests/constructs/acsl_check.c:7: Warning: function __e_acsl_assert, behavior non_blocking: precondition got status invalid. -[eva:alarm] tests/constructs/acsl_check.c:5: Warning: +[eva:alarm] tests/constructs/acsl_check.c:8: Warning: function __e_acsl_assert, behavior non_blocking: precondition got status invalid. -[eva:alarm] tests/constructs/acsl_check.c:5: Warning: +[eva:alarm] tests/constructs/acsl_check.c:8: Warning: function __gen_e_acsl_f: postcondition got status invalid. +[eva:alarm] tests/constructs/acsl_check.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/acsl_check.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle index 314fbc84400356f43d67a0b874aa9397989b3e8c..472fc5ee310bd1e9a54cda63a3d48e9606cdd91d 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle @@ -12,5 +12,26 @@ E-ACSL construct `decreases clause' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/decrease.c:10: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:33: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/decrease.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/constructs/decrease.c:93: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c index d6c33875d6093cf058a4ec369c57e8a702191643..ec38efd9caf38ec735d7a108e2ac734c311dd90a 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c @@ -1,11 +1,12 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ check requires a ≢ 0; - check ensures \result ≢ 0; */ +/*@ check requires a != 0; + check ensures \result != 0; */ int __gen_e_acsl_f(int a); int f(int a) @@ -18,34 +19,85 @@ void g(int a, int *b) { int __gen_e_acsl_valid_read; __e_acsl_store_block((void *)(& b),(size_t)8); - __e_acsl_assert((long)*(b + 1) != 0L,1,"RTE","g", - "division_by_zero: (long)*(b + 1) != 0", - "tests/constructs/acsl_check.c",12); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*(b + 1)",0, + *(b + 1)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"*(b + 1)",0, + *(b + 1)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "division_by_zero: (long)*(b + 1) != 0"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert((long)*(b + 1) != 0L,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"b",(void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(b + 1), sizeof(int),(void *)b, (void *)(& b)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g", - "mem_access: \\valid_read(b + 1)", - "tests/constructs/acsl_check.c",12); - __e_acsl_assert(a / (long)*(b + 1) == 0L,0,"Assertion","g", - "a / *(b + 1) == 0","tests/constructs/acsl_check.c",12); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(b + 1)"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data_3.fct = "g"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data.blocking = 0; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "a / *(b + 1) == 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(a / (long)*(b + 1) == 0L,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ check a / *(b + 1) ≡ 0; */ ; + /*@ check a / *(b + 1) == 0; */ ; __e_acsl_delete_block((void *)(& b)); return; } -/*@ check requires a ≢ 0; - check ensures \result ≢ 0; */ +/*@ check requires a != 0; + check ensures \result != 0; */ int __gen_e_acsl_f(int a) { int __retres; - __e_acsl_assert(a != 0,0,"Precondition","f","a != 0", - "tests/constructs/acsl_check.c",4); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a); + __gen_e_acsl_assert_data.blocking = 0; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "a != 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(a != 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = f(a); - __e_acsl_assert(__retres != 0,0,"Postcondition","f","\\result != 0", - "tests/constructs/acsl_check.c",5); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_assert_data_2.blocking = 0; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\result != 0"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__retres != 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + return __retres; + } } void __e_acsl_globals_init(void) @@ -70,14 +122,24 @@ int main(void) int b[3] = {1, 2, 3}; __e_acsl_store_block((void *)(b),(size_t)12); __e_acsl_full_init((void *)(& b)); - __e_acsl_assert(a == 1,0,"Assertion","main","a == 1", - "tests/constructs/acsl_check.c",18); - /*@ check a ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a); + __gen_e_acsl_assert_data.blocking = 0; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "a == 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 21; + __e_acsl_assert(a == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ check a == 1; */ ; a = __gen_e_acsl_f(a); fprintf(stderr,__gen_e_acsl_literal_string); /* fprintf_va_1 */ g(a,b); - /*@ admit a ≡ 1; */ ; - /*@ admit a ≡ 2; */ ; + /*@ admit a == 1; */ ; + /*@ admit a == 2; */ ; __e_acsl_delete_block((void *)(b)); __e_acsl_memory_clean(); return a; diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c index c9da90bf22f58c36bc929800e70643a7837c03f2..1cf603208b0354d7b25a9390d18b664ca0ea22a6 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -12,16 +12,41 @@ int f(int x) __gen_e_acsl_old_variant = x; if (! (x >= 0)) break; x -= 2; - __e_acsl_assert(__gen_e_acsl_old_variant >= 0,1,"Variant","f", - "(old x) \342\211\245 0","tests/constructs/decrease.c", - 10); - __e_acsl_assert(__gen_e_acsl_old_variant > x,1,"Variant","f", - "(old x) > x","tests/constructs/decrease.c",10); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"old x",0, + __gen_e_acsl_old_variant); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_2, + & __gen_e_acsl_assert_data); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"current x", + 0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Variant"; + __gen_e_acsl_assert_data.pred_txt = "(old x) >= 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_old_variant >= 0, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Variant"; + __gen_e_acsl_assert_data_2.pred_txt = "(old x) > x"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(__gen_e_acsl_old_variant > x, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } } return x; } -/*@ predicate lexico(ℤ x, ℤ y) = x > y ∧ 0 ≤ x; +/*@ predicate lexico(integer x, integer y) = x > y && 0 <= x; */ int __gen_e_acsl_lexico(int x, int y); @@ -37,41 +62,99 @@ int g(int x) { int __gen_e_acsl_lexico_2; __gen_e_acsl_lexico_2 = __gen_e_acsl_lexico(__gen_e_acsl_old_variant,x); - __e_acsl_assert(__gen_e_acsl_lexico_2,1,"Variant","g", - "lexico(old x, x)","tests/constructs/decrease.c",21); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"old x",0, + __gen_e_acsl_old_variant); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"current x",0, + x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Variant"; + __gen_e_acsl_assert_data.pred_txt = "lexico(old x, x)"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 21; + __e_acsl_assert(__gen_e_acsl_lexico_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } return x; } -/*@ requires n ≤ 12; */ +/*@ requires n <= 12; */ int __gen_e_acsl_fact(int n); int fact(int n) { int __gen_e_acsl_old_variant; int result = n; - __e_acsl_assert(n >= 1,1,"Invariant","fact","n >= 1", - "tests/constructs/decrease.c",31); - /*@ loop invariant n ≥ 1; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "n >= 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "fact"; + __gen_e_acsl_assert_data.line = 31; + __e_acsl_assert(n >= 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ loop invariant n >= 1; loop variant n; */ while (1) { __gen_e_acsl_old_variant = n; if (! (n > 1)) break; - result *= n - 1; - n --; - __e_acsl_assert(n >= 1,1,"Invariant","fact","n >= 1", - "tests/constructs/decrease.c",31); - __e_acsl_assert(__gen_e_acsl_old_variant >= 0,1,"Variant","fact", - "(old n) \342\211\245 0","tests/constructs/decrease.c", - 33); - __e_acsl_assert(__gen_e_acsl_old_variant > n,1,"Variant","fact", - "(old n) > n","tests/constructs/decrease.c",33); + { + result *= n - 1; + n --; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "n >= 1"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_2.fct = "fact"; + __gen_e_acsl_assert_data_2.line = 31; + __e_acsl_assert(n >= 1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"old n",0, + __gen_e_acsl_old_variant); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"current n", + 0,n); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Variant"; + __gen_e_acsl_assert_data_3.pred_txt = "(old n) >= 0"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_3.fct = "fact"; + __gen_e_acsl_assert_data_3.line = 33; + __e_acsl_assert(__gen_e_acsl_old_variant >= 0, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Variant"; + __gen_e_acsl_assert_data_4.pred_txt = "(old n) > n"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_4.fct = "fact"; + __gen_e_acsl_assert_data_4.line = 33; + __e_acsl_assert(__gen_e_acsl_old_variant > n, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } } return result; } -/*@ requires n ≤ 20; */ +/*@ requires n <= 20; */ size_t __gen_e_acsl_fact2(size_t n); size_t fact2(size_t n) @@ -81,21 +164,50 @@ size_t fact2(size_t n) size_t i = 1UL; { int __gen_e_acsl_and; - if (1UL <= i) __gen_e_acsl_and = i < n; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","fact2","1 <= i < n", - "tests/constructs/decrease.c",44); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"i",0,i); + if (1UL <= i) { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_and = i < n; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "1 <= i < n"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "fact2"; + __gen_e_acsl_assert_data.line = 44; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ loop invariant 1 ≤ i < n; + /*@ loop invariant 1 <= i < n; loop variant n - i; */ while (i < n - 1UL) { result *= n - i; { int __gen_e_acsl_and_2; i += (size_t)1; - if (1UL <= i) __gen_e_acsl_and_2 = i < n; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"i",0,i); + if (1UL <= i) { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"i",0, + i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0, + n); + __gen_e_acsl_and_2 = i < n; + } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","fact2", - "1 <= i < n","tests/constructs/decrease.c",44); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "1 <= i < n"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_2.fct = "fact2"; + __gen_e_acsl_assert_data_2.line = 44; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } } @@ -124,13 +236,13 @@ int fib(int n) return_label: return __retres; } -/*@ requires n ≥ 0; +/*@ requires n >= 0; decreases n; */ int __gen_e_acsl_odd(int n); int odd(int n); -/*@ requires n ≥ 0; +/*@ requires n >= 0; decreases n; */ int __gen_e_acsl_even(int n); @@ -163,73 +275,220 @@ int odd(int n) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int f10 = f(10); - __e_acsl_assert(f10 == -2,1,"Assertion","main","f10 == -2", - "tests/constructs/decrease.c",81); - /*@ assert f10 ≡ -2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"f10",0,f10); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "f10 == -2"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 81; + __e_acsl_assert(f10 == -2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert f10 == -2; */ ; int f7 = f(7); - __e_acsl_assert(f7 == -1,1,"Assertion","main","f7 == -1", - "tests/constructs/decrease.c",83); - /*@ assert f7 ≡ -1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"f7",0,f7); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "f7 == -1"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 83; + __e_acsl_assert(f7 == -1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert f7 == -1; */ ; int g10 = g(10); - __e_acsl_assert(g10 == -2,1,"Assertion","main","g10 == -2", - "tests/constructs/decrease.c",85); - /*@ assert g10 ≡ -2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"g10",0,g10); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "g10 == -2"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 85; + __e_acsl_assert(g10 == -2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert g10 == -2; */ ; int g7 = g(7); - __e_acsl_assert(g7 == -1,1,"Assertion","main","g7 == -1", - "tests/constructs/decrease.c",87); - /*@ assert g7 ≡ -1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"g7",0,g7); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "g7 == -1"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 87; + __e_acsl_assert(g7 == -1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert g7 == -1; */ ; int fact7 = __gen_e_acsl_fact(7); - __e_acsl_assert(fact7 == 5040,1,"Assertion","main","fact7 == 5040", - "tests/constructs/decrease.c",90); - /*@ assert fact7 ≡ 5040; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"fact7",0, + fact7); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "fact7 == 5040"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 90; + __e_acsl_assert(fact7 == 5040,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert fact7 == 5040; */ ; size_t fact18 = __gen_e_acsl_fact2((unsigned long)18); - __e_acsl_assert(fact18 == 6402373705728000UL,1,"Assertion","main", - "fact18 == 6402373705728000UL", - "tests/constructs/decrease.c",93); - /*@ assert fact18 ≡ 6402373705728000UL; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"fact18",0, + fact18); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "fact18 == 6402373705728000UL"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 93; + __e_acsl_assert(fact18 == 6402373705728000UL, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert fact18 == 6402373705728000UL; */ ; int fib7 = __gen_e_acsl_fib(7); - __e_acsl_assert(fib7 == 13,1,"Assertion","main","fib7 == 13", - "tests/constructs/decrease.c",96); - /*@ assert fib7 ≡ 13; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"fib7",0,fib7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "fib7 == 13"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 96; + __e_acsl_assert(fib7 == 13,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert fib7 == 13; */ ; int even7 = __gen_e_acsl_even(7); - __e_acsl_assert(even7 == 0,1,"Assertion","main","even7 == 0", - "tests/constructs/decrease.c",99); - /*@ assert even7 ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"even7",0, + even7); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "even7 == 0"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 99; + __e_acsl_assert(even7 == 0,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert even7 == 0; */ ; int even10 = __gen_e_acsl_even(10); - __e_acsl_assert(even10 == 1,1,"Assertion","main","even10 == 1", - "tests/constructs/decrease.c",101); - /*@ assert even10 ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"even10",0, + even10); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "even10 == 1"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 101; + __e_acsl_assert(even10 == 1,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } + /*@ assert even10 == 1; */ ; int odd7 = __gen_e_acsl_odd(7); - __e_acsl_assert(odd7 == 1,1,"Assertion","main","odd7 == 1", - "tests/constructs/decrease.c",103); - /*@ assert odd7 ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"odd7",0,odd7); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "odd7 == 1"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 103; + __e_acsl_assert(odd7 == 1,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + } + /*@ assert odd7 == 1; */ ; int odd10 = __gen_e_acsl_odd(10); - __e_acsl_assert(odd10 == 0,1,"Assertion","main","odd10 == 0", - "tests/constructs/decrease.c",105); - /*@ assert odd10 ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"odd10",0, + odd10); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "odd10 == 0"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 105; + __e_acsl_assert(odd10 == 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } + /*@ assert odd10 == 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } -/*@ requires n ≥ 0; +/*@ requires n >= 0; decreases n; */ int __gen_e_acsl_even(int n) { int __retres; - __e_acsl_assert(n >= 0,1,"Precondition","even","n >= 0", - "tests/constructs/decrease.c",64); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "n >= 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "even"; + __gen_e_acsl_assert_data.line = 64; + __e_acsl_assert(n >= 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = even(n); return __retres; } -/*@ requires n ≥ 0; +/*@ requires n >= 0; decreases n; */ int __gen_e_acsl_odd(int n) { int __retres; - __e_acsl_assert(n >= 0,1,"Precondition","odd","n >= 0", - "tests/constructs/decrease.c",71); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "n >= 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "odd"; + __gen_e_acsl_assert_data.line = 71; + __e_acsl_assert(n >= 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = odd(n); return __retres; } @@ -242,22 +501,42 @@ int __gen_e_acsl_fib(int n) return __retres; } -/*@ requires n ≤ 20; */ +/*@ requires n <= 20; */ size_t __gen_e_acsl_fact2(size_t n) { size_t __retres; - __e_acsl_assert(n <= 20UL,1,"Precondition","fact2","n <= 20", - "tests/constructs/decrease.c",41); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "n <= 20"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "fact2"; + __gen_e_acsl_assert_data.line = 41; + __e_acsl_assert(n <= 20UL,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = fact2(n); return __retres; } -/*@ requires n ≤ 12; */ +/*@ requires n <= 12; */ int __gen_e_acsl_fact(int n) { int __retres; - __e_acsl_assert(n <= 12,1,"Precondition","fact","n <= 12", - "tests/constructs/decrease.c",28); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "n <= 12"; + __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c"; + __gen_e_acsl_assert_data.fct = "fact"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert(n <= 12,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __retres = fact(n); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c index b6db66215dc340b85f2a80d4b0513ee6b6dde66a..c373eedcb27d9e6a67e84502f780d33c8ba0a302 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c @@ -1,19 +1,30 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; if (x) { - __e_acsl_assert(0,1,"Assertion","main","\\false", - "tests/constructs/false.i",7); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\false"; + __gen_e_acsl_assert_data.file = "tests/constructs/false.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + } /*@ assert \false; */ ; } __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c index c29fe752eee1eb2062ee0411e5048892ab19d443..72c0217698f77d97b23e245d169e57d52d7299c7 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c @@ -1,12 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int X = 0; int Y = 2; -/*@ ensures X ≡ 1; */ +/*@ ensures X == 1; */ void __gen_e_acsl_f(void); void f(void) @@ -15,8 +15,8 @@ void f(void) return; } -/*@ ensures X ≡ 2; - ensures Y ≡ 2; */ +/*@ ensures X == 2; + ensures Y == 2; */ void __gen_e_acsl_g(void); void g(void) @@ -25,7 +25,7 @@ void g(void) return; } -/*@ requires X ≡ 2; */ +/*@ requires X == 2; */ void __gen_e_acsl_h(void); void h(void) @@ -34,8 +34,8 @@ void h(void) return; } -/*@ requires X ≡ 3; - requires Y ≡ 2; */ +/*@ requires X == 3; + requires Y == 2; */ void __gen_e_acsl_i(void); void i(void) @@ -45,13 +45,13 @@ void i(void) } /*@ behavior b1: - requires X ≡ 5; - ensures X ≡ 3; + requires X == 5; + ensures X == 3; behavior b2: - requires X ≡ 3 + Y; - requires Y ≡ 2; - ensures X ≡ Y + 1; + requires X == 3 + Y; + requires Y == 2; + ensures X == Y + 1; */ void __gen_e_acsl_j(void); @@ -62,14 +62,14 @@ void j(void) } /*@ behavior b1: - assumes X ≡ 1; - requires X ≡ 0; + assumes X == 1; + requires X == 0; behavior b2: - assumes X ≡ 3; - assumes Y ≡ 2; - requires X ≡ 3; - requires X + Y ≡ 5; + assumes X == 3; + assumes Y == 2; + requires X == 3; + requires X + Y == 5; */ void __gen_e_acsl_k(void); @@ -79,26 +79,36 @@ void k(void) return; } -/*@ ensures X ≡ 5; */ +/*@ ensures X == 5; */ int __gen_e_acsl_l(void); int l(void) { - __e_acsl_assert(Y == 2,1,"Assertion","l","Y == 2", - "tests/constructs/function_contract.i",61); - /*@ assert Y ≡ 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"Y",0,Y); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "Y == 2"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "l"; + __gen_e_acsl_assert_data.line = 61; + __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert Y == 2; */ ; return X; } /*@ behavior b1: - assumes X ≡ 7; - ensures X ≡ 95; + assumes X == 7; + ensures X == 95; behavior b2: - assumes X ≡ 5; - assumes Y ≡ 2; - ensures X ≡ 7; - ensures X ≡ \old(X) + Y; + assumes X == 5; + assumes Y == 2; + ensures X == 7; + ensures X == \old(X) + Y; */ void __gen_e_acsl_m(void); @@ -112,12 +122,12 @@ void m(void) requires X < 10; behavior b1: - assumes X ≡ 7; - ensures X ≡ 8; + assumes X == 7; + ensures X == 8; behavior b2: - assumes X ≡ 5; - ensures X ≡ 98; + assumes X == 5; + ensures X == 98; */ void __gen_e_acsl_n(void); @@ -128,27 +138,27 @@ void n(void) } /*@ requires X > -1000; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior neg: assumes Y < 0; requires Y < 1; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior pos: - assumes Y ≥ 0; + assumes Y >= 0; requires Y > -1; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior odd: - assumes Y % 2 ≡ 1; - requires Y % 2 - 1 ≡ 0; - ensures X ≡ \old(Y); + assumes Y % 2 == 1; + requires Y % 2 - 1 == 0; + ensures X == \old(Y); behavior even: - assumes Y % 2 ≡ 0; - requires Y % 2 + 1 ≡ 1; - ensures X ≡ \old(Y); + assumes Y % 2 == 0; + requires Y % 2 + 1 == 1; + ensures X == \old(Y); complete behaviors even, odd, pos, neg; complete behaviors odd, even; @@ -167,6 +177,7 @@ void o(void) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __gen_e_acsl_f(); __gen_e_acsl_g(); __gen_e_acsl_h(); @@ -178,31 +189,32 @@ int main(void) __gen_e_acsl_n(); __gen_e_acsl_o(); __retres = 0; + __e_acsl_memory_clean(); return __retres; } /*@ requires X > -1000; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior neg: assumes Y < 0; requires Y < 1; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior pos: - assumes Y ≥ 0; + assumes Y >= 0; requires Y > -1; - ensures X ≡ \old(Y); + ensures X == \old(Y); behavior odd: - assumes Y % 2 ≡ 1; - requires Y % 2 - 1 ≡ 0; - ensures X ≡ \old(Y); + assumes Y % 2 == 1; + requires Y % 2 - 1 == 0; + ensures X == \old(Y); behavior even: - assumes Y % 2 ≡ 0; - requires Y % 2 + 1 ≡ 1; - ensures X ≡ \old(Y); + assumes Y % 2 == 0; + requires Y % 2 + 1 == 1; + ensures X == \old(Y); complete behaviors even, odd, pos, neg; complete behaviors odd, even; @@ -222,8 +234,16 @@ void __gen_e_acsl_o(void) int __gen_e_acsl_assumes_value; int __gen_e_acsl_active_bhvrs; __gen_e_acsl_contract = __e_acsl_contract_init((size_t)4); - __e_acsl_assert(X > -1000,1,"Precondition","o","X > -1000", - "tests/constructs/function_contract.i",93); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "X > -1000"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "o"; + __gen_e_acsl_assert_data.line = 93; + __e_acsl_assert(X > -1000,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, Y < 0); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, @@ -234,55 +254,149 @@ void __gen_e_acsl_o(void) Y % 2 == 0); __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y < 1,1,"Precondition", - "o","neg: Y < 1", - "tests/constructs/function_contract.i", - 98); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "neg: Y < 1"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "o"; + __gen_e_acsl_assert_data_2.line = 98; + __e_acsl_assert(Y < 1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y > -1,1,"Precondition", - "o","pos: Y > -1", - "tests/constructs/function_contract.i", - 103); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "pos: Y > -1"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_3.fct = "o"; + __gen_e_acsl_assert_data_3.line = 103; + __e_acsl_assert(Y > -1,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 - 1 == 0,1, - "Precondition","o", - "odd: Y % 2 - 1 == 0", - "tests/constructs/function_contract.i", - 108); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"Y",0,Y); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Precondition"; + __gen_e_acsl_assert_data_4.pred_txt = "odd: Y % 2 - 1 == 0"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_4.fct = "o"; + __gen_e_acsl_assert_data_4.line = 108; + __e_acsl_assert(Y % 2 - 1 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 + 1 == 1,1, - "Precondition","o", - "even: Y % 2 + 1 == 1", - "tests/constructs/function_contract.i", - 113); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"Y",0,Y); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Precondition"; + __gen_e_acsl_assert_data_5.pred_txt = "even: Y % 2 + 1 == 1"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_5.fct = "o"; + __gen_e_acsl_assert_data_5.line = 113; + __e_acsl_assert(Y % 2 + 1 == 1,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,1,0); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); if (__gen_e_acsl_active_bhvrs != 1) { - __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o", - "complete behaviors pos, neg", - "tests/constructs/function_contract.i",123); - __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","o", - "disjoint behaviors pos, neg", - "tests/constructs/function_contract.i",123); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Precondition"; + __gen_e_acsl_assert_data_6.pred_txt = "complete behaviors pos, neg"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_6.fct = "o"; + __gen_e_acsl_assert_data_6.line = 123; + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Precondition"; + __gen_e_acsl_assert_data_7.pred_txt = "disjoint behaviors pos, neg"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_7.fct = "o"; + __gen_e_acsl_assert_data_7.line = 123; + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,2,3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); if (__gen_e_acsl_active_bhvrs != 1) { - __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o", - "complete behaviors odd, even", - "tests/constructs/function_contract.i",123); - __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","o", - "disjoint behaviors odd, even", - "tests/constructs/function_contract.i",123); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Precondition"; + __gen_e_acsl_assert_data_8.pred_txt = "complete behaviors odd, even"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_8.fct = "o"; + __gen_e_acsl_assert_data_8.line = 123; + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Precondition"; + __gen_e_acsl_assert_data_9.pred_txt = "disjoint behaviors odd, even"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_9.fct = "o"; + __gen_e_acsl_assert_data_9.line = 123; + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract); - __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o", - "all behaviors complete", - "tests/constructs/function_contract.i",123); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Precondition"; + __gen_e_acsl_assert_data_10.pred_txt = "all behaviors complete"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_10.fct = "o"; + __gen_e_acsl_assert_data_10.line = 123; + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } __gen_e_acsl_at_5 = Y; __gen_e_acsl_at_4 = Y; @@ -292,37 +406,87 @@ void __gen_e_acsl_o(void) o(); { int __gen_e_acsl_assumes_value_2; - __e_acsl_assert(X == __gen_e_acsl_at,1,"Postcondition","o", - "X == \\old(Y)","tests/constructs/function_contract.i", - 94); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"\\old(Y)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Postcondition"; + __gen_e_acsl_assert_data_12.pred_txt = "X == \\old(Y)"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_12.fct = "o"; + __gen_e_acsl_assert_data_12.line = 94; + __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_2, - 1,"Postcondition","o", - "neg: X == \\old(Y)", - "tests/constructs/function_contract.i", - 99); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"\\old(Y)", + 0,__gen_e_acsl_at_2); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Postcondition"; + __gen_e_acsl_assert_data_13.pred_txt = "neg: X == \\old(Y)"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_13.fct = "o"; + __gen_e_acsl_assert_data_13.line = 99; + __e_acsl_assert(X == __gen_e_acsl_at_2,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_3, - 1,"Postcondition","o", - "pos: X == \\old(Y)", - "tests/constructs/function_contract.i", - 104); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"\\old(Y)", + 0,__gen_e_acsl_at_3); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Postcondition"; + __gen_e_acsl_assert_data_14.pred_txt = "pos: X == \\old(Y)"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_14.fct = "o"; + __gen_e_acsl_assert_data_14.line = 104; + __e_acsl_assert(X == __gen_e_acsl_at_3,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_4, - 1,"Postcondition","o", - "odd: X == \\old(Y)", - "tests/constructs/function_contract.i", - 109); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"\\old(Y)", + 0,__gen_e_acsl_at_4); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Postcondition"; + __gen_e_acsl_assert_data_15.pred_txt = "odd: X == \\old(Y)"; + __gen_e_acsl_assert_data_15.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_15.fct = "o"; + __gen_e_acsl_assert_data_15.line = 109; + __e_acsl_assert(X == __gen_e_acsl_at_4,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_5, - 1,"Postcondition","o", - "even: X == \\old(Y)", - "tests/constructs/function_contract.i", - 114); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"\\old(Y)", + 0,__gen_e_acsl_at_5); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Postcondition"; + __gen_e_acsl_assert_data_16.pred_txt = "even: X == \\old(Y)"; + __gen_e_acsl_assert_data_16.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_16.fct = "o"; + __gen_e_acsl_assert_data_16.line = 114; + __e_acsl_assert(X == __gen_e_acsl_at_5,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return; } @@ -332,55 +496,91 @@ void __gen_e_acsl_o(void) requires X < 10; behavior b1: - assumes X ≡ 7; - ensures X ≡ 8; + assumes X == 7; + ensures X == 8; behavior b2: - assumes X ≡ 5; - ensures X ≡ 98; + assumes X == 5; + ensures X == 98; */ void __gen_e_acsl_n(void) { __e_acsl_contract_t *__gen_e_acsl_contract; - __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); - __e_acsl_assert(X > 0,1,"Precondition","n","X > 0", - "tests/constructs/function_contract.i",79); - __e_acsl_assert(X < 10,1,"Precondition","n","X < 10", - "tests/constructs/function_contract.i",80); - __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, - X == 7); - __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, - X == 5); + { + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "X > 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "n"; + __gen_e_acsl_assert_data.line = 79; + __e_acsl_assert(X > 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "X < 10"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "n"; + __gen_e_acsl_assert_data_2.line = 80; + __e_acsl_assert(X < 10,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + X == 7); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + X == 5); + } n(); { int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 8,1,"Postcondition", - "n","b1: X == 8", - "tests/constructs/function_contract.i", - 83); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "b1: X == 8"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_3.fct = "n"; + __gen_e_acsl_assert_data_3.line = 83; + __e_acsl_assert(X == 8,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 98,1, - "Postcondition","n", - "b2: X == 98", - "tests/constructs/function_contract.i", - 86); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"X",0,X); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "b2: X == 98"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_4.fct = "n"; + __gen_e_acsl_assert_data_4.line = 86; + __e_acsl_assert(X == 98,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return; } } /*@ behavior b1: - assumes X ≡ 7; - ensures X ≡ 95; + assumes X == 7; + ensures X == 95; behavior b2: - assumes X ≡ 5; - assumes Y ≡ 2; - ensures X ≡ 7; - ensures X ≡ \old(X) + Y; + assumes X == 5; + assumes Y == 2; + ensures X == 7; + ensures X == \old(X) + Y; */ void __gen_e_acsl_m(void) { @@ -401,44 +601,83 @@ void __gen_e_acsl_m(void) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 95,1, - "Postcondition","m", - "b1: X == 95", - "tests/constructs/function_contract.i", - 68); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "b1: X == 95"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "m"; + __gen_e_acsl_assert_data.line = 68; + __e_acsl_assert(X == 95,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { - __e_acsl_assert((long)X == __gen_e_acsl_at + Y,1,"Postcondition","m", - "b2: X == \\old(X) + Y", - "tests/constructs/function_contract.i",73); - __e_acsl_assert(X == 7,1,"Postcondition","m","b2: X == 7", - "tests/constructs/function_contract.i",72); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_3,"\\old(X)", + 0,__gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "b2: X == \\old(X) + Y"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_3.fct = "m"; + __gen_e_acsl_assert_data_3.line = 73; + __e_acsl_assert((long)X == __gen_e_acsl_at + Y, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 7"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "m"; + __gen_e_acsl_assert_data_2.line = 72; + __e_acsl_assert(X == 7,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __e_acsl_contract_clean(__gen_e_acsl_contract); return; } } -/*@ ensures X ≡ 5; */ +/*@ ensures X == 5; */ int __gen_e_acsl_l(void) { int __retres; __retres = l(); - __e_acsl_assert(X == 5,1,"Postcondition","l","X == 5", - "tests/constructs/function_contract.i",59); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 5"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "l"; + __gen_e_acsl_assert_data.line = 59; + __e_acsl_assert(X == 5,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + return __retres; + } } /*@ behavior b1: - assumes X ≡ 1; - requires X ≡ 0; + assumes X == 1; + requires X == 0; behavior b2: - assumes X ≡ 3; - assumes Y ≡ 2; - requires X ≡ 3; - requires X + Y ≡ 5; + assumes X == 3; + assumes Y == 2; + requires X == 3; + requires X + Y == 5; */ void __gen_e_acsl_k(void) { @@ -454,18 +693,45 @@ void __gen_e_acsl_k(void) __gen_e_acsl_and); __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 0,1,"Precondition", - "k","b1: X == 0", - "tests/constructs/function_contract.i", - 48); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "b1: X == 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "k"; + __gen_e_acsl_assert_data.line = 48; + __e_acsl_assert(X == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { - __e_acsl_assert(X + (long)Y == 5L,1,"Precondition","k", - "b2: X + Y == 5", - "tests/constructs/function_contract.i",53); - __e_acsl_assert(X == 3,1,"Precondition","k","b2: X == 3", - "tests/constructs/function_contract.i",52); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "b2: X + Y == 5"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_3.fct = "k"; + __gen_e_acsl_assert_data_3.line = 53; + __e_acsl_assert(X + (long)Y == 5L,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 3"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "k"; + __gen_e_acsl_assert_data_2.line = 52; + __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } k(); @@ -474,13 +740,13 @@ void __gen_e_acsl_k(void) } /*@ behavior b1: - requires X ≡ 5; - ensures X ≡ 3; + requires X == 5; + ensures X == 3; behavior b2: - requires X ≡ 3 + Y; - requires Y ≡ 2; - ensures X ≡ Y + 1; + requires X == 3 + Y; + requires Y == 2; + ensures X == Y + 1; */ void __gen_e_acsl_j(void) { @@ -492,18 +758,45 @@ void __gen_e_acsl_j(void) __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,1); __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 5,1,"Precondition", - "j","b1: X == 5", - "tests/constructs/function_contract.i", - 35); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "b1: X == 5"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "j"; + __gen_e_acsl_assert_data.line = 35; + __e_acsl_assert(X == 5,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { - __e_acsl_assert(Y == 2,1,"Precondition","j","b2: Y == 2", - "tests/constructs/function_contract.i",39); - __e_acsl_assert((long)X == 3L + Y,1,"Precondition","j", - "b2: X == 3 + Y", - "tests/constructs/function_contract.i",38); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "b2: Y == 2"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_3.fct = "j"; + __gen_e_acsl_assert_data_3.line = 39; + __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 3 + Y"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "j"; + __gen_e_acsl_assert_data_2.line = 38; + __e_acsl_assert((long)X == 3L + Y,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } j(); @@ -511,63 +804,138 @@ void __gen_e_acsl_j(void) int __gen_e_acsl_assumes_value_2; __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == 3,1, - "Postcondition","j", - "b1: X == 3", - "tests/constructs/function_contract.i", - 36); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"X",0,X); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "b1: X == 3"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_4.fct = "j"; + __gen_e_acsl_assert_data_4.line = 36; + __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)X == Y + 1L,1, - "Postcondition","j", - "b2: X == Y + 1", - "tests/constructs/function_contract.i", - 40); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"X",0,X); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"Y",0,Y); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "b2: X == Y + 1"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_5.fct = "j"; + __gen_e_acsl_assert_data_5.line = 40; + __e_acsl_assert((long)X == Y + 1L,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return; } } -/*@ requires X ≡ 3; - requires Y ≡ 2; */ +/*@ requires X == 3; + requires Y == 2; */ void __gen_e_acsl_i(void) { - __e_acsl_assert(X == 3,1,"Precondition","i","X == 3", - "tests/constructs/function_contract.i",27); - __e_acsl_assert(Y == 2,1,"Precondition","i","Y == 2", - "tests/constructs/function_contract.i",28); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 3"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "i"; + __gen_e_acsl_assert_data.line = 27; + __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "Y == 2"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "i"; + __gen_e_acsl_assert_data_2.line = 28; + __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } i(); return; } -/*@ requires X ≡ 2; */ +/*@ requires X == 2; */ void __gen_e_acsl_h(void) { - __e_acsl_assert(X == 2,1,"Precondition","h","X == 2", - "tests/constructs/function_contract.i",21); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 2"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "h"; + __gen_e_acsl_assert_data.line = 21; + __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } h(); return; } -/*@ ensures X ≡ 2; - ensures Y ≡ 2; */ +/*@ ensures X == 2; + ensures Y == 2; */ void __gen_e_acsl_g(void) { g(); - __e_acsl_assert(X == 2,1,"Postcondition","g","X == 2", - "tests/constructs/function_contract.i",14); - __e_acsl_assert(Y == 2,1,"Postcondition","g","Y == 2", - "tests/constructs/function_contract.i",15); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 2"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "Y == 2"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + return; + } } -/*@ ensures X ≡ 1; */ +/*@ ensures X == 1; */ void __gen_e_acsl_f(void) { f(); - __e_acsl_assert(X == 1,1,"Postcondition","f","X == 1", - "tests/constructs/function_contract.i",8); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(X == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + return; + } } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c index 19a1e3dfd46a540d6525445e25bfe3c1dc20d623..449f3981866ae37e0e69322f25bd610e0e13ae90 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -39,37 +39,82 @@ int main(void) int __gen_e_acsl_valid_read; int __gen_e_acsl_valid; __e_acsl_initialize((void *)P,sizeof(int)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"P",(void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)P,sizeof(int), (void *)P,(void *)(& P)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(P)","tests/constructs/ghost.i", - 13); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "RTE"; + __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(P)"; + __gen_e_acsl_assert_data.file = "tests/constructs/ghost.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"P",(void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)P,sizeof(int),(void *)P, (void *)(& P)); - __e_acsl_assert(__gen_e_acsl_valid,1,"RTE","main", - "mem_access: \\valid(P)","tests/constructs/ghost.i",13); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid(P)"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/ghost.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } (*P) ++; { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"*q",0,*q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"G",0,G); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q), sizeof(int *)); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)q,sizeof(int), (void *)q, (void *)(& q)); __gen_e_acsl_and = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main", - "mem_access: \\valid_read(q)","tests/constructs/ghost.i", - 14); - __e_acsl_assert(*q == G,1,"Assertion","main","*q == G", - "tests/constructs/ghost.i",14); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(q)"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/ghost.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "*q == G"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/ghost.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(*q == G,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert *q ≡ G; */ ; + /*@ assert *q == G; */ ; int x = 1; if (x) x ++; else { diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c index 65d2e93785cd4c110da3196e18c56fa94552d3c2..af91abe5cb17d3c6a83c9661f21aaa472ad8b9a6 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c @@ -1,31 +1,58 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; { int i = 0; while (i < 10) { { int __gen_e_acsl_and; - if (0 <= i) __gen_e_acsl_and = i < 10; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","main","0 <= i < 10", - "tests/constructs/invariant.i",9); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __gen_e_acsl_and = i < 10; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "0 <= i < 10"; + __gen_e_acsl_assert_data.file = "tests/constructs/invariant.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ invariant 0 ≤ i < 10; */ ; + /*@ invariant 0 <= i < 10; */ ; x += i; - __e_acsl_assert(i <= x,1,"Invariant","main","i <= x", - "tests/constructs/invariant.i",11); - /*@ invariant i ≤ x; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "i <= x"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/invariant.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(i <= x,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ invariant i <= x; */ ; i ++; } } __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c index f1091f95d9bb2e93247dfc7feeceefe4c63d93a8..d56bf1f9785f5c30e33d961855f2952590e8962b 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c @@ -1,11 +1,11 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int X = 0; -/*@ ensures X ≡ 3; */ +/*@ ensures X == 3; */ int main(void); int __gen_e_acsl_main(void) @@ -13,20 +13,50 @@ int __gen_e_acsl_main(void) int __retres; goto L1; L1: - /*@ assert X ≡ 0; */ - __e_acsl_assert(X == 0,1,"Assertion","main","X == 0", - "tests/constructs/labeled_stmt.i",10); + /*@ assert X == 0; */ + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "X == 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/labeled_stmt.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(X == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } X = 1; goto L2; L2: - /*@ requires X ≡ 1; - ensures X ≡ 2; */ + /*@ requires X == 1; + ensures X == 2; */ { - __e_acsl_assert(X == 1,1,"Precondition","main","X == 1", - "tests/constructs/labeled_stmt.i",13); - X = 2; - __e_acsl_assert(X == 2,1,"Postcondition","main","X == 2", - "tests/constructs/labeled_stmt.i",13); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "X == 1"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/labeled_stmt.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(X == 1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + X = 2; + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "X == 2"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/labeled_stmt.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } if (X) { X = 3; @@ -37,14 +67,26 @@ int __gen_e_acsl_main(void) return_label: return __retres; } -/*@ ensures X ≡ 3; */ +/*@ ensures X == 3; */ int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __retres = __gen_e_acsl_main(); - __e_acsl_assert(X == 3,1,"Postcondition","main","X == 3", - "tests/constructs/labeled_stmt.i",7); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "X == 3"; + __gen_e_acsl_assert_data.file = "tests/constructs/labeled_stmt.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_memory_clean(); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c index 99047ada7fce8801fa3da7a63e74f6ca77b965a4..35ccee19da5db847f1423b6a67b0fb45600436da 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c @@ -1,172 +1,417 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; int y = 1; { int __gen_e_acsl_and; - if (x == 0) __gen_e_acsl_and = y == 1; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","x == 0 && y == 1", - "tests/constructs/lazy.i",9); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + if (x == 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __gen_e_acsl_and = y == 1; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x == 0 && y == 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert x ≡ 0 ∧ y ≡ 1; */ ; + /*@ assert x == 0 && y == 1; */ ; { int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); if (x != 0) { - __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0", - "tests/constructs/lazy.i",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "division_by_zero: 0 != 0"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 10; + __e_acsl_assert(0,& __gen_e_acsl_assert_data_3); __gen_e_acsl_and_2 = y == 1 / 0; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main", - "!(x != 0 && y == 1 / 0)","tests/constructs/lazy.i",10); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!(x != 0 && y == 1 / 0)"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬(x ≢ 0 ∧ y ≡ 1 / 0); */ ; + /*@ assert !(x != 0 && y == 1 / 0); */ ; { int __gen_e_acsl_or; - if (y == 1) __gen_e_acsl_or = 1; else __gen_e_acsl_or = x == 1; - __e_acsl_assert(__gen_e_acsl_or,1,"Assertion","main","y == 1 || x == 1", - "tests/constructs/lazy.i",11); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + if (y == 1) __gen_e_acsl_or = 1; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); + __gen_e_acsl_or = x == 1; + } + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "y == 1 || x == 1"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 11; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert y ≡ 1 ∨ x ≡ 1; */ ; + /*@ assert y == 1 || x == 1; */ ; { int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); if (x == 0) __gen_e_acsl_or_2 = 1; else { - __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0", - "tests/constructs/lazy.i",12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"y",0,y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "division_by_zero: 0 != 0"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 12; + __e_acsl_assert(0,& __gen_e_acsl_assert_data_6); __gen_e_acsl_or_2 = y == 1 / 0; } - __e_acsl_assert(__gen_e_acsl_or_2,1,"Assertion","main", - "x == 0 || y == 1 / 0","tests/constructs/lazy.i",12); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "x == 0 || y == 1 / 0"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 12; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert x ≡ 0 ∨ y ≡ 1 / 0; */ ; + /*@ assert x == 0 || y == 1 / 0; */ ; { int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x); if (! (x == 0)) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = y == 1; - __e_acsl_assert(__gen_e_acsl_implies,1,"Assertion","main", - "x == 0 ==> y == 1","tests/constructs/lazy.i",13); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"y",0,y); + __gen_e_acsl_implies = y == 1; + } + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "x == 0 ==> y == 1"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 13; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert x ≡ 0 ⇒ y ≡ 1; */ ; + /*@ assert x == 0 ==> y == 1; */ ; { int __gen_e_acsl_implies_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); if (! (x == 1)) __gen_e_acsl_implies_2 = 1; else { - __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0", - "tests/constructs/lazy.i",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"y",0,y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "division_by_zero: 0 != 0"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 14; + __e_acsl_assert(0,& __gen_e_acsl_assert_data_9); __gen_e_acsl_implies_2 = y == 1 / 0; } - __e_acsl_assert(__gen_e_acsl_implies_2,1,"Assertion","main", - "x == 1 ==> y == 1 / 0","tests/constructs/lazy.i",14); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "x == 1 ==> y == 1 / 0"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 14; + __e_acsl_assert(__gen_e_acsl_implies_2,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert x ≡ 1 ⇒ y ≡ 1 / 0; */ ; + /*@ assert x == 1 ==> y == 1 / 0; */ ; { int __gen_e_acsl_if; - if (x != 0) __gen_e_acsl_if = x != 0; else __gen_e_acsl_if = y != 0; - __e_acsl_assert(__gen_e_acsl_if,1,"Assertion","main", - "x != 0? x != 0: y != 0","tests/constructs/lazy.i",15); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x); + if (x != 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x); + __gen_e_acsl_if = x != 0; + } + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"y",0,y); + __gen_e_acsl_if = y != 0; + } + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "x != 0? x != 0: y != 0"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 15; + __e_acsl_assert(__gen_e_acsl_if,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert x ≢ 0? x ≢ 0: y ≢ 0; */ ; + /*@ assert x != 0? x != 0: y != 0; */ ; { int __gen_e_acsl_if_2; - if (y != 0) __gen_e_acsl_if_2 = y != 0; else __gen_e_acsl_if_2 = x != 0; - __e_acsl_assert(__gen_e_acsl_if_2,1,"Assertion","main", - "y != 0? y != 0: x != 0","tests/constructs/lazy.i",16); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"y",0,y); + if (y != 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"y",0,y); + __gen_e_acsl_if_2 = y != 0; + } + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x); + __gen_e_acsl_if_2 = x != 0; + } + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "y != 0? y != 0: x != 0"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 16; + __e_acsl_assert(__gen_e_acsl_if_2,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert y ≢ 0? y ≢ 0: x ≢ 0; */ ; + /*@ assert y != 0? y != 0: x != 0; */ ; { int __gen_e_acsl_if_3; - if (x == 1) __gen_e_acsl_if_3 = x == 18; else __gen_e_acsl_if_3 = x == 0; - __e_acsl_assert(__gen_e_acsl_if_3,1,"Assertion","main", - "x == 1? x == 18: x == 0","tests/constructs/lazy.i",17); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x); + if (x == 1) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x); + __gen_e_acsl_if_3 = x == 18; + } + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x); + __gen_e_acsl_if_3 = x == 0; + } + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "x == 1? x == 18: x == 0"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 17; + __e_acsl_assert(__gen_e_acsl_if_3,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert x ≡ 1? x ≡ 18: x ≡ 0; */ ; + /*@ assert x == 1? x == 18: x == 0; */ ; { int __gen_e_acsl_implies_3; int __gen_e_acsl_equiv; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x); if (! (x == 2)) __gen_e_acsl_implies_3 = 1; - else __gen_e_acsl_implies_3 = y == 3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y); + __gen_e_acsl_implies_3 = y == 3; + } if (__gen_e_acsl_implies_3) { int __gen_e_acsl_implies_4; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y); if (! (y == 3)) __gen_e_acsl_implies_4 = 1; - else __gen_e_acsl_implies_4 = x == 2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x); + __gen_e_acsl_implies_4 = x == 2; + } __gen_e_acsl_equiv = __gen_e_acsl_implies_4; } else __gen_e_acsl_equiv = 0; - __e_acsl_assert(__gen_e_acsl_equiv,1,"Assertion","main", - "x == 2 <==> y == 3","tests/constructs/lazy.i",20); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "x == 2 <==> y == 3"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 20; + __e_acsl_assert(__gen_e_acsl_equiv,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert x ≡ 2 ⇔ y ≡ 3; */ ; + /*@ assert x == 2 <==> y == 3; */ ; { int __gen_e_acsl_implies_5; int __gen_e_acsl_equiv_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x); if (! (x == 0)) __gen_e_acsl_implies_5 = 1; - else __gen_e_acsl_implies_5 = y == 1; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"y",0,y); + __gen_e_acsl_implies_5 = y == 1; + } if (__gen_e_acsl_implies_5) { int __gen_e_acsl_implies_6; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"y",0,y); if (! (y == 1)) __gen_e_acsl_implies_6 = 1; - else __gen_e_acsl_implies_6 = x == 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x); + __gen_e_acsl_implies_6 = x == 0; + } __gen_e_acsl_equiv_2 = __gen_e_acsl_implies_6; } else __gen_e_acsl_equiv_2 = 0; - __e_acsl_assert(__gen_e_acsl_equiv_2,1,"Assertion","main", - "x == 0 <==> y == 1","tests/constructs/lazy.i",21); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "x == 0 <==> y == 1"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 21; + __e_acsl_assert(__gen_e_acsl_equiv_2,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert x ≡ 0 ⇔ y ≡ 1; */ ; + /*@ assert x == 0 <==> y == 1; */ ; { int __gen_e_acsl_if_4; - if (x != 0) __gen_e_acsl_if_4 = x; else __gen_e_acsl_if_4 = y; - __e_acsl_assert((__gen_e_acsl_if_4 != 0) == (x == 0),1,"Assertion", - "main","((x != 0? x: y) != 0) == (x == 0)", - "tests/constructs/lazy.i",24); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x); + if (x != 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x); + __gen_e_acsl_if_4 = x; + } + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"y",0,y); + __gen_e_acsl_if_4 = y; + } + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "((x != 0? x: y) != 0) == (x == 0)"; + __gen_e_acsl_assert_data_15.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 24; + __e_acsl_assert((__gen_e_acsl_if_4 != 0) == (x == 0), + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert ((x ≢ 0? x: y) ≢ 0) ≡ (x ≡ 0); */ ; + /*@ assert ((x != 0? x: y) != 0) == (x == 0); */ ; { int __gen_e_acsl_and_3; int __gen_e_acsl_or_3; - if (x != 0) __gen_e_acsl_and_3 = y != 0; else __gen_e_acsl_and_3 = 0; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"x",0,x); + if (x != 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"y",0,y); + __gen_e_acsl_and_3 = y != 0; + } + else __gen_e_acsl_and_3 = 0; if (__gen_e_acsl_and_3) __gen_e_acsl_or_3 = 1; - else __gen_e_acsl_or_3 = y != 0; - __e_acsl_assert(__gen_e_acsl_or_3,1,"Assertion","main", - "(x != 0 && y != 0) || y != 0","tests/constructs/lazy.i", - 25); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"y",0,y); + __gen_e_acsl_or_3 = y != 0; + } + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "(x != 0 && y != 0) || y != 0"; + __gen_e_acsl_assert_data_16.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 25; + __e_acsl_assert(__gen_e_acsl_or_3,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert (x ≢ 0 ∧ y ≢ 0) ∨ y ≢ 0; */ ; + /*@ assert (x != 0 && y != 0) || y != 0; */ ; { int __gen_e_acsl_or_4; int __gen_e_acsl_and_4; - if (x != 0) __gen_e_acsl_or_4 = 1; else __gen_e_acsl_or_4 = y != 0; - if (__gen_e_acsl_or_4) __gen_e_acsl_and_4 = y == 1; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x); + if (x != 0) __gen_e_acsl_or_4 = 1; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y); + __gen_e_acsl_or_4 = y != 0; + } + if (__gen_e_acsl_or_4) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y); + __gen_e_acsl_and_4 = y == 1; + } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main", - "(x != 0 || y != 0) && y == 1","tests/constructs/lazy.i", - 26); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "(x != 0 || y != 0) && y == 1"; + __gen_e_acsl_assert_data_17.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 26; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert (x ≢ 0 ∨ y ≢ 0) ∧ y ≡ 1; */ ; + /*@ assert (x != 0 || y != 0) && y == 1; */ ; { int __gen_e_acsl_or_5; - if (x != 0) __gen_e_acsl_or_5 = 1; else __gen_e_acsl_or_5 = y != 0; - __e_acsl_assert(__gen_e_acsl_or_5 == (y != 0),1,"Assertion","main", - "(x != 0 || y != 0) == (y != 0)", - "tests/constructs/lazy.i",27); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"x",0,x); + if (x != 0) __gen_e_acsl_or_5 = 1; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"y",0,y); + __gen_e_acsl_or_5 = y != 0; + } + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"y",0,y); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "(x != 0 || y != 0) == (y != 0)"; + __gen_e_acsl_assert_data_18.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 27; + __e_acsl_assert(__gen_e_acsl_or_5 == (y != 0), + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } - /*@ assert (x ≢ 0 ∨ y ≢ 0) ≡ (y ≢ 0); */ ; + /*@ assert (x != 0 || y != 0) == (y != 0); */ ; { int __gen_e_acsl_and_5; - if (x != 0) __gen_e_acsl_and_5 = y != 0; else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(__gen_e_acsl_and_5 == (x != 0),1,"Assertion","main", - "(x != 0 && y != 0) == (x != 0)", - "tests/constructs/lazy.i",28); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"x",0,x); + if (x != 0) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"y",0,y); + __gen_e_acsl_and_5 = y != 0; + } + else __gen_e_acsl_and_5 = 0; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"x",0,x); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "(x != 0 && y != 0) == (x != 0)"; + __gen_e_acsl_assert_data_19.file = "tests/constructs/lazy.i"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 28; + __e_acsl_assert(__gen_e_acsl_and_5 == (x != 0), + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert (x ≢ 0 ∧ y ≢ 0) ≡ (x ≢ 0); */ ; + /*@ assert (x != 0 && y != 0) == (x != 0); */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c index 029e81dbde948f4cf261e8fe0736c00e13f1fa9c..775ef237069dadcd676f7dc852cbe2a4a2769764 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,20 +11,45 @@ void simple_loop(void) int i = 0; { int __gen_e_acsl_and; - if (0 <= i) __gen_e_acsl_and = i <= 10; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","simple_loop", - "0 <= i <= 10","tests/constructs/loop.i",8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __gen_e_acsl_and = i <= 10; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 10"; + __gen_e_acsl_assert_data.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data.fct = "simple_loop"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ loop invariant 0 ≤ i ≤ 10; */ + /*@ loop invariant 0 <= i <= 10; */ while (i < 10) { sum += i; { int __gen_e_acsl_and_2; i ++; - if (0 <= i) __gen_e_acsl_and_2 = i <= 10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __gen_e_acsl_and_2 = i <= 10; + } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","simple_loop", - "0 <= i <= 10","tests/constructs/loop.i",8); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 10"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_2.fct = "simple_loop"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } } @@ -37,11 +62,23 @@ void nested_loops(void) int i = 0; { int __gen_e_acsl_and; - if (0 <= i) __gen_e_acsl_and = i <= 4; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","nested_loops", - "0 <= i <= 4","tests/constructs/loop.i",15); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __gen_e_acsl_and = i <= 4; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 4"; + __gen_e_acsl_assert_data.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data.fct = "nested_loops"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ loop invariant 0 ≤ i ≤ 4; */ + /*@ loop invariant 0 <= i <= 4; */ while (i < 4) { { int j = 0; @@ -50,6 +87,8 @@ void nested_loops(void) int __gen_e_acsl_k; int __gen_e_acsl_l; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_k = 0; while (1) { @@ -57,40 +96,103 @@ void nested_loops(void) __gen_e_acsl_l = 0; while (1) { if (__gen_e_acsl_l < j) ; else break; - __e_acsl_assert(__gen_e_acsl_l < 8,1,"RTE","nested_loops", - "index_bound: __gen_e_acsl_l < 8", - "tests/constructs/loop.i",19); - __e_acsl_assert(0 <= __gen_e_acsl_l,1,"RTE","nested_loops", - "index_bound: 0 <= __gen_e_acsl_l", - "tests/constructs/loop.i",19); - __e_acsl_assert(__gen_e_acsl_k < 4,1,"RTE","nested_loops", - "index_bound: __gen_e_acsl_k < 4", - "tests/constructs/loop.i",19); - __e_acsl_assert(0 <= __gen_e_acsl_k,1,"RTE","nested_loops", - "index_bound: 0 <= __gen_e_acsl_k", - "tests/constructs/loop.i",19); - if ((long)t[__gen_e_acsl_k][__gen_e_acsl_l] == __gen_e_acsl_k * (long)__gen_e_acsl_l) - ; - else { - __gen_e_acsl_forall = 0; - goto e_acsl_end_loop1; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_l",0,__gen_e_acsl_l); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "index_bound: __gen_e_acsl_l < 8"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_3.fct = "nested_loops"; + __gen_e_acsl_assert_data_3.line = 19; + __e_acsl_assert(__gen_e_acsl_l < 8, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_l",0,__gen_e_acsl_l); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "index_bound: 0 <= __gen_e_acsl_l"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_4.fct = "nested_loops"; + __gen_e_acsl_assert_data_4.line = 19; + __e_acsl_assert(0 <= __gen_e_acsl_l, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_k",0,__gen_e_acsl_k); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "index_bound: __gen_e_acsl_k < 4"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_5.fct = "nested_loops"; + __gen_e_acsl_assert_data_5.line = 19; + __e_acsl_assert(__gen_e_acsl_k < 4, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_k",0,__gen_e_acsl_k); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "index_bound: 0 <= __gen_e_acsl_k"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_6.fct = "nested_loops"; + __gen_e_acsl_assert_data_6.line = 19; + __e_acsl_assert(0 <= __gen_e_acsl_k, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + if ((long)t[__gen_e_acsl_k][__gen_e_acsl_l] == __gen_e_acsl_k * (long)__gen_e_acsl_l) + ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop1; + } } __gen_e_acsl_l ++; } __gen_e_acsl_k ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Invariant","nested_loops", - "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l", - "tests/constructs/loop.i",19); - if (0 <= j) __gen_e_acsl_and_2 = j <= 8; else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","nested_loops", - "0 <= j <= 8","tests/constructs/loop.i",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_2.fct = "nested_loops"; + __gen_e_acsl_assert_data_2.line = 19; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"j",0,j); + if (0 <= j) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"j",0,j); + __gen_e_acsl_and_2 = j <= 8; + } + else __gen_e_acsl_and_2 = 0; + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Invariant"; + __gen_e_acsl_assert_data_7.pred_txt = "0 <= j <= 8"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_7.fct = "nested_loops"; + __gen_e_acsl_assert_data_7.line = 17; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ loop invariant 0 ≤ j ≤ 8; + /*@ loop invariant 0 <= j <= 8; loop invariant - ∀ ℤ k, ℤ l; - 0 ≤ k < i ∧ 0 ≤ l < j ⇒ t[k][l] ≡ k * l; + \forall integer k, integer l; + 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l; */ while (j < 8) { t[i][j] = i * j; @@ -100,10 +202,25 @@ void nested_loops(void) int __gen_e_acsl_k_2; int __gen_e_acsl_l_2; j ++; - if (0 <= j) __gen_e_acsl_and_3 = j <= 8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"j",0,j); + if (0 <= j) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"j",0, + j); + __gen_e_acsl_and_3 = j <= 8; + } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Invariant","nested_loops", - "0 <= j <= 8","tests/constructs/loop.i",17); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Invariant"; + __gen_e_acsl_assert_data_8.pred_txt = "0 <= j <= 8"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_8.fct = "nested_loops"; + __gen_e_acsl_assert_data_8.line = 17; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_k_2 = 0; while (1) { @@ -111,41 +228,108 @@ void nested_loops(void) __gen_e_acsl_l_2 = 0; while (1) { if (__gen_e_acsl_l_2 < j) ; else break; - __e_acsl_assert(__gen_e_acsl_l_2 < 8,1,"RTE","nested_loops", - "index_bound: __gen_e_acsl_l_2 < 8", - "tests/constructs/loop.i",19); - __e_acsl_assert(0 <= __gen_e_acsl_l_2,1,"RTE","nested_loops", - "index_bound: 0 <= __gen_e_acsl_l_2", - "tests/constructs/loop.i",19); - __e_acsl_assert(__gen_e_acsl_k_2 < 4,1,"RTE","nested_loops", - "index_bound: __gen_e_acsl_k_2 < 4", - "tests/constructs/loop.i",19); - __e_acsl_assert(0 <= __gen_e_acsl_k_2,1,"RTE","nested_loops", - "index_bound: 0 <= __gen_e_acsl_k_2", - "tests/constructs/loop.i",19); - if ((long)t[__gen_e_acsl_k_2][__gen_e_acsl_l_2] == __gen_e_acsl_k_2 * (long)__gen_e_acsl_l_2) - ; - else { - __gen_e_acsl_forall_2 = 0; - goto e_acsl_end_loop2; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "__gen_e_acsl_l_2",0, + __gen_e_acsl_l_2); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "index_bound: __gen_e_acsl_l_2 < 8"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_10.fct = "nested_loops"; + __gen_e_acsl_assert_data_10.line = 19; + __e_acsl_assert(__gen_e_acsl_l_2 < 8, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "__gen_e_acsl_l_2",0, + __gen_e_acsl_l_2); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "index_bound: 0 <= __gen_e_acsl_l_2"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_11.fct = "nested_loops"; + __gen_e_acsl_assert_data_11.line = 19; + __e_acsl_assert(0 <= __gen_e_acsl_l_2, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "__gen_e_acsl_k_2",0, + __gen_e_acsl_k_2); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "index_bound: __gen_e_acsl_k_2 < 4"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_12.fct = "nested_loops"; + __gen_e_acsl_assert_data_12.line = 19; + __e_acsl_assert(__gen_e_acsl_k_2 < 4, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "__gen_e_acsl_k_2",0, + __gen_e_acsl_k_2); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "RTE"; + __gen_e_acsl_assert_data_13.pred_txt = "index_bound: 0 <= __gen_e_acsl_k_2"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_13.fct = "nested_loops"; + __gen_e_acsl_assert_data_13.line = 19; + __e_acsl_assert(0 <= __gen_e_acsl_k_2, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + if ((long)t[__gen_e_acsl_k_2][__gen_e_acsl_l_2] == __gen_e_acsl_k_2 * (long)__gen_e_acsl_l_2) + ; + else { + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop2; + } } __gen_e_acsl_l_2 ++; } __gen_e_acsl_k_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Invariant","nested_loops", - "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l", - "tests/constructs/loop.i",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l", + 0,__gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Invariant"; + __gen_e_acsl_assert_data_9.pred_txt = "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_9.fct = "nested_loops"; + __gen_e_acsl_assert_data_9.line = 19; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } } } { int __gen_e_acsl_and_4; i ++; - if (0 <= i) __gen_e_acsl_and_4 = i <= 4; else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Invariant","nested_loops", - "0 <= i <= 4","tests/constructs/loop.i",15); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"i",0,i); + __gen_e_acsl_and_4 = i <= 4; + } + else __gen_e_acsl_and_4 = 0; + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Invariant"; + __gen_e_acsl_assert_data_14.pred_txt = "0 <= i <= 4"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_14.fct = "nested_loops"; + __gen_e_acsl_assert_data_14.line = 15; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } } return; @@ -158,20 +342,46 @@ void unnatural_loop(void) int i = 0; { int __gen_e_acsl_and; - if (0 <= i) __gen_e_acsl_and = i <= 6; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","unnatural_loop", - "0 <= i <= 6","tests/constructs/loop.i",26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __gen_e_acsl_and = i <= 6; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 6"; + __gen_e_acsl_assert_data.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data.fct = "unnatural_loop"; + __gen_e_acsl_assert_data.line = 26; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ loop invariant 0 ≤ i ≤ 6; */ + /*@ loop invariant 0 <= i <= 6; */ while (i < 10) { if (x == 5) break; x = i; { int __gen_e_acsl_and_2; i ++; - if (0 <= i) __gen_e_acsl_and_2 = i <= 6; else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","unnatural_loop", - "0 <= i <= 6","tests/constructs/loop.i",26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __gen_e_acsl_and_2 = i <= 6; + } + else __gen_e_acsl_and_2 = 0; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 6"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i"; + __gen_e_acsl_assert_data_2.fct = "unnatural_loop"; + __gen_e_acsl_assert_data_2.line = 26; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } } @@ -181,10 +391,12 @@ void unnatural_loop(void) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); simple_loop(); nested_loops(); unnatural_loop(); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c index 39cb8590d19d9d758c879547eb4b5409b448bca5..d4fa8303b4e17ad0a7709a7152842405854cc127 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c @@ -1,52 +1,150 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; int y = 1; - __e_acsl_assert(x < y,1,"Assertion","main","x < y", - "tests/constructs/nested_code_annot.i",7); - /*@ assert x < y; */ ; - __e_acsl_assert(x == 0,1,"Precondition","main","x == 0", - "tests/constructs/nested_code_annot.i",8); - /*@ requires x ≡ 0; - ensures x ≥ 1; */ - if (x) { - __e_acsl_assert(0,1,"Assertion","main","\\false", - "tests/constructs/nested_code_annot.i",12); - /*@ assert \false; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x < y"; + __gen_e_acsl_assert_data.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(x < y,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - else { - __e_acsl_assert(x == 0,1,"Precondition","main","x == 0", - "tests/constructs/nested_code_annot.i",14); - /*@ requires x ≡ 0; - ensures x ≡ 1; */ - x ++; - __e_acsl_assert(x == 1,1,"Postcondition","main","x == 1", - "tests/constructs/nested_code_annot.i",15); + /*@ assert x < y; */ ; + { + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "x == 0"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ requires x == 0; + ensures x >= 1; */ if (x) { - __e_acsl_assert(x == 1,1,"Precondition","main","x == 1", - "tests/constructs/nested_code_annot.i",18); - /*@ requires x ≡ 1; - ensures x ≡ 2; */ - x ++; - __e_acsl_assert(x == 2,1,"Postcondition","main","x == 2", - "tests/constructs/nested_code_annot.i",19); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\false"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 12; + __e_acsl_assert(0,& __gen_e_acsl_assert_data_3); + } + /*@ assert \false; */ ; } else { - __e_acsl_assert(0,1,"Assertion","main","\\false", - "tests/constructs/nested_code_annot.i",21); - /*@ assert \false; */ ; + { + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Precondition"; + __gen_e_acsl_assert_data_4.pred_txt = "x == 0"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ requires x == 0; + ensures x == 1; */ + x ++; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "x == 1"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + if (x) { + { + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0, + x); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Precondition"; + __gen_e_acsl_assert_data_6.pred_txt = "x == 1"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 18; + __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ requires x == 1; + ensures x == 2; */ + x ++; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Postcondition"; + __gen_e_acsl_assert_data_7.pred_txt = "x == 2"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 19; + __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + } + else { + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\false"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 21; + __e_acsl_assert(0,& __gen_e_acsl_assert_data_8); + } + /*@ assert \false; */ ; + } } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"x",0,x); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Postcondition"; + __gen_e_acsl_assert_data_9.pred_txt = "x >= 1"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/nested_code_annot.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 9; + __e_acsl_assert(x >= 1,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - __e_acsl_assert(x >= 1,1,"Postcondition","main","x >= 1", - "tests/constructs/nested_code_annot.i",9); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c new file mode 100644 index 0000000000000000000000000000000000000000..4303fff9fbc356a508914e7bdc47db6e291a4d58 --- /dev/null +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c @@ -0,0 +1,887 @@ +/* Generated by Frama-C */ +#include "stddef.h" +#include "stdint.h" +#include "stdio.h" +char *__gen_e_acsl_literal_string; +extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; + +struct A { + int a ; +}; +union U { + int a ; + float b ; +}; +enum EBool { + EBOOL_MIN = (_Bool)0, + EBOOL_MAX = (_Bool)1 +}; +enum EChar { + ECHAR_MIN = (char)(-128), + ECHAR_MAX = (char)127 +}; +enum ESChar { + ESCHAR_MIN = (signed char)(-128), + ESCHAR_MAX = (signed char)127 +}; +enum EUChar { + EUCHAR_MIN = (unsigned char)0, + EUCHAR_MAX = (unsigned char)255 +}; +enum EInt { + EINT_MIN = -2147483647 - 1, + EINT_MAX = 2147483647 +}; +enum EUInt { + EUINT_MIN = (unsigned int)0, + EUINT_MAX = 4294967295U +}; +enum EShort { + ESHORT_MIN = (short)(-32768), + ESHORT_MAX = (short)32767 +}; +enum EUShort { + EUSHORT_MIN = (unsigned short)0, + EUSHORT_MAX = (unsigned short)65535 +}; +enum ELong { + ELONG_MIN = -9223372036854775807L - 1L, + ELONG_MAX = 9223372036854775807L +}; +enum EULong { + EULONG_MIN = (unsigned long)0, + EULONG_MAX = 18446744073709551615UL +}; +enum ELLong { + ELLONG_MIN = -9223372036854775807LL - 1LL, + ELLONG_MAX = 9223372036854775807LL +}; +enum EULLong { + EULLONG_MIN = (unsigned long long)0, + EULLONG_MAX = 18446744073709551615ULL +}; +void f(void) +{ + return; +} + +void g(void) +{ + return; +} + +int lvalue = 1; +int array1[4] = {1, 2, 3, 4}; +int array2[2] = {5, 6}; +void __e_acsl_globals_init(void) +{ + static char __e_acsl_already_run = 0; + if (! __e_acsl_already_run) { + __e_acsl_already_run = 1; + __gen_e_acsl_literal_string = "EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string, + sizeof("EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string); + __e_acsl_store_block((void *)(& lvalue),(size_t)4); + __e_acsl_full_init((void *)(& lvalue)); + } + return; +} + +void __e_acsl_globals_clean(void) +{ + __e_acsl_delete_block((void *)(& lvalue)); + return; +} + +int main(void) +{ + int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + __e_acsl_globals_init(); + fprintf(stderr,__gen_e_acsl_literal_string); /* fprintf_va_1 */ + _Bool int_bool = (_Bool)1; + __e_acsl_store_block((void *)(& int_bool),(size_t)1); + __e_acsl_full_init((void *)(& int_bool)); + { + int __gen_e_acsl_x; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_bool(& __gen_e_acsl_assert_data,"int_bool",0, + int_bool); + __gen_e_acsl_x = int_bool; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\let x = int_bool; \\true"; + __gen_e_acsl_assert_data.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 69; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert \let x = int_bool; \true; */ ; + char int_char = (char)127; + __e_acsl_store_block((void *)(& int_char),(size_t)1); + __e_acsl_full_init((void *)(& int_char)); + { + int __gen_e_acsl_x_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_2,"int_char",0, + int_char); + __gen_e_acsl_x_2 = int_char; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\let x = int_char; \\true"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 71; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert \let x = int_char; \true; */ ; + signed char int_schar = (signed char)127; + __e_acsl_store_block((void *)(& int_schar),(size_t)1); + __e_acsl_full_init((void *)(& int_schar)); + { + int __gen_e_acsl_x_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_schar(& __gen_e_acsl_assert_data_3,"int_schar", + 0,int_schar); + __gen_e_acsl_x_3 = int_schar; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\let x = int_schar; \\true"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 73; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert \let x = int_schar; \true; */ ; + unsigned char int_uchar = (unsigned char)255; + __e_acsl_store_block((void *)(& int_uchar),(size_t)1); + __e_acsl_full_init((void *)(& int_uchar)); + { + int __gen_e_acsl_x_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_uchar(& __gen_e_acsl_assert_data_4,"int_uchar", + 0,int_uchar); + __gen_e_acsl_x_4 = int_uchar; + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\let x = int_uchar; \\true"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 75; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert \let x = int_uchar; \true; */ ; + int int_int = 2147483647; + __e_acsl_store_block((void *)(& int_int),(size_t)4); + __e_acsl_full_init((void *)(& int_int)); + { + int __gen_e_acsl_x_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"int_int",0, + int_int); + __gen_e_acsl_x_5 = int_int; + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\let x = int_int; \\true"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 77; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert \let x = int_int; \true; */ ; + unsigned int int_uint = 4294967295U; + __e_acsl_store_block((void *)(& int_uint),(size_t)4); + __e_acsl_full_init((void *)(& int_uint)); + { + unsigned int __gen_e_acsl_x_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6,"int_uint",0, + int_uint); + __gen_e_acsl_x_6 = int_uint; + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\let x = int_uint; \\true"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 79; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert \let x = int_uint; \true; */ ; + short int_short = (short)32767; + __e_acsl_store_block((void *)(& int_short),(size_t)2); + __e_acsl_full_init((void *)(& int_short)); + { + int __gen_e_acsl_x_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_7,"int_short", + 0,int_short); + __gen_e_acsl_x_7 = int_short; + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\let x = int_short; \\true"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 81; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert \let x = int_short; \true; */ ; + unsigned short int_ushort = (unsigned short)65535; + __e_acsl_store_block((void *)(& int_ushort),(size_t)2); + __e_acsl_full_init((void *)(& int_ushort)); + { + int __gen_e_acsl_x_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ushort(& __gen_e_acsl_assert_data_8, + "int_ushort",0,int_ushort); + __gen_e_acsl_x_8 = int_ushort; + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\let x = int_ushort; \\true"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 83; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert \let x = int_ushort; \true; */ ; + long int_long = 9223372036854775807L; + __e_acsl_store_block((void *)(& int_long),(size_t)8); + __e_acsl_full_init((void *)(& int_long)); + { + long __gen_e_acsl_x_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_9,"int_long",0, + int_long); + __gen_e_acsl_x_9 = int_long; + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\let x = int_long; \\true"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 85; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } + /*@ assert \let x = int_long; \true; */ ; + unsigned long int_ulong = 18446744073709551615UL; + __e_acsl_store_block((void *)(& int_ulong),(size_t)8); + __e_acsl_full_init((void *)(& int_ulong)); + { + unsigned long __gen_e_acsl_x_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,"int_ulong", + 0,int_ulong); + __gen_e_acsl_x_10 = int_ulong; + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\let x = int_ulong; \\true"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 87; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + } + /*@ assert \let x = int_ulong; \true; */ ; + long long int_llong = 9223372036854775807LL; + __e_acsl_store_block((void *)(& int_llong),(size_t)8); + __e_acsl_full_init((void *)(& int_llong)); + { + long __gen_e_acsl_x_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_longlong(& __gen_e_acsl_assert_data_11, + "int_llong",0,int_llong); + __gen_e_acsl_x_11 = int_llong; + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\let x = int_llong; \\true"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 89; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } + /*@ assert \let x = int_llong; \true; */ ; + unsigned long long int_ullong = 18446744073709551615ULL; + __e_acsl_store_block((void *)(& int_ullong),(size_t)8); + __e_acsl_full_init((void *)(& int_ullong)); + { + unsigned long __gen_e_acsl_x_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ulonglong(& __gen_e_acsl_assert_data_12, + "int_ullong",0,int_ullong); + __gen_e_acsl_x_12 = int_ullong; + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\let x = int_ullong; \\true"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 91; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + } + /*@ assert \let x = int_ullong; \true; */ ; + { + __e_acsl_mpz_t __gen_e_acsl_int_mpz; + __e_acsl_mpz_t __gen_e_acsl_; + __e_acsl_mpz_t __gen_e_acsl__2; + __e_acsl_mpz_t __gen_e_acsl_add; + int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __gmpz_init_set_ui(__gen_e_acsl_,18446744073709551615UL); + __gmpz_init_set_si(__gen_e_acsl__2,1L); + __gmpz_init(__gen_e_acsl_add); + __gmpz_add(__gen_e_acsl_add,(__e_acsl_mpz_struct const *)(__gen_e_acsl_), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + __gmpz_init_set(__gen_e_acsl_int_mpz, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13,"int_mpz",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_int_mpz)); + __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_int_mpz), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\let int_mpz = 18446744073709551615ULL + 1;\n int_mpz != 18446744073709551615ULL"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 93; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + __gmpz_clear(__gen_e_acsl_int_mpz); + __gmpz_clear(__gen_e_acsl_); + __gmpz_clear(__gen_e_acsl__2); + __gmpz_clear(__gen_e_acsl_add); + } + /*@ + assert + \let int_mpz = 18446744073709551615ULL + 1; + int_mpz != 18446744073709551615ULL; + */ + ; + float real_float = (float)0x1.fffffep+127; + __e_acsl_store_block((void *)(& real_float),(size_t)4); + __e_acsl_full_init((void *)(& real_float)); + { + float __gen_e_acsl_x_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_14, + "real_float",real_float); + __gen_e_acsl_x_13 = real_float; + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\let x = real_float; \\true"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 98; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + } + /*@ assert \let x = real_float; \true; */ ; + double real_double = 0x1.fffffffffffffp+1023; + __e_acsl_store_block((void *)(& real_double),(size_t)8); + __e_acsl_full_init((void *)(& real_double)); + { + double __gen_e_acsl_x_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_15, + "real_double",real_double); + __gen_e_acsl_x_14 = real_double; + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\let x = real_double; \\true"; + __gen_e_acsl_assert_data_15.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 100; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + } + /*@ assert \let x = real_double; \true; */ ; + /*@ assert + Eva: is_nan_or_infinite: + \is_finite((long double)0x1.fffffffffffffffep+16383L); + */ + long double real_ldouble = 0x1.fffffffffffffffep+16383L; + __e_acsl_store_block((void *)(& real_ldouble),(size_t)16); + __e_acsl_full_init((void *)(& real_ldouble)); + { + long double __gen_e_acsl_x_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + /*@ assert Eva: is_nan_or_infinite: \is_finite(real_ldouble); */ + __e_acsl_assert_register_longdouble(& __gen_e_acsl_assert_data_16, + "real_ldouble",real_ldouble); + /*@ assert Eva: is_nan_or_infinite: \is_finite(real_ldouble); */ + __gen_e_acsl_x_15 = real_ldouble; + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "\\let x = real_ldouble; \\true"; + __gen_e_acsl_assert_data_16.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 102; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); + } + /*@ assert \let x = real_ldouble; \true; */ ; + { + __e_acsl_mpq_t __gen_e_acsl_real_mpq; + __e_acsl_mpq_t __gen_e_acsl__3; + __e_acsl_mpq_t __gen_e_acsl__4; + int __gen_e_acsl_ne_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __gmpq_init(__gen_e_acsl__3); + __gmpq_set_str(__gen_e_acsl__3,"01/10",10); + __gmpq_init(__gen_e_acsl_real_mpq); + __gmpq_set(__gen_e_acsl_real_mpq, + (__e_acsl_mpq_struct const *)(__gen_e_acsl__3)); + __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data_17,"real_mpq", + (__e_acsl_mpq_struct const *)(__gen_e_acsl_real_mpq)); + __gmpq_init(__gen_e_acsl__4); + __gmpq_set_str(__gen_e_acsl__4,"1",10); + __gen_e_acsl_ne_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_real_mpq), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__4)); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\let real_mpq = 0.1; real_mpq != 1"; + __gen_e_acsl_assert_data_17.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 104; + __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); + __gmpq_clear(__gen_e_acsl_real_mpq); + __gmpq_clear(__gen_e_acsl__3); + __gmpq_clear(__gen_e_acsl__4); + } + /*@ assert \let real_mpq = 0.1; real_mpq != 1; */ ; + void *ptr = (void *)(& lvalue); + __e_acsl_store_block((void *)(& ptr),(size_t)8); + __e_acsl_full_init((void *)(& ptr)); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"ptr",ptr); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "ptr != (void *)0"; + __gen_e_acsl_assert_data_18.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 109; + __e_acsl_assert(ptr != (void *)0,& __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); + } + /*@ assert ptr != (void *)0; */ ; + { + int __gen_e_acsl_ne_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"array1", + (void *)(array1)); + __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"array2", + (void *)(array2)); + __gen_e_acsl_ne_3 = 0; + if (0) { + unsigned long __gen_e_acsl_iter; + __gen_e_acsl_iter = 0; + while (__gen_e_acsl_iter < 4) { + if (array1[__gen_e_acsl_iter] != array2[__gen_e_acsl_iter]) { + __gen_e_acsl_ne_3 = 1; + break; + } + __gen_e_acsl_iter ++; + } + } + else __gen_e_acsl_ne_3 = 1; + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "array1 != array2"; + __gen_e_acsl_assert_data_19.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 113; + __e_acsl_assert(__gen_e_acsl_ne_3,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); + } + /*@ assert array1 != array2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&f", + (void *)(& f)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&g", + (void *)(& g)); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "&f != &g"; + __gen_e_acsl_assert_data_20.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 118; + __e_acsl_assert(& f != & g,& __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); + } + /*@ assert &f != &g; */ ; + struct A struct1 = {.a = 1}; + __e_acsl_store_block((void *)(& struct1),(size_t)4); + __e_acsl_full_init((void *)(& struct1)); + { + struct A __gen_e_acsl_x_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_21,"struct1"); + __gen_e_acsl_x_16 = struct1; + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "\\let x = struct1; \\true"; + __gen_e_acsl_assert_data_21.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 123; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); + } + /*@ assert \let x = struct1; \true; */ ; + union U union1 = {.b = (float)1.}; + __e_acsl_store_block((void *)(& union1),(size_t)4); + __e_acsl_full_init((void *)(& union1)); + { + union U __gen_e_acsl_x_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_union(& __gen_e_acsl_assert_data_22,"union1"); + __gen_e_acsl_x_17 = union1; + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "\\let x = union1; \\true"; + __gen_e_acsl_assert_data_22.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 128; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); + } + /*@ assert \let x = union1; \true; */ ; + enum EBool enum_bool = (enum EBool)EBOOL_MAX; + __e_acsl_store_block((void *)(& enum_bool),(size_t)4); + __e_acsl_full_init((void *)(& enum_bool)); + { + unsigned int __gen_e_acsl_x_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_23,"enum_bool", + 1,enum_bool); + __gen_e_acsl_x_18 = enum_bool; + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "\\let x = enum_bool; \\true"; + __gen_e_acsl_assert_data_23.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 133; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); + } + /*@ assert \let x = enum_bool; \true; */ ; + enum EChar enum_char = (enum EChar)ECHAR_MAX; + __e_acsl_store_block((void *)(& enum_char),(size_t)4); + __e_acsl_full_init((void *)(& enum_char)); + { + int __gen_e_acsl_x_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"enum_char",1, + enum_char); + __gen_e_acsl_x_19 = enum_char; + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "Assertion"; + __gen_e_acsl_assert_data_24.pred_txt = "\\let x = enum_char; \\true"; + __gen_e_acsl_assert_data_24.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 135; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); + } + /*@ assert \let x = enum_char; \true; */ ; + enum ESChar enum_schar = (enum ESChar)ESCHAR_MAX; + __e_acsl_store_block((void *)(& enum_schar),(size_t)4); + __e_acsl_full_init((void *)(& enum_schar)); + { + int __gen_e_acsl_x_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"enum_schar", + 1,enum_schar); + __gen_e_acsl_x_20 = enum_schar; + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "\\let x = enum_schar; \\true"; + __gen_e_acsl_assert_data_25.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 137; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); + } + /*@ assert \let x = enum_schar; \true; */ ; + enum EUChar enum_uchar = (enum EUChar)EUCHAR_MAX; + __e_acsl_store_block((void *)(& enum_uchar),(size_t)4); + __e_acsl_full_init((void *)(& enum_uchar)); + { + unsigned int __gen_e_acsl_x_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_26,"enum_uchar", + 1,enum_uchar); + __gen_e_acsl_x_21 = enum_uchar; + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "Assertion"; + __gen_e_acsl_assert_data_26.pred_txt = "\\let x = enum_uchar; \\true"; + __gen_e_acsl_assert_data_26.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_26.fct = "main"; + __gen_e_acsl_assert_data_26.line = 139; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); + } + /*@ assert \let x = enum_uchar; \true; */ ; + enum EInt enum_int = EINT_MAX; + __e_acsl_store_block((void *)(& enum_int),(size_t)4); + __e_acsl_full_init((void *)(& enum_int)); + { + int __gen_e_acsl_x_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"enum_int",1, + enum_int); + __gen_e_acsl_x_22 = enum_int; + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "Assertion"; + __gen_e_acsl_assert_data_27.pred_txt = "\\let x = enum_int; \\true"; + __gen_e_acsl_assert_data_27.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_27.fct = "main"; + __gen_e_acsl_assert_data_27.line = 141; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); + } + /*@ assert \let x = enum_int; \true; */ ; + enum EUInt enum_uint = EUINT_MAX; + __e_acsl_store_block((void *)(& enum_uint),(size_t)4); + __e_acsl_full_init((void *)(& enum_uint)); + { + unsigned int __gen_e_acsl_x_23; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_28,"enum_uint", + 1,enum_uint); + __gen_e_acsl_x_23 = enum_uint; + __gen_e_acsl_assert_data_28.blocking = 1; + __gen_e_acsl_assert_data_28.kind = "Assertion"; + __gen_e_acsl_assert_data_28.pred_txt = "\\let x = enum_uint; \\true"; + __gen_e_acsl_assert_data_28.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_28.fct = "main"; + __gen_e_acsl_assert_data_28.line = 143; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_28); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28); + } + /*@ assert \let x = enum_uint; \true; */ ; + enum EShort enum_short = (enum EShort)ESHORT_MAX; + __e_acsl_store_block((void *)(& enum_short),(size_t)4); + __e_acsl_full_init((void *)(& enum_short)); + { + int __gen_e_acsl_x_24; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"enum_short", + 1,enum_short); + __gen_e_acsl_x_24 = enum_short; + __gen_e_acsl_assert_data_29.blocking = 1; + __gen_e_acsl_assert_data_29.kind = "Assertion"; + __gen_e_acsl_assert_data_29.pred_txt = "\\let x = enum_short; \\true"; + __gen_e_acsl_assert_data_29.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_29.fct = "main"; + __gen_e_acsl_assert_data_29.line = 145; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_29); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29); + } + /*@ assert \let x = enum_short; \true; */ ; + enum EUShort enum_ushort = (enum EUShort)EUSHORT_MAX; + __e_acsl_store_block((void *)(& enum_ushort),(size_t)4); + __e_acsl_full_init((void *)(& enum_ushort)); + { + unsigned int __gen_e_acsl_x_25; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 = + {.values = (void *)0}; + __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_30, + "enum_ushort",1,enum_ushort); + __gen_e_acsl_x_25 = enum_ushort; + __gen_e_acsl_assert_data_30.blocking = 1; + __gen_e_acsl_assert_data_30.kind = "Assertion"; + __gen_e_acsl_assert_data_30.pred_txt = "\\let x = enum_ushort; \\true"; + __gen_e_acsl_assert_data_30.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_30.fct = "main"; + __gen_e_acsl_assert_data_30.line = 147; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_30); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30); + } + /*@ assert \let x = enum_ushort; \true; */ ; + enum ELong enum_long = ELONG_MAX; + __e_acsl_store_block((void *)(& enum_long),(size_t)8); + __e_acsl_full_init((void *)(& enum_long)); + { + long __gen_e_acsl_x_26; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_31,"enum_long", + 1,enum_long); + __gen_e_acsl_x_26 = enum_long; + __gen_e_acsl_assert_data_31.blocking = 1; + __gen_e_acsl_assert_data_31.kind = "Assertion"; + __gen_e_acsl_assert_data_31.pred_txt = "\\let x = enum_long; \\true"; + __gen_e_acsl_assert_data_31.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_31.fct = "main"; + __gen_e_acsl_assert_data_31.line = 149; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_31); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31); + } + /*@ assert \let x = enum_long; \true; */ ; + enum EULong enum_ulong = EULONG_MAX; + __e_acsl_store_block((void *)(& enum_ulong),(size_t)8); + __e_acsl_full_init((void *)(& enum_ulong)); + { + unsigned long __gen_e_acsl_x_27; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32, + "enum_ulong",1,enum_ulong); + __gen_e_acsl_x_27 = enum_ulong; + __gen_e_acsl_assert_data_32.blocking = 1; + __gen_e_acsl_assert_data_32.kind = "Assertion"; + __gen_e_acsl_assert_data_32.pred_txt = "\\let x = enum_ulong; \\true"; + __gen_e_acsl_assert_data_32.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_32.fct = "main"; + __gen_e_acsl_assert_data_32.line = 151; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_32); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32); + } + /*@ assert \let x = enum_ulong; \true; */ ; + enum ELLong enum_llong = ELLONG_MAX; + __e_acsl_store_block((void *)(& enum_llong),(size_t)8); + __e_acsl_full_init((void *)(& enum_llong)); + { + long __gen_e_acsl_x_28; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_33,"enum_llong", + 1,enum_llong); + __gen_e_acsl_x_28 = enum_llong; + __gen_e_acsl_assert_data_33.blocking = 1; + __gen_e_acsl_assert_data_33.kind = "Assertion"; + __gen_e_acsl_assert_data_33.pred_txt = "\\let x = enum_llong; \\true"; + __gen_e_acsl_assert_data_33.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_33.fct = "main"; + __gen_e_acsl_assert_data_33.line = 153; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_33); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33); + } + /*@ assert \let x = enum_llong; \true; */ ; + enum EULLong enum_ullong = EULLONG_MAX; + __e_acsl_store_block((void *)(& enum_ullong),(size_t)8); + __e_acsl_full_init((void *)(& enum_ullong)); + { + unsigned long __gen_e_acsl_x_29; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34, + "enum_ullong",1,enum_ullong); + __gen_e_acsl_x_29 = enum_ullong; + __gen_e_acsl_assert_data_34.blocking = 1; + __gen_e_acsl_assert_data_34.kind = "Assertion"; + __gen_e_acsl_assert_data_34.pred_txt = "\\let x = enum_ullong; \\true"; + __gen_e_acsl_assert_data_34.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_34.fct = "main"; + __gen_e_acsl_assert_data_34.line = 155; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_34); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34); + } + /*@ assert \let x = enum_ullong; \true; */ ; + int a = 2; + int b = 3; + { + long __gen_e_acsl_c; + int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b); + __gen_e_acsl_c = a + (long)b; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b); + if (a != b) { + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_35,"c",0, + __gen_e_acsl_c); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b); + __gen_e_acsl_and = __gen_e_acsl_c == a + (long)b; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data_35.blocking = 1; + __gen_e_acsl_assert_data_35.kind = "Assertion"; + __gen_e_acsl_assert_data_35.pred_txt = "\\let c = a + b; a != b && c == a + b"; + __gen_e_acsl_assert_data_35.file = "tests/constructs/printed_data.c"; + __gen_e_acsl_assert_data_35.fct = "main"; + __gen_e_acsl_assert_data_35.line = 161; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_35); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35); + } + /*@ assert \let c = a + b; a != b && c == a + b; */ ; + __retres = 0; + __e_acsl_delete_block((void *)(& enum_ullong)); + __e_acsl_delete_block((void *)(& enum_llong)); + __e_acsl_delete_block((void *)(& enum_ulong)); + __e_acsl_delete_block((void *)(& enum_long)); + __e_acsl_delete_block((void *)(& enum_ushort)); + __e_acsl_delete_block((void *)(& enum_short)); + __e_acsl_delete_block((void *)(& enum_uint)); + __e_acsl_delete_block((void *)(& enum_int)); + __e_acsl_delete_block((void *)(& enum_uchar)); + __e_acsl_delete_block((void *)(& enum_schar)); + __e_acsl_delete_block((void *)(& enum_char)); + __e_acsl_delete_block((void *)(& enum_bool)); + __e_acsl_delete_block((void *)(& union1)); + __e_acsl_delete_block((void *)(& struct1)); + __e_acsl_delete_block((void *)(& ptr)); + __e_acsl_delete_block((void *)(& real_ldouble)); + __e_acsl_delete_block((void *)(& real_double)); + __e_acsl_delete_block((void *)(& real_float)); + __e_acsl_delete_block((void *)(& int_ullong)); + __e_acsl_delete_block((void *)(& int_llong)); + __e_acsl_delete_block((void *)(& int_ulong)); + __e_acsl_delete_block((void *)(& int_long)); + __e_acsl_delete_block((void *)(& int_ushort)); + __e_acsl_delete_block((void *)(& int_short)); + __e_acsl_delete_block((void *)(& int_uint)); + __e_acsl_delete_block((void *)(& int_int)); + __e_acsl_delete_block((void *)(& int_uchar)); + __e_acsl_delete_block((void *)(& int_schar)); + __e_acsl_delete_block((void *)(& int_char)); + __e_acsl_delete_block((void *)(& int_bool)); + __e_acsl_globals_clean(); + __e_acsl_memory_clean(); + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c index 55615fb2891193cdd323ccc30fcafa30e54f960d..c49b1e0fb8e4b3121ff2c51874994d3a50eefb03 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c @@ -1,10 +1,10 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ ensures \result ≡ (int)(\old(x) - \old(x)); */ +/*@ ensures \result == (int)(\old(x) - \old(x)); */ int __gen_e_acsl_f(int x); int f(int x) @@ -14,8 +14,8 @@ int f(int x) } int Y = 1; -/*@ ensures \result ≡ \old(x); - ensures \result ≡ Y; */ +/*@ ensures \result == \old(x); + ensures \result == Y; */ int __gen_e_acsl_g(int x); int g(int x) @@ -23,7 +23,7 @@ int g(int x) return x; } -/*@ ensures \result ≡ 0; */ +/*@ ensures \result == 0; */ int __gen_e_acsl_h(void); int h(void) @@ -36,39 +36,76 @@ int h(void) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __gen_e_acsl_f(1); __gen_e_acsl_g(Y); __gen_e_acsl_h(); __retres = 0; + __e_acsl_memory_clean(); return __retres; } -/*@ ensures \result ≡ 0; */ +/*@ ensures \result == 0; */ int __gen_e_acsl_h(void) { int __retres; __retres = h(); - __e_acsl_assert(__retres == 0,1,"Postcondition","h","\\result == 0", - "tests/constructs/result.i",19); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\result == 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/result.i"; + __gen_e_acsl_assert_data.fct = "h"; + __gen_e_acsl_assert_data.line = 19; + __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + return __retres; + } } -/*@ ensures \result ≡ \old(x); - ensures \result ≡ Y; */ +/*@ ensures \result == \old(x); + ensures \result == Y; */ int __gen_e_acsl_g(int x) { int __gen_e_acsl_at; int __retres; __gen_e_acsl_at = x; __retres = g(x); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","g", - "\\result == \\old(x)","tests/constructs/result.i",13); - __e_acsl_assert(__retres == Y,1,"Postcondition","g","\\result == Y", - "tests/constructs/result.i",14); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\result == \\old(x)"; + __gen_e_acsl_assert_data.file = "tests/constructs/result.i"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\result == Y"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/result.i"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__retres == Y,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + return __retres; + } } -/*@ ensures \result ≡ (int)(\old(x) - \old(x)); */ +/*@ ensures \result == (int)(\old(x) - \old(x)); */ int __gen_e_acsl_f(int x) { int __gen_e_acsl_at_2; @@ -77,11 +114,25 @@ int __gen_e_acsl_f(int x) __gen_e_acsl_at_2 = x; __gen_e_acsl_at = (long)x; __retres = f(x); - __e_acsl_assert(__retres == (int)(__gen_e_acsl_at - __gen_e_acsl_at_2),1, - "Postcondition","f", - "\\result == (int)(\\old(x) - \\old(x))", - "tests/constructs/result.i",5); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"\\old(x)",0, + __gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0, + __gen_e_acsl_at_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\result == (int)(\\old(x) - \\old(x))"; + __gen_e_acsl_assert_data.file = "tests/constructs/result.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 5; + __e_acsl_assert(__retres == (int)(__gen_e_acsl_at - __gen_e_acsl_at_2), + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c index fad68a23da5c81abb9763db0a88c4540ca598551..7d2bc3f70f3071de07879774990f533d9995a749 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c @@ -1,21 +1,21 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ requires 1 % a ≡ 1; - ensures 1 % \old(b) ≡ 1; +/*@ requires 1 % a == 1; + ensures 1 % \old(b) == 1; behavior bhvr: - assumes 1 % c ≡ 1; - requires 1 % d ≡ 1; - requires 1 % f ≡ 1 ∨ 1 % g ≡ 1; - requires 1 % h ≡ 1 ∧ 1 % i ≡ 1; - requires \let var = 1; var % j ≡ 1; - requires ∀ ℤ var; 0 ≤ var < k ⇒ var % k ≡ var; - requires ∃ ℤ var; 0 ≤ var < l ∧ var % l ≡ var; - ensures 1 % \old(e) ≡ 1; + assumes 1 % c == 1; + requires 1 % d == 1; + requires 1 % f == 1 || 1 % g == 1; + requires 1 % h == 1 && 1 % i == 1; + requires \let var = 1; var % j == 1; + requires \forall integer var; 0 <= var < k ==> var % k == var; + requires \exists integer var; 0 <= var < l && var % l == var; + ensures 1 % \old(e) == 1; */ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l); @@ -29,23 +29,25 @@ void test(int a, int b, int c, int d, int e, int f, int g, int h, int i, int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __gen_e_acsl_test(2,3,4,5,6,7,8,9,10,11,12,13); __retres = 0; + __e_acsl_memory_clean(); return __retres; } -/*@ requires 1 % a ≡ 1; - ensures 1 % \old(b) ≡ 1; +/*@ requires 1 % a == 1; + ensures 1 % \old(b) == 1; behavior bhvr: - assumes 1 % c ≡ 1; - requires 1 % d ≡ 1; - requires 1 % f ≡ 1 ∨ 1 % g ≡ 1; - requires 1 % h ≡ 1 ∧ 1 % i ≡ 1; - requires \let var = 1; var % j ≡ 1; - requires ∀ ℤ var; 0 ≤ var < k ⇒ var % k ≡ var; - requires ∃ ℤ var; 0 ≤ var < l ∧ var % l ≡ var; - ensures 1 % \old(e) ≡ 1; + assumes 1 % c == 1; + requires 1 % d == 1; + requires 1 % f == 1 || 1 % g == 1; + requires 1 % h == 1 && 1 % i == 1; + requires \let var = 1; var % j == 1; + requires \forall integer var; 0 <= var < k ==> var % k == var; + requires \exists integer var; 0 <= var < l && var % l == var; + ensures 1 % \old(e) == 1; */ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l) @@ -56,12 +58,38 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g, { int __gen_e_acsl_assumes_value; __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); - __e_acsl_assert(a != 0,1,"RTE","test","division_by_zero: a != 0", - "tests/constructs/rte.i",7); - __e_acsl_assert(1 % a == 1,1,"Precondition","test","1 % a == 1", - "tests/constructs/rte.i",7); - __e_acsl_assert(c != 0,1,"RTE","test","division_by_zero: c != 0", - "tests/constructs/rte.i",11); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "division_by_zero: a != 0"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_2.fct = "test"; + __gen_e_acsl_assert_data_2.line = 7; + __e_acsl_assert(a != 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "1 % a == 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data.fct = "test"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(1 % a == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"c",0,c); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "division_by_zero: c != 0"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_3.fct = "test"; + __gen_e_acsl_assert_data_3.line = 11; + __e_acsl_assert(c != 0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, 1 % c == 1); __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes @@ -74,72 +102,206 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g, int __gen_e_acsl_var_2; int __gen_e_acsl_exists; int __gen_e_acsl_var_3; - __e_acsl_assert(d != 0,1,"RTE","test","division_by_zero: d != 0", - "tests/constructs/rte.i",12); - __e_acsl_assert(f != 0,1,"RTE","test","division_by_zero: f != 0", - "tests/constructs/rte.i",13); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"d",0,d); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"d",0,d); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "division_by_zero: d != 0"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_5.fct = "test"; + __gen_e_acsl_assert_data_5.line = 12; + __e_acsl_assert(d != 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"f",0,f); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"f",0,f); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "division_by_zero: f != 0"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_7.fct = "test"; + __gen_e_acsl_assert_data_7.line = 13; + __e_acsl_assert(f != 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); if (1 % f == 1) __gen_e_acsl_or = 1; else { - __e_acsl_assert(g != 0,1,"RTE","test","division_by_zero: g != 0", - "tests/constructs/rte.i",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"g",0,g); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g",0,g); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "division_by_zero: g != 0"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_8.fct = "test"; + __gen_e_acsl_assert_data_8.line = 13; + __e_acsl_assert(g != 0,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); __gen_e_acsl_or = 1 % g == 1; } - __e_acsl_assert(h != 0,1,"RTE","test","division_by_zero: h != 0", - "tests/constructs/rte.i",14); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h",0,h); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h",0,h); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "division_by_zero: h != 0"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_10.fct = "test"; + __gen_e_acsl_assert_data_10.line = 14; + __e_acsl_assert(h != 0,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); if (1 % h == 1) { - __e_acsl_assert(i != 0,1,"RTE","test","division_by_zero: i != 0", - "tests/constructs/rte.i",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"i",0,i); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"i",0,i); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "division_by_zero: i != 0"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_11.fct = "test"; + __gen_e_acsl_assert_data_11.line = 14; + __e_acsl_assert(i != 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gen_e_acsl_and = 1 % i == 1; } else __gen_e_acsl_and = 0; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gen_e_acsl_var = 1; - __e_acsl_assert(j != 0,1,"RTE","test","division_by_zero: j != 0", - "tests/constructs/rte.i",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"var",0, + __gen_e_acsl_var); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"j",0,j); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"j",0,j); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "RTE"; + __gen_e_acsl_assert_data_13.pred_txt = "division_by_zero: j != 0"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_13.fct = "test"; + __gen_e_acsl_assert_data_13.line = 15; + __e_acsl_assert(j != 0,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_var_2 = 0; while (1) { if (__gen_e_acsl_var_2 < k) ; else break; - __e_acsl_assert(k != 0,1,"RTE","test","division_by_zero: k != 0", - "tests/constructs/rte.i",16); - if (__gen_e_acsl_var_2 % k == __gen_e_acsl_var_2) ; - else { - __gen_e_acsl_forall = 0; - goto e_acsl_end_loop1; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"k",0,k); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "division_by_zero: k != 0"; + __gen_e_acsl_assert_data_15.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_15.fct = "test"; + __gen_e_acsl_assert_data_15.line = 16; + __e_acsl_assert(k != 0,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + if (__gen_e_acsl_var_2 % k == __gen_e_acsl_var_2) ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop1; + } } __gen_e_acsl_var_2 ++; } e_acsl_end_loop1: ; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var", + 0,__gen_e_acsl_forall); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gen_e_acsl_exists = 0; __gen_e_acsl_var_3 = 0; while (1) { if (__gen_e_acsl_var_3 < l) ; else break; - __e_acsl_assert(l != 0,1,"RTE","test","division_by_zero: l != 0", - "tests/constructs/rte.i",17); - if (! (__gen_e_acsl_var_3 % l == __gen_e_acsl_var_3)) ; - else { - __gen_e_acsl_exists = 1; - goto e_acsl_end_loop2; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"l",0,l); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "RTE"; + __gen_e_acsl_assert_data_17.pred_txt = "division_by_zero: l != 0"; + __gen_e_acsl_assert_data_17.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_17.fct = "test"; + __gen_e_acsl_assert_data_17.line = 17; + __e_acsl_assert(l != 0,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); + if (! (__gen_e_acsl_var_3 % l == __gen_e_acsl_var_3)) ; + else { + __gen_e_acsl_exists = 1; + goto e_acsl_end_loop2; + } } __gen_e_acsl_var_3 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_exists,1,"Precondition","test", - "bhvr: \\exists integer var; 0 <= var < l && var % l == var", - "tests/constructs/rte.i",17); - __e_acsl_assert(__gen_e_acsl_forall,1,"Precondition","test", - "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var", - "tests/constructs/rte.i",16); - __e_acsl_assert(__gen_e_acsl_var % j == 1,1,"Precondition","test", - "bhvr: \\let var = 1; var % j == 1", - "tests/constructs/rte.i",15); - __e_acsl_assert(__gen_e_acsl_and,1,"Precondition","test", - "bhvr: 1 % h == 1 && 1 % i == 1", - "tests/constructs/rte.i",14); - __e_acsl_assert(__gen_e_acsl_or,1,"Precondition","test", - "bhvr: 1 % f == 1 || 1 % g == 1", - "tests/constructs/rte.i",13); - __e_acsl_assert(1 % d == 1,1,"Precondition","test","bhvr: 1 % d == 1", - "tests/constructs/rte.i",12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "bhvr: \\exists integer var; 0 <= var < l && var % l == var", + 0,__gen_e_acsl_exists); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Precondition"; + __gen_e_acsl_assert_data_16.pred_txt = "bhvr: \\exists integer var; 0 <= var < l && var % l == var"; + __gen_e_acsl_assert_data_16.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_16.fct = "test"; + __gen_e_acsl_assert_data_16.line = 17; + __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Precondition"; + __gen_e_acsl_assert_data_14.pred_txt = "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_14.fct = "test"; + __gen_e_acsl_assert_data_14.line = 16; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Precondition"; + __gen_e_acsl_assert_data_12.pred_txt = "bhvr: \\let var = 1; var % j == 1"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_12.fct = "test"; + __gen_e_acsl_assert_data_12.line = 15; + __e_acsl_assert(__gen_e_acsl_var % j == 1, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Precondition"; + __gen_e_acsl_assert_data_9.pred_txt = "bhvr: 1 % h == 1 && 1 % i == 1"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_9.fct = "test"; + __gen_e_acsl_assert_data_9.line = 14; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Precondition"; + __gen_e_acsl_assert_data_6.pred_txt = "bhvr: 1 % f == 1 || 1 % g == 1"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_6.fct = "test"; + __gen_e_acsl_assert_data_6.line = 13; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Precondition"; + __gen_e_acsl_assert_data_4.pred_txt = "bhvr: 1 % d == 1"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_4.fct = "test"; + __gen_e_acsl_assert_data_4.line = 12; + __e_acsl_assert(1 % d == 1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } } __gen_e_acsl_at_2 = e; @@ -147,19 +309,58 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g, test(a,b,c,d,e,f,g,h,i,j,k,l); { int __gen_e_acsl_assumes_value_2; - __e_acsl_assert(__gen_e_acsl_at != 0,1,"RTE","test", - "division_by_zero: __gen_e_acsl_at != 0", - "tests/constructs/rte.i",8); - __e_acsl_assert(1 % __gen_e_acsl_at == 1,1,"Postcondition","test", - "1 % \\old(b) == 1","tests/constructs/rte.i",8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"\\old(b)",0, + __gen_e_acsl_at); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "__gen_e_acsl_at",0,__gen_e_acsl_at); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "RTE"; + __gen_e_acsl_assert_data_19.pred_txt = "division_by_zero: __gen_e_acsl_at != 0"; + __gen_e_acsl_assert_data_19.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_19.fct = "test"; + __gen_e_acsl_assert_data_19.line = 8; + __e_acsl_assert(__gen_e_acsl_at != 0,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Postcondition"; + __gen_e_acsl_assert_data_18.pred_txt = "1 % \\old(b) == 1"; + __gen_e_acsl_assert_data_18.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_18.fct = "test"; + __gen_e_acsl_assert_data_18.line = 8; + __e_acsl_assert(1 % __gen_e_acsl_at == 1,& __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); if (__gen_e_acsl_assumes_value_2) { - __e_acsl_assert(__gen_e_acsl_at_2 != 0,1,"RTE","test", - "division_by_zero: __gen_e_acsl_at_2 != 0", - "tests/constructs/rte.i",18); - __e_acsl_assert(1 % __gen_e_acsl_at_2 == 1,1,"Postcondition","test", - "bhvr: 1 % \\old(e) == 1","tests/constructs/rte.i",18); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"\\old(e)", + 0,__gen_e_acsl_at_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "__gen_e_acsl_at_2",0,__gen_e_acsl_at_2); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "RTE"; + __gen_e_acsl_assert_data_21.pred_txt = "division_by_zero: __gen_e_acsl_at_2 != 0"; + __gen_e_acsl_assert_data_21.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_21.fct = "test"; + __gen_e_acsl_assert_data_21.line = 18; + __e_acsl_assert(__gen_e_acsl_at_2 != 0,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Postcondition"; + __gen_e_acsl_assert_data_20.pred_txt = "bhvr: 1 % \\old(e) == 1"; + __gen_e_acsl_assert_data_20.file = "tests/constructs/rte.i"; + __gen_e_acsl_assert_data_20.fct = "test"; + __gen_e_acsl_assert_data_20.line = 18; + __e_acsl_assert(1 % __gen_e_acsl_at_2 == 1, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } __e_acsl_contract_clean(__gen_e_acsl_contract); return; diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c index 7fbeb0f748b24a2cb9280a40157a05478229cd85..38f4864609d51616308e5f523b7d61217a852ae9 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,36 +11,109 @@ int main(void) __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; int z; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; int y = 2; - /*@ ensures x ≡ 1; */ - x = 1; - __e_acsl_assert(x == 1,1,"Postcondition","main","x == 1", - "tests/constructs/stmt_contract.i",8); + { + /*@ ensures x == 1; */ + x = 1; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "x == 1"; + __gen_e_acsl_assert_data.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } { int __gen_e_acsl_and; - /*@ ensures x ≡ 2; - ensures y ≡ 2; - ensures x ≡ 2 ∧ y ≡ 2; */ + /*@ ensures x == 2; + ensures y == 2; + ensures x == 2 && y == 2; */ x = 2; - __e_acsl_assert(x == 2,1,"Postcondition","main","x == 2", - "tests/constructs/stmt_contract.i",11); - __e_acsl_assert(y == 2,1,"Postcondition","main","y == 2", - "tests/constructs/stmt_contract.i",12); - if (x == 2) __gen_e_acsl_and = y == 2; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Postcondition","main", - "x == 2 && y == 2","tests/constructs/stmt_contract.i",13); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "x == 2"; + __gen_e_acsl_assert_data_2.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"y",0,y); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "y == 2"; + __gen_e_acsl_assert_data_3.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 12; + __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); + if (x == 2) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + __gen_e_acsl_and = y == 2; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "x == 2 && y == 2"; + __gen_e_acsl_assert_data_4.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 13; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - __e_acsl_assert(x == 2,1,"Precondition","main","x == 2", - "tests/constructs/stmt_contract.i",17); - /*@ requires x ≡ 2; */ + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Precondition"; + __gen_e_acsl_assert_data_5.pred_txt = "x == 2"; + __gen_e_acsl_assert_data_5.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 17; + __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ requires x == 2; */ x ++; - __e_acsl_assert(x == 3,1,"Precondition","main","x == 3", - "tests/constructs/stmt_contract.i",20); - __e_acsl_assert(y == 2,1,"Precondition","main","y == 2", - "tests/constructs/stmt_contract.i",21); - /*@ requires x ≡ 3; - requires y ≡ 2; */ + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Precondition"; + __gen_e_acsl_assert_data_6.pred_txt = "x == 3"; + __gen_e_acsl_assert_data_6.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 20; + __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"y",0,y); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Precondition"; + __gen_e_acsl_assert_data_7.pred_txt = "y == 2"; + __gen_e_acsl_assert_data_7.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 21; + __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ requires x == 3; + requires y == 2; */ x += y; { int __gen_e_acsl_assumes_value_2; @@ -53,45 +126,88 @@ int main(void) 1); __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(x == 5,1, - "Precondition","main", - "b1: x == 5", - "tests/constructs/stmt_contract.i", - 25); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Precondition"; + __gen_e_acsl_assert_data_8.pred_txt = "b1: x == 5"; + __gen_e_acsl_assert_data_8.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 25; + __e_acsl_assert(x == 5,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { - __e_acsl_assert(y == 2,1,"Precondition","main","b2: y == 2", - "tests/constructs/stmt_contract.i",29); - __e_acsl_assert((long)x == 3L + y,1,"Precondition","main", - "b2: x == 3 + y","tests/constructs/stmt_contract.i", - 28); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"y",0,y); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"y",0,y); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Precondition"; + __gen_e_acsl_assert_data_10.pred_txt = "b2: y == 2"; + __gen_e_acsl_assert_data_10.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 29; + __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Precondition"; + __gen_e_acsl_assert_data_9.pred_txt = "b2: x == 3 + y"; + __gen_e_acsl_assert_data_9.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 28; + __e_acsl_assert((long)x == 3L + y,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } } /*@ behavior b1: - requires x ≡ 5; - ensures x ≡ 3; + requires x == 5; + ensures x == 3; behavior b2: - requires x ≡ 3 + y; - requires y ≡ 2; - ensures x ≡ y + 1; + requires x == 3 + y; + requires y == 2; + ensures x == y + 1; */ x = 3; __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(x == 3,1, - "Postcondition","main", - "b1: x == 3", - "tests/constructs/stmt_contract.i", - 26); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Postcondition"; + __gen_e_acsl_assert_data_11.pred_txt = "b1: x == 3"; + __gen_e_acsl_assert_data_11.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 26; + __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)x == y + 1L,1, - "Postcondition","main", - "b2: x == y + 1", - "tests/constructs/stmt_contract.i", - 30); + if (__gen_e_acsl_assumes_value_2) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"y",0,y); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Postcondition"; + __gen_e_acsl_assert_data_12.pred_txt = "b2: x == y + 1"; + __gen_e_acsl_assert_data_12.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 30; + __e_acsl_assert((long)x == y + 1L,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + } __e_acsl_contract_clean(__gen_e_acsl_contract); } { @@ -105,39 +221,88 @@ int main(void) __gen_e_acsl_and_2); __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)0); - if (__gen_e_acsl_assumes_value_3) __e_acsl_assert(x == 0,1, - "Precondition","main", - "b1: x == 0", - "tests/constructs/stmt_contract.i", - 35); + if (__gen_e_acsl_assumes_value_3) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Precondition"; + __gen_e_acsl_assert_data_13.pred_txt = "b1: x == 0"; + __gen_e_acsl_assert_data_13.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 35; + __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + } __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)1); if (__gen_e_acsl_assumes_value_3) { - __e_acsl_assert(x + (long)y == 5L,1,"Precondition","main", - "b2: x + y == 5","tests/constructs/stmt_contract.i",40); - __e_acsl_assert(x == 3,1,"Precondition","main","b2: x == 3", - "tests/constructs/stmt_contract.i",39); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"y",0,y); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Precondition"; + __gen_e_acsl_assert_data_15.pred_txt = "b2: x + y == 5"; + __gen_e_acsl_assert_data_15.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 40; + __e_acsl_assert(x + (long)y == 5L,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Precondition"; + __gen_e_acsl_assert_data_14.pred_txt = "b2: x == 3"; + __gen_e_acsl_assert_data_14.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 39; + __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } } /*@ behavior b1: - assumes x ≡ 1; - requires x ≡ 0; + assumes x == 1; + requires x == 0; behavior b2: - assumes x ≡ 3; - assumes y ≡ 2; - requires x ≡ 3; - requires x + y ≡ 5; + assumes x == 3; + assumes y == 2; + requires x == 3; + requires x + y == 5; */ x += y; __e_acsl_contract_clean(__gen_e_acsl_contract_2); - __e_acsl_assert(x == 5,1,"Precondition","main","x == 5", - "tests/constructs/stmt_contract.i",43); - /*@ requires x ≡ 5; */ { - __e_acsl_assert(y == 2,1,"Precondition","main","y == 2", - "tests/constructs/stmt_contract.i",44); - /*@ requires y ≡ 2; */ + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"x",0,x); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Precondition"; + __gen_e_acsl_assert_data_16.pred_txt = "x == 5"; + __gen_e_acsl_assert_data_16.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 43; + __e_acsl_assert(x == 5,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); + } + /*@ requires x == 5; */ + { + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Precondition"; + __gen_e_acsl_assert_data_17.pred_txt = "y == 2"; + __gen_e_acsl_assert_data_17.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 44; + __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); + } + /*@ requires y == 2; */ x += y; } { @@ -145,68 +310,151 @@ int main(void) { int __gen_e_acsl_active_bhvrs; __gen_e_acsl_contract_3 = __e_acsl_contract_init((size_t)2); - __e_acsl_assert(x > -1000,1,"Precondition","main","x > -1000", - "tests/constructs/stmt_contract.i",49); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"x",0,x); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Precondition"; + __gen_e_acsl_assert_data_18.pred_txt = "x > -1000"; + __gen_e_acsl_assert_data_18.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 49; + __e_acsl_assert(x > -1000,& __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3, (size_t)0,x >= 0); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3, (size_t)1,x < 0); __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); if (__gen_e_acsl_active_bhvrs != 1) { - __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition", - "main","all behaviors complete", - "tests/constructs/stmt_contract.i",64); - __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition", - "main","all behaviors disjoint", - "tests/constructs/stmt_contract.i",64); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Precondition"; + __gen_e_acsl_assert_data_19.pred_txt = "all behaviors complete"; + __gen_e_acsl_assert_data_19.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 64; + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1, + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Precondition"; + __gen_e_acsl_assert_data_20.pred_txt = "all behaviors disjoint"; + __gen_e_acsl_assert_data_20.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 64; + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } } /*@ requires x > -1000; - ensures z ≥ 0; + ensures z >= 0; assigns x; behavior pos: - assumes x ≥ 0; - ensures z ≡ x; + assumes x >= 0; + ensures z == x; behavior neg: assumes x < 0; - ensures z ≡ -x; + ensures z == -x; complete behaviors neg, pos; disjoint behaviors neg, pos; */ if (x < 0) z = - x; else z = x; - __e_acsl_assert(z >= 0,1,"Postcondition","main","z >= 0", - "tests/constructs/stmt_contract.i",51); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"z",0,z); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Postcondition"; + __gen_e_acsl_assert_data_21.pred_txt = "z >= 0"; + __gen_e_acsl_assert_data_21.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 51; + __e_acsl_assert(z >= 0,& __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)0); - if (__gen_e_acsl_assumes_value_4) __e_acsl_assert(z == x,1, - "Postcondition","main", - "pos: z == x", - "tests/constructs/stmt_contract.i", - 55); + if (__gen_e_acsl_assumes_value_4) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"z",0,z); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"x",0,x); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Postcondition"; + __gen_e_acsl_assert_data_22.pred_txt = "pos: z == x"; + __gen_e_acsl_assert_data_22.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 55; + __e_acsl_assert(z == x,& __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); + } __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)1); - if (__gen_e_acsl_assumes_value_4) __e_acsl_assert((long)z == - ((long)x), - 1,"Postcondition", - "main","neg: z == -x", - "tests/constructs/stmt_contract.i", - 59); + if (__gen_e_acsl_assumes_value_4) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"z",0,z); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Postcondition"; + __gen_e_acsl_assert_data_23.pred_txt = "neg: z == -x"; + __gen_e_acsl_assert_data_23.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 59; + __e_acsl_assert((long)z == - ((long)x),& __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); + } __e_acsl_contract_clean(__gen_e_acsl_contract_3); } - __e_acsl_assert(x == 7,1,"Precondition","main","x == 7", - "tests/constructs/stmt_contract.i",70); - /*@ requires x ≡ 7; - ensures x ≡ 7; */ { - __retres = 0; - goto return_label; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"x",0,x); + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "Precondition"; + __gen_e_acsl_assert_data_24.pred_txt = "x == 7"; + __gen_e_acsl_assert_data_24.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 70; + __e_acsl_assert(x == 7,& __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); + } + /*@ requires x == 7; + ensures x == 7; */ + { + __retres = 0; + goto return_label; + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"x",0,x); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Postcondition"; + __gen_e_acsl_assert_data_25.pred_txt = "x == 7"; + __gen_e_acsl_assert_data_25.file = "tests/constructs/stmt_contract.i"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 71; + __e_acsl_assert(x == 7,& __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); } - __e_acsl_assert(x == 7,1,"Postcondition","main","x == 7", - "tests/constructs/stmt_contract.i",71); - return_label: return __retres; + return_label: { + __e_acsl_memory_clean(); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c index 4417657b8079620bf6c69cc60f6bdd9dc036687a..51a747050c1907f3bc2f46ab2c8cc4c049f84b46 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c @@ -1,18 +1,28 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; x ++; - __e_acsl_assert(1,1,"Assertion","main","\\true","tests/constructs/true.i", - 8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\true"; + __gen_e_acsl_assert_data.file = "tests/constructs/true.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } /*@ assert \true; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c index 45bc00f263118febfab9bc1d789ef7e9e42e4b68..5a9b5f9d85eccb3c23170adab538b961cded0752 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c +++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -8,11 +8,23 @@ typedef unsigned char uint8; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); uint8 x = (unsigned char)0; - __e_acsl_assert((int)x == 0,1,"Assertion","main","x == 0", - "tests/constructs/typedef.i",9); - /*@ assert x ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_uchar(& __gen_e_acsl_assert_data,"x",0,x); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "x == 0"; + __gen_e_acsl_assert_data.file = "tests/constructs/typedef.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert((int)x == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert x == 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle index efd026311297e55d8fefb674326118e6ece88624..32e4d749cabb19bc87afa92dff197def38da0df0 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle @@ -1,2 +1,17 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/ghost.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/ghost.i:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/ghost.i:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/ghost.i:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/ghost.i:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle index efd026311297e55d8fefb674326118e6ece88624..87a742579edb6f2645964f99a1db36e5a8c3f484 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/invariant.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/invariant.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle index efd026311297e55d8fefb674326118e6ece88624..72ce7b18c2cb178c251eeaef119de446440dc257 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle @@ -1,2 +1,50 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/lazy.i:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/lazy.i:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle index 86e58d678ea4f7f60b6d4fbc258872a440f47434..3b8159dcb6314aa624be08354e7289901ecc7dc9 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle @@ -1,4 +1,16 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/loop.i:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/loop.i:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/loop.i:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/constructs/loop.i:19: Warning: loop invariant got status unknown. +[eva:alarm] tests/constructs/loop.i:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle index efd026311297e55d8fefb674326118e6ece88624..1b4e901d1f24e00d0fdca0a812e685216968c59b 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle @@ -1,2 +1,5 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/nested_code_annot.i:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..c5c7a5158f41c430d9cf3cc74d4fc3a5968c9610 --- /dev/null +++ b/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle @@ -0,0 +1,105 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/printed_data.c:69: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:71: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:73: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:75: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:77: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:79: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:81: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:83: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:85: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:87: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:89: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:91: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:93: Warning: + function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/constructs/printed_data.c:93: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:98: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:100: Warning: + assertion got status unknown. +[eva] tests/constructs/printed_data.c:101: Warning: + cannot parse floating-point constant, returning imprecise result +[eva:alarm] tests/constructs/printed_data.c:101: Warning: + non-finite long double value. + assert \is_finite((long double)0x1.fffffffffffffffep+16383L); +[eva:alarm] tests/constructs/printed_data.c:102: Warning: + non-finite long double value. assert \is_finite(real_ldouble); +[eva:alarm] tests/constructs/printed_data.c:102: Warning: + non-finite long double value. assert \is_finite(real_ldouble); +[eva:alarm] tests/constructs/printed_data.c:102: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:104: Warning: + function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/constructs/printed_data.c:104: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:113: Warning: + function __e_acsl_assert_register_array: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:113: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:118: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:123: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:128: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:133: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:135: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:137: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:139: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:141: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:143: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:145: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:147: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:149: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:151: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:153: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:155: Warning: + assertion got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/printed_data.c:161: Warning: + assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle index efd026311297e55d8fefb674326118e6ece88624..cdb9889d96b7f67de1076959b7317368690ff37d 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/result.i:5: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/result.i:5: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/result.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/constructs/result.i:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle index 59a91431c62c3df5798cb861bd233db93ff56dd4..0ee463d309ed522b2c8cb86a27cc254a0e01e2d7 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle @@ -2,12 +2,12 @@ [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/constructs/rte.i:24: Warning: function __gen_e_acsl_test, behavior bhvr: precondition \let var = 1; - var % j ≡ 1 got status unknown. + var % j == 1 got status unknown. [eva:alarm] tests/constructs/rte.i:24: Warning: - function __gen_e_acsl_test, behavior bhvr: precondition ∀ ℤ var; - 0 ≤ var < k ⇒ - var % k ≡ var got status unknown. + function __gen_e_acsl_test, behavior bhvr: precondition \forall integer var; + 0 <= var < k ==> + var % k == var got status unknown. [eva:alarm] tests/constructs/rte.i:24: Warning: - function __gen_e_acsl_test, behavior bhvr: precondition ∃ ℤ var; - 0 ≤ var < l ∧ - var % l ≡ var got status unknown. + function __gen_e_acsl_test, behavior bhvr: precondition \exists integer var; + 0 <= var < l && + var % l == var got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle index b1c4f6eb72229f64ba5bf67742a6f9968e207c4c..e1898de466724603f138db1fb9b0ea957d827e72 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle @@ -3,3 +3,6 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/constructs/stmt_contract.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log b/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log index af29dee8a4ec16fdff76c6e580985d4da89f2f58..9422fb60d46fc2065990dd8de912a1ea2005c39a 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log @@ -1,13 +1,13 @@ tests/constructs/acsl_check.c: In function 'main' -tests/constructs/acsl_check.c:18: Error: Assertion failed: +tests/constructs/acsl_check.c:21: Error: Assertion failed: The failing predicate is: a == 1. tests/constructs/acsl_check.c: In function 'f' -tests/constructs/acsl_check.c:4: Error: Precondition failed: +tests/constructs/acsl_check.c:7: Error: Precondition failed: The failing predicate is: a != 0. tests/constructs/acsl_check.c: In function 'f' -tests/constructs/acsl_check.c:5: Error: Postcondition failed: +tests/constructs/acsl_check.c:8: Error: Postcondition failed: The failing predicate is: \result != 0. SHOULD BE PRINTED IN EXECUTION LOG diff --git a/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log b/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log new file mode 100644 index 0000000000000000000000000000000000000000..b820f2dcbadf569433cea39c6f14f6f9d9518dbe --- /dev/null +++ b/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log @@ -0,0 +1,183 @@ +EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:69: Assertion valid: + \let x = int_bool; \true. + With values: + - int_bool: 1 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:71: Assertion valid: + \let x = int_char; \true. + With values: + - int_char: 127 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:73: Assertion valid: + \let x = int_schar; \true. + With values: + - int_schar: 127 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:75: Assertion valid: + \let x = int_uchar; \true. + With values: + - int_uchar: 255 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:77: Assertion valid: + \let x = int_int; \true. + With values: + - int_int: 2147483647 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:79: Assertion valid: + \let x = int_uint; \true. + With values: + - int_uint: 4294967295 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:81: Assertion valid: + \let x = int_short; \true. + With values: + - int_short: 32767 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:83: Assertion valid: + \let x = int_ushort; \true. + With values: + - int_ushort: 65535 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:85: Assertion valid: + \let x = int_long; \true. + With values: + - int_long: 9223372036854775807 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:87: Assertion valid: + \let x = int_ulong; \true. + With values: + - int_ulong: 18446744073709551615 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:89: Assertion valid: + \let x = int_llong; \true. + With values: + - int_llong: 9223372036854775807 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:91: Assertion valid: + \let x = int_ullong; \true. + With values: + - int_ullong: 18446744073709551615 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:93: Assertion valid: + \let int_mpz = (0x7fffffffffffffffLL * 2ULL + 1ULL) + 1; + int_mpz != 0x7fffffffffffffffLL * 2ULL + 1ULL. + With values: + - int_mpz: 18446744073709551616 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:98: Assertion valid: + \let x = real_float; \true. + With values: + - real_float: 3.402823e+38 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:100: Assertion valid: + \let x = real_double; \true. + With values: + - real_double: 1.797693e+308 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:102: Assertion valid: + \let x = real_ldouble; \true. + With values: + - real_ldouble: 1.189731e+4932 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:104: Assertion valid: + \let real_mpq = 0.1; real_mpq != 1. + With values: + - real_mpq: 1/10 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:109: Assertion valid: + ptr != (void *)0. + With values: + - ptr: 0x000000 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:113: Assertion valid: + array1 != array2. + With values: + - array2: <array> + - address: 0x000000 + - array1: <array> + - address: 0x000000 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:118: Assertion valid: + &f != &g. + With values: + - &g: 0x000000 + - &f: 0x000000 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:123: Assertion valid: + \let x = struct1; \true. + With values: + - struct1: <struct> +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:128: Assertion valid: + \let x = union1; \true. + With values: + - union1: <union> +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:133: Assertion valid: + \let x = enum_bool; \true. + With values: + - enum_bool: <enum> 1 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:135: Assertion valid: + \let x = enum_char; \true. + With values: + - enum_char: <enum> 127 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:137: Assertion valid: + \let x = enum_schar; \true. + With values: + - enum_schar: <enum> 127 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:139: Assertion valid: + \let x = enum_uchar; \true. + With values: + - enum_uchar: <enum> 255 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:141: Assertion valid: + \let x = enum_int; \true. + With values: + - enum_int: <enum> 2147483647 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:143: Assertion valid: + \let x = enum_uint; \true. + With values: + - enum_uint: <enum> 4294967295 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:145: Assertion valid: + \let x = enum_short; \true. + With values: + - enum_short: <enum> 32767 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:147: Assertion valid: + \let x = enum_ushort; \true. + With values: + - enum_ushort: <enum> 65535 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:149: Assertion valid: + \let x = enum_long; \true. + With values: + - enum_long: <enum> 9223372036854775807 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:151: Assertion valid: + \let x = enum_ulong; \true. + With values: + - enum_ulong: <enum> 18446744073709551615 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:153: Assertion valid: + \let x = enum_llong; \true. + With values: + - enum_llong: <enum> 9223372036854775807 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:155: Assertion valid: + \let x = enum_ullong; \true. + With values: + - enum_ullong: <enum> 18446744073709551615 +tests/constructs/printed_data.c: In function 'main' +tests/constructs/printed_data.c:161: Assertion valid: + \let c = a + b; a != b && c == a + b. + With values: + - c: 5 + - b: 3 + - a: 2 diff --git a/src/plugins/e-acsl/tests/constructs/printed_data.c b/src/plugins/e-acsl/tests/constructs/printed_data.c new file mode 100644 index 0000000000000000000000000000000000000000..8da27ae88f84d87e23005dc89776b8605ef0fd98 --- /dev/null +++ b/src/plugins/e-acsl/tests/constructs/printed_data.c @@ -0,0 +1,164 @@ +/* run.config + COMMENT: Test the output of data contributing to an assertion. +*/ +/* run.config_dev + COMMENT: Print the data and filter the addresses of the output so that the test is deterministic. + MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data -e -DE_ACSL_DEBUG_ASSERT -F -no-unicode + MACRO: ROOT_EACSL_EXEC_FILTER @SEDCMD@ -e "s|0x[0-9a-f]*$|0x000000|g" + */ + +#include <float.h> +#include <limits.h> +#include <stdarg.h> +#include <stdint.h> +#include <stdio.h> + +void f() {} +void g() {} + +struct A { + int a; +}; + +union U { + int a; + float b; +}; + +int lvalue = 1; +int array1[] = {1, 2, 3, 4}; +int array2[] = {5, 6}; + +enum EBool { EBOOL_MIN = (_Bool)0, EBOOL_MAX = (_Bool)1 }; +enum EChar { ECHAR_MIN = (char)CHAR_MIN, ECHAR_MAX = (char)CHAR_MAX }; +enum ESChar { + ESCHAR_MIN = (signed char)SCHAR_MIN, + ESCHAR_MAX = (signed char)SCHAR_MAX +}; +enum EUChar { + EUCHAR_MIN = (unsigned char)0, + EUCHAR_MAX = (unsigned char)UCHAR_MAX +}; +enum EInt { EINT_MIN = (int)INT_MIN, EINT_MAX = (int)INT_MAX }; +enum EUInt { EUINT_MIN = (unsigned int)0, EUINT_MAX = (unsigned int)UINT_MAX }; +enum EShort { ESHORT_MIN = (short)SHRT_MIN, ESHORT_MAX = (short)SHRT_MAX }; +enum EUShort { + EUSHORT_MIN = (unsigned short)0, + EUSHORT_MAX = (unsigned short)USHRT_MAX +}; +enum ELong { ELONG_MIN = (long)LONG_MIN, ELONG_MAX = (long)LONG_MAX }; +enum EULong { + EULONG_MIN = (unsigned long)0, + EULONG_MAX = (unsigned long)ULONG_MAX +}; +enum ELLong { + ELLONG_MIN = (long long)LLONG_MIN, + ELLONG_MAX = (long long)LLONG_MAX +}; +enum EULLong { + EULLONG_MIN = (unsigned long long)0, + EULLONG_MAX = (unsigned long long)ULLONG_MAX +}; + +int main() { + fprintf(stderr, "EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n"); + + // Integers + // -------- + _Bool int_bool = 1; + //@ assert \let x = int_bool; \true; + char int_char = CHAR_MAX; + //@ assert \let x = int_char; \true; + signed char int_schar = SCHAR_MAX; + //@ assert \let x = int_schar; \true; + unsigned char int_uchar = UCHAR_MAX; + //@ assert \let x = int_uchar; \true; + int int_int = INT_MAX; + //@ assert \let x = int_int; \true; + unsigned int int_uint = UINT_MAX; + //@ assert \let x = int_uint; \true; + short int_short = SHRT_MAX; + //@ assert \let x = int_short; \true; + unsigned short int_ushort = USHRT_MAX; + //@ assert \let x = int_ushort; \true; + long int_long = LONG_MAX; + //@ assert \let x = int_long; \true; + unsigned long int_ulong = ULONG_MAX; + //@ assert \let x = int_ulong; \true; + long long int_llong = LLONG_MAX; + //@ assert \let x = int_llong; \true; + unsigned long long int_ullong = ULLONG_MAX; + //@ assert \let x = int_ullong; \true; + // MPZ + //@ assert \let int_mpz = ULLONG_MAX + 1; int_mpz != ULLONG_MAX; + + // Reals + // ----- + float real_float = FLT_MAX; + //@ assert \let x = real_float; \true; + double real_double = DBL_MAX; + //@ assert \let x = real_double; \true; + long double real_ldouble = LDBL_MAX; + //@ assert \let x = real_ldouble; \true; + // MPQ + //@ assert \let real_mpq = 0.1; real_mpq != 1; + + // Pointer + // ------- + void *ptr = &lvalue; + //@ assert ptr != NULL; + + // Array + // ----- + //@ assert array1 != array2; + + // Function + // -------- + // FIXME: here f and g are pointers and not "functions" + //@ assert f != g; + + // Structure + // --------- + struct A struct1 = {.a = 1}; + //@ assert \let x = struct1; \true; + + // Union + // ----- + union U union1 = {.b = 1.}; + //@ assert \let x = union1; \true; + + // Enum + // ---- + enum EBool enum_bool = EBOOL_MAX; + //@ assert \let x = enum_bool; \true; + enum EChar enum_char = ECHAR_MAX; + //@ assert \let x = enum_char; \true; + enum ESChar enum_schar = ESCHAR_MAX; + //@ assert \let x = enum_schar; \true; + enum EUChar enum_uchar = EUCHAR_MAX; + //@ assert \let x = enum_uchar; \true; + enum EInt enum_int = EINT_MAX; + //@ assert \let x = enum_int; \true; + enum EUInt enum_uint = EUINT_MAX; + //@ assert \let x = enum_uint; \true; + enum EShort enum_short = ESHORT_MAX; + //@ assert \let x = enum_short; \true; + enum EUShort enum_ushort = EUSHORT_MAX; + //@ assert \let x = enum_ushort; \true; + enum ELong enum_long = ELONG_MAX; + //@ assert \let x = enum_long; \true; + enum EULong enum_ulong = EULONG_MAX; + //@ assert \let x = enum_ulong; \true; + enum ELLong enum_llong = ELLONG_MAX; + //@ assert \let x = enum_llong; \true; + enum EULLong enum_ullong = EULLONG_MAX; + //@ assert \let x = enum_ullong; \true; + + // Deduplication + // ------------- + int a = 2; + int b = 3; + //@ assert \let c = a + b; a != b && c == a + b; + + return 0; +} diff --git a/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c b/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c index 4238666d02ed9e9f3feb384735ea6246bf07c528..c321d78c65903e3eeec3e96d9ec4b9699ee8627a 100644 --- a/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c +++ b/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -9,13 +10,13 @@ struct list { int value ; }; /*@ -logic ℤ length_aux{L}(struct list *l, ℤ n) = +logic integer length_aux{L}(struct list *l, integer n) = \at(n < 0? -1: - (l ≡ (struct list *)0? n: + (l == (struct list *)0? n: (n < 2147483647? length_aux(l->next, n + 1): -1)), L); */ -/*@ logic ℤ length{L}(struct list *l) = \at(length_aux(l, 0),L); +/*@ logic integer length{L}(struct list *l) = \at(length_aux(l, 0),L); */ int main(void) @@ -35,7 +36,7 @@ int main(void) struct list *l = & node1; __e_acsl_store_block((void *)(& l),(size_t)8); __e_acsl_full_init((void *)(& l)); - /*@ assert length(l) ≡ 3; */ ; + /*@ assert length(l) == 3; */ ; __retres = 0; __e_acsl_delete_block((void *)(& l)); __e_acsl_delete_block((void *)(& node3)); diff --git a/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c b/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c index fa774f67e47d3a677ccb4e12762e46154c3d41a3..c58491401d208dbc1ba1cee9fa54622b61e0cf4c 100644 --- a/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c +++ b/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c @@ -1,19 +1,19 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int A[10]; -/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i + 1]; +/*@ requires \forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]; behavior exists: - assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt; - ensures \result ≡ 1; + assumes \exists integer j; 0 <= j < 10 && A[j] == elt; + ensures \result == 1; behavior not_exists: - assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt; - ensures \result ≡ 0; + assumes \forall integer j; 0 <= j < 10 ==> A[j] != elt; + ensures \result == 0; */ int __gen_e_acsl_search(int elt); @@ -26,33 +26,75 @@ int search(int elt) int __gen_e_acsl_forall; int __gen_e_acsl_i; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_i = 0; while (1) { if (__gen_e_acsl_i < k) ; else break; - __e_acsl_assert(__gen_e_acsl_i < 10,1,"RTE","search", - "index_bound: __gen_e_acsl_i < 10", - "tests/examples/linear_search.i",18); - __e_acsl_assert(0 <= __gen_e_acsl_i,1,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_i", - "tests/examples/linear_search.i",18); - if (A[__gen_e_acsl_i] < elt) ; - else { - __gen_e_acsl_forall = 0; - goto e_acsl_end_loop1; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "index_bound: __gen_e_acsl_i < 10"; + __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_2.fct = "search"; + __gen_e_acsl_assert_data_2.line = 18; + __e_acsl_assert(__gen_e_acsl_i < 10,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "index_bound: 0 <= __gen_e_acsl_i"; + __gen_e_acsl_assert_data_3.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_3.fct = "search"; + __gen_e_acsl_assert_data_3.line = 18; + __e_acsl_assert(0 <= __gen_e_acsl_i,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + if (A[__gen_e_acsl_i] < elt) ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop1; + } } __gen_e_acsl_i ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Invariant","search", - "\\forall integer i; 0 <= i < k ==> A[i] < elt", - "tests/examples/linear_search.i",18); - if (0 <= k) __gen_e_acsl_and = k <= 10; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","search","0 <= k <= 10", - "tests/examples/linear_search.i",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall integer i; 0 <= i < k ==> A[i] < elt", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "\\forall integer i; 0 <= i < k ==> A[i] < elt"; + __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data.fct = "search"; + __gen_e_acsl_assert_data.line = 18; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"k",0,k); + if (0 <= k) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"k",0,k); + __gen_e_acsl_and = k <= 10; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Invariant"; + __gen_e_acsl_assert_data_4.pred_txt = "0 <= k <= 10"; + __gen_e_acsl_assert_data_4.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_4.fct = "search"; + __gen_e_acsl_assert_data_4.line = 17; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ loop invariant 0 ≤ k ≤ 10; - loop invariant ∀ ℤ i; 0 ≤ i < k ⇒ A[i] < elt; + /*@ loop invariant 0 <= k <= 10; + loop invariant \forall integer i; 0 <= i < k ==> A[i] < elt; */ while (k < 10) { if (A[k] == elt) { @@ -69,30 +111,73 @@ int search(int elt) int __gen_e_acsl_forall_2; int __gen_e_acsl_i_2; k ++; - if (0 <= k) __gen_e_acsl_and_2 = k <= 10; else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","search", - "0 <= k <= 10","tests/examples/linear_search.i",17); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"k",0,k); + if (0 <= k) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"k",0,k); + __gen_e_acsl_and_2 = k <= 10; + } + else __gen_e_acsl_and_2 = 0; + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Invariant"; + __gen_e_acsl_assert_data_5.pred_txt = "0 <= k <= 10"; + __gen_e_acsl_assert_data_5.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_5.fct = "search"; + __gen_e_acsl_assert_data_5.line = 17; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_i_2 = 0; while (1) { if (__gen_e_acsl_i_2 < k) ; else break; - __e_acsl_assert(__gen_e_acsl_i_2 < 10,1,"RTE","search", - "index_bound: __gen_e_acsl_i_2 < 10", - "tests/examples/linear_search.i",18); - __e_acsl_assert(0 <= __gen_e_acsl_i_2,1,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_i_2", - "tests/examples/linear_search.i",18); - if (A[__gen_e_acsl_i_2] < elt) ; - else { - __gen_e_acsl_forall_2 = 0; - goto e_acsl_end_loop2; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_i_2",0,__gen_e_acsl_i_2); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "index_bound: __gen_e_acsl_i_2 < 10"; + __gen_e_acsl_assert_data_7.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_7.fct = "search"; + __gen_e_acsl_assert_data_7.line = 18; + __e_acsl_assert(__gen_e_acsl_i_2 < 10,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "__gen_e_acsl_i_2",0,__gen_e_acsl_i_2); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "index_bound: 0 <= __gen_e_acsl_i_2"; + __gen_e_acsl_assert_data_8.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_8.fct = "search"; + __gen_e_acsl_assert_data_8.line = 18; + __e_acsl_assert(0 <= __gen_e_acsl_i_2,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + if (A[__gen_e_acsl_i_2] < elt) ; + else { + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop2; + } } __gen_e_acsl_i_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Invariant","search", - "\\forall integer i; 0 <= i < k ==> A[i] < elt", - "tests/examples/linear_search.i",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\forall integer i; 0 <= i < k ==> A[i] < elt", + 0,__gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Invariant"; + __gen_e_acsl_assert_data_6.pred_txt = "\\forall integer i; 0 <= i < k ==> A[i] < elt"; + __gen_e_acsl_assert_data_6.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_6.fct = "search"; + __gen_e_acsl_assert_data_6.line = 18; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } } __retres = 0; @@ -103,6 +188,7 @@ int main(void) { int __retres; int found; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { int i = 0; while (i < 10) { @@ -111,26 +197,49 @@ int main(void) } } found = __gen_e_acsl_search(36); - __e_acsl_assert(found == 1,1,"Assertion","main","found == 1", - "tests/examples/linear_search.i",34); - /*@ assert found ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"found",0,found); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "found == 1"; + __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 34; + __e_acsl_assert(found == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert found == 1; */ ; found = __gen_e_acsl_search(5); - __e_acsl_assert(found == 0,1,"Assertion","main","found == 0", - "tests/examples/linear_search.i",37); - /*@ assert found ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"found",0, + found); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "found == 0"; + __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 37; + __e_acsl_assert(found == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert found == 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } -/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i + 1]; +/*@ requires \forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]; behavior exists: - assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt; - ensures \result ≡ 1; + assumes \exists integer j; 0 <= j < 10 && A[j] == elt; + ensures \result == 1; behavior not_exists: - assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt; - ensures \result ≡ 0; + assumes \forall integer j; 0 <= j < 10 ==> A[j] != elt; + ensures \result == 0; */ int __gen_e_acsl_search(int elt) { @@ -144,47 +253,116 @@ int __gen_e_acsl_search(int elt) int __gen_e_acsl_forall_2; int __gen_e_acsl_j_2; __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_i = 0; while (1) { if (__gen_e_acsl_i < 9) ; else break; - __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10,1,"RTE","search", - "index_bound: (int)(__gen_e_acsl_i + 1) < 10", - "tests/examples/linear_search.i",7); - __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L),1,"RTE","search", - "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)", - "tests/examples/linear_search.i",7); - __e_acsl_assert(__gen_e_acsl_i < 10,1,"RTE","search", - "index_bound: __gen_e_acsl_i < 10", - "tests/examples/linear_search.i",7); - __e_acsl_assert(0 <= __gen_e_acsl_i,1,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_i", - "tests/examples/linear_search.i",7); - if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ; - else { - __gen_e_acsl_forall = 0; - goto e_acsl_end_loop3; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "index_bound: (int)(__gen_e_acsl_i + 1) < 10"; + __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_2.fct = "search"; + __gen_e_acsl_assert_data_2.line = 7; + __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)"; + __gen_e_acsl_assert_data_3.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_3.fct = "search"; + __gen_e_acsl_assert_data_3.line = 7; + __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L), + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "index_bound: __gen_e_acsl_i < 10"; + __gen_e_acsl_assert_data_4.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_4.fct = "search"; + __gen_e_acsl_assert_data_4.line = 7; + __e_acsl_assert(__gen_e_acsl_i < 10,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_i",0,__gen_e_acsl_i); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "index_bound: 0 <= __gen_e_acsl_i"; + __gen_e_acsl_assert_data_5.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_5.fct = "search"; + __gen_e_acsl_assert_data_5.line = 7; + __e_acsl_assert(0 <= __gen_e_acsl_i,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop3; + } } __gen_e_acsl_i ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Precondition","search", - "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]", - "tests/examples/linear_search.i",7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]"; + __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data.fct = "search"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gen_e_acsl_exists = 0; __gen_e_acsl_j = 0; while (1) { if (__gen_e_acsl_j < 10) ; else break; - __e_acsl_assert(__gen_e_acsl_j < 10,1,"RTE","search", - "index_bound: __gen_e_acsl_j < 10", - "tests/examples/linear_search.i",9); - __e_acsl_assert(0 <= __gen_e_acsl_j,1,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_j", - "tests/examples/linear_search.i",9); - if (! (A[__gen_e_acsl_j] == elt)) ; - else { - __gen_e_acsl_exists = 1; - goto e_acsl_end_loop4; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_j",0,__gen_e_acsl_j); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "index_bound: __gen_e_acsl_j < 10"; + __gen_e_acsl_assert_data_6.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_6.fct = "search"; + __gen_e_acsl_assert_data_6.line = 9; + __e_acsl_assert(__gen_e_acsl_j < 10,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_j",0,__gen_e_acsl_j); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "index_bound: 0 <= __gen_e_acsl_j"; + __gen_e_acsl_assert_data_7.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_7.fct = "search"; + __gen_e_acsl_assert_data_7.line = 9; + __e_acsl_assert(0 <= __gen_e_acsl_j,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + if (! (A[__gen_e_acsl_j] == elt)) ; + else { + __gen_e_acsl_exists = 1; + goto e_acsl_end_loop4; + } } __gen_e_acsl_j ++; } @@ -195,16 +373,36 @@ int __gen_e_acsl_search(int elt) __gen_e_acsl_j_2 = 0; while (1) { if (__gen_e_acsl_j_2 < 10) ; else break; - __e_acsl_assert(__gen_e_acsl_j_2 < 10,1,"RTE","search", - "index_bound: __gen_e_acsl_j_2 < 10", - "tests/examples/linear_search.i",12); - __e_acsl_assert(0 <= __gen_e_acsl_j_2,1,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_j_2", - "tests/examples/linear_search.i",12); - if (A[__gen_e_acsl_j_2] != elt) ; - else { - __gen_e_acsl_forall_2 = 0; - goto e_acsl_end_loop5; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "__gen_e_acsl_j_2",0,__gen_e_acsl_j_2); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "index_bound: __gen_e_acsl_j_2 < 10"; + __gen_e_acsl_assert_data_8.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_8.fct = "search"; + __gen_e_acsl_assert_data_8.line = 12; + __e_acsl_assert(__gen_e_acsl_j_2 < 10,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "__gen_e_acsl_j_2",0,__gen_e_acsl_j_2); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "index_bound: 0 <= __gen_e_acsl_j_2"; + __gen_e_acsl_assert_data_9.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_9.fct = "search"; + __gen_e_acsl_assert_data_9.line = 12; + __e_acsl_assert(0 <= __gen_e_acsl_j_2,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + if (A[__gen_e_acsl_j_2] != elt) ; + else { + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop5; + } } __gen_e_acsl_j_2 ++; } @@ -217,18 +415,36 @@ int __gen_e_acsl_search(int elt) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1,1, - "Postcondition","search", - "exists: \\result == 1", - "tests/examples/linear_search.i", - 10); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"\\result", + 0,__retres); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Postcondition"; + __gen_e_acsl_assert_data_10.pred_txt = "exists: \\result == 1"; + __gen_e_acsl_assert_data_10.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_10.fct = "search"; + __gen_e_acsl_assert_data_10.line = 10; + __e_acsl_assert(__retres == 1,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1, - "Postcondition","search", - "not_exists: \\result == 0", - "tests/examples/linear_search.i", - 13); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"\\result", + 0,__retres); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Postcondition"; + __gen_e_acsl_assert_data_11.pred_txt = "not_exists: \\result == 0"; + __gen_e_acsl_assert_data_11.file = "tests/examples/linear_search.i"; + __gen_e_acsl_assert_data_11.fct = "search"; + __gen_e_acsl_assert_data_11.line = 13; + __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } diff --git a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle index 665e3c0b1cc2ecddafda0d677d2f1f1a72337ef9..7802760e7ec64d97faa5d42c9ccb54934ce27c63 100644 --- a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle @@ -47,5 +47,11 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [kernel:annot:missing-spec] tests/format/fprintf.c:16: Warning: Neither code nor specification for function __e_acsl_builtin_fprintf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c index 09a3554adf54d4a676e021dc16c0d7fb3e087768..cf65403869c2ef7a1202aaa942aeabf3c89963e2 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "signal.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "sys/select.h" @@ -43,57 +44,55 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from __fc_p_fopen; */ FILE *__gen_e_acsl_tmpfile(void); /*@ requires valid_stream: \valid(stream); - ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; + ensures result_zero_or_EOF: \result == 0 || \result == -1; assigns \result; assigns \result \from (indirect: stream), (indirect: *stream); */ int __gen_e_acsl_fclose(FILE *stream); -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ pid_t __gen_e_acsl_fork(void); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -104,33 +103,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -151,12 +166,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -166,30 +194,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -197,13 +259,21 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } /*@ requires valid_stream: \valid(stream); - ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1; + ensures result_zero_or_EOF: \result == 0 || \result == -1; assigns \result; assigns \result \from (indirect: stream), (indirect: *stream); */ @@ -213,20 +283,45 @@ int __gen_e_acsl_fclose(FILE *stream) { int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& stream),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stream", + (void *)stream); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(FILE)", + 0,sizeof(FILE)); __gen_e_acsl_valid = __e_acsl_valid((void *)stream,sizeof(FILE), (void *)stream,(void *)(& stream)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fclose", - "valid_stream: \\valid(stream)", - "FRAMAC_SHARE/libc/stdio.h",120); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stream)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "valid_stream: \\valid(stream)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data.fct = "fclose"; + __gen_e_acsl_assert_data.line = 120; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = fclose(stream); { int __gen_e_acsl_or; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","fclose", - "result_zero_or_EOF: \\result == 0 || \\result == -1", - "FRAMAC_SHARE/libc/stdio.h",122); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres == -1; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_zero_or_EOF: \\result == 0 || \\result == -1"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_2.fct = "fclose"; + __gen_e_acsl_assert_data_2.line = 122; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __e_acsl_delete_block((void *)(& stream)); return __retres; } @@ -234,7 +329,7 @@ int __gen_e_acsl_fclose(FILE *stream) /*@ ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from __fc_p_fopen; */ diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c index a4f24c803d736d1fbbdf9803ba71b612cb937a6a..917b2486b808de4f68664962eaccb8182bb1c5fb 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c @@ -470,50 +470,49 @@ char *__gen_e_acsl_literal_string_34; char *__gen_e_acsl_literal_string_441; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; */ void __gen_e_acsl_abort(void); -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; */ void __gen_e_acsl_exit(int status); -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options); /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ pid_t __gen_e_acsl_fork(void); /*@ requires valid_string_s: valid_read_string(s); - ensures acsl_c_equiv: \result ≡ strlen(\old(s)); + ensures acsl_c_equiv: \result == strlen(\old(s)); assigns \result; assigns \result \from (indirect: *(s + (0 ..))); */ @@ -525,24 +524,24 @@ size_t __gen_e_acsl_strlen(char const *s); \from s, (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: c); behavior found: - assumes char_found: strchr(s, c) ≡ \true; - ensures result_char: *\result ≡ (char)\old(c); - ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); + assumes char_found: strchr(s, c) == \true; + ensures result_char: *\result == (char)\old(c); + ensures result_same_base: \base_addr(\result) == \base_addr(\old(s)); ensures - result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s)); + result_in_length: \old(s) <= \result <= \old(s) + strlen(\old(s)); ensures result_valid_string: valid_read_string(\result); ensures result_first_occur: - ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c); + \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c); behavior not_found: - assumes char_not_found: ¬(strchr(s, c) ≡ \true); - ensures result_null: \result ≡ \null; + assumes char_not_found: !(strchr(s, c) == \true); + ensures result_null: \result == \null; behavior default: ensures result_null_or_same_base: - \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); + \result == \null || \base_addr(\result) == \base_addr(\old(s)); */ char *__gen_e_acsl_strchr(char const *s, int c); @@ -551,8 +550,8 @@ char *__gen_e_acsl_strchr(char const *s, int c); requires separation: \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + ensures equal_contents: strcmp(\old(dest), \old(src)) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (0 .. strlen{Old}(src))), \result; assigns *(dest + (0 .. strlen{Old}(src))) \from *(src + (0 .. strlen{Old}(src))); @@ -617,10 +616,17 @@ void test_specifier_application(char const *allowed, char const *fmt, int len = (int)tmp; { int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len); if (0 < (int)(len + 1L)) { __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len); __gmpz_init_set_si(__gen_e_acsl_,(long)(1 * (int)(len + 1L))); __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), @@ -630,14 +636,18 @@ void test_specifier_application(char const *allowed, char const *fmt, __gmpz_clear(__gen_e_acsl__2); } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion", - "test_specifier_application", - "alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615", - "tests/format/printf.c",55); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615"; + __gen_e_acsl_assert_data.file = "tests/format/printf.c"; + __gen_e_acsl_assert_data.fct = "test_specifier_application"; + __gen_e_acsl_assert_data.line = 55; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert - alloca_bounds: 0 < sizeof(char) * (int)(len + 1) ≤ 18446744073709551615; + alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615; */ ; __lengthof_format = (unsigned long)(len + 1); @@ -713,8 +723,8 @@ void test_specifier_application(char const *allowed, char const *fmt, requires separation: \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + ensures equal_contents: strcmp(\old(dest), \old(src)) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (0 .. strlen{Old}(src))), \result; assigns *(dest + (0 .. strlen{Old}(src))) \from *(src + (0 .. strlen{Old}(src))); @@ -737,6 +747,11 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; unsigned long __gen_e_acsl_size; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_strcpy_src_size",0, + __gen_e_acsl_strcpy_src_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcpy_src_size, __gen_e_acsl_strcpy_src_size); __gmpz_init_set_si(__gen_e_acsl_,1L); @@ -747,9 +762,14 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcpy", - "size_lesser_or_eq_than_SIZE_MAX:\n __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615", - "FRAMAC_SHARE/libc/string.h",367); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_6.fct = "strcpy"; + __gen_e_acsl_assert_data_6.line = 367; + __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __e_acsl_initialize((void *)dest,__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcpy_src_size); @@ -757,12 +777,25 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__2); } - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strcpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",374); - __e_acsl_delete_block((void *)(& src)); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Postcondition"; + __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_8.fct = "strcpy"; + __gen_e_acsl_assert_data_8.line = 374; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_delete_block((void *)(& src)); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } /*@ requires valid_string_s: valid_read_string(s); @@ -771,24 +804,24 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) \from s, (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: c); behavior found: - assumes char_found: strchr(s, c) ≡ \true; - ensures result_char: *\result ≡ (char)\old(c); - ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s)); + assumes char_found: strchr(s, c) == \true; + ensures result_char: *\result == (char)\old(c); + ensures result_same_base: \base_addr(\result) == \base_addr(\old(s)); ensures - result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s)); + result_in_length: \old(s) <= \result <= \old(s) + strlen(\old(s)); ensures result_valid_string: valid_read_string(\result); ensures result_first_occur: - ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c); + \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c); behavior not_found: - assumes char_not_found: ¬(strchr(s, c) ≡ \true); - ensures result_null: \result ≡ \null; + assumes char_not_found: !(strchr(s, c) == \true); + ensures result_null: \result == \null; behavior default: ensures result_null_or_same_base: - \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s)); + \result == \null || \base_addr(\result) == \base_addr(\old(s)); */ char *__gen_e_acsl_strchr(char const *s, int c) { @@ -815,10 +848,26 @@ char *__gen_e_acsl_strchr(char const *s, int c) int __gen_e_acsl_and; void *__gen_e_acsl_base_addr; void *__gen_e_acsl_base_addr_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_2,"*\\result", + 0,*__retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\old(c)",0, + __gen_e_acsl_at); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&__retres", + (void *)(& __retres)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& __retres), sizeof(char *)); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"__retres", + (void *)__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__retres, sizeof(char), (void *)__retres, @@ -826,42 +875,89 @@ char *__gen_e_acsl_strchr(char const *s, int c) __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"RTE","strchr", - "mem_access: \\valid_read(__retres)", - "FRAMAC_SHARE/libc/string.h",177); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(__retres)"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "strchr"; + __gen_e_acsl_assert_data_3.line = 177; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gen_e_acsl_base_addr = __e_acsl_base_addr((void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "\\base_addr(\\result)", + __gen_e_acsl_base_addr); __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)__gen_e_acsl_at_2); - __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,1, - "Postcondition","strchr", - "found: result_same_base: \\base_addr(\\result) == \\base_addr(\\old(s))", - "FRAMAC_SHARE/libc/string.h",178); - __e_acsl_assert((int)*__retres == (int)((char)__gen_e_acsl_at),1, - "Postcondition","strchr", - "found: result_char: *\\result == (char)\\old(c)", - "FRAMAC_SHARE/libc/string.h",177); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "\\base_addr(\\old(s))", + __gen_e_acsl_base_addr_2); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "found: result_same_base: \\base_addr(\\result) == \\base_addr(\\old(s))"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strchr"; + __gen_e_acsl_assert_data_4.line = 178; + __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "found: result_char: *\\result == (char)\\old(c)"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_2.fct = "strchr"; + __gen_e_acsl_assert_data_2.line = 177; + __e_acsl_assert((int)*__retres == (int)((char)__gen_e_acsl_at), + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1, - "Postcondition","strchr", - "not_found: result_null: \\result == \\null", - "FRAMAC_SHARE/libc/string.h", - 184); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result", + (void *)__retres); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Postcondition"; + __gen_e_acsl_assert_data_8.pred_txt = "not_found: result_null: \\result == \\null"; + __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_8.fct = "strchr"; + __gen_e_acsl_assert_data_8.line = 184; + __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_or; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"\\result", + (void *)__retres); if (__retres == (char *)0) __gen_e_acsl_or = 1; else { void *__gen_e_acsl_base_addr_3; void *__gen_e_acsl_base_addr_4; __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "\\base_addr(\\result)", + __gen_e_acsl_base_addr_3); __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)__gen_e_acsl_at_4); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "\\base_addr(\\old(s))", + __gen_e_acsl_base_addr_4); __gen_e_acsl_or = __gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4; } - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","strchr", - "default: result_null_or_same_base:\n \\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))", - "FRAMAC_SHARE/libc/string.h",187); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Postcondition"; + __gen_e_acsl_assert_data_9.pred_txt = "default: result_null_or_same_base:\n \\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))"; + __gen_e_acsl_assert_data_9.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_9.fct = "strchr"; + __gen_e_acsl_assert_data_9.line = 187; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& s)); @@ -871,7 +967,7 @@ char *__gen_e_acsl_strchr(char const *s, int c) } /*@ requires valid_string_s: valid_read_string(s); - ensures acsl_c_equiv: \result ≡ strlen(\old(s)); + ensures acsl_c_equiv: \result == strlen(\old(s)); assigns \result; assigns \result \from (indirect: *(s + (0 ..))); */ @@ -885,8 +981,7 @@ size_t __gen_e_acsl_strlen(char const *s) } /*@ ensures - result_ok_child_or_error: - \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1; + result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1; assigns \result; assigns \result \from \nothing; */ @@ -897,33 +992,49 @@ pid_t __gen_e_acsl_fork(void) { int __gen_e_acsl_or; int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); if (__retres == 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or = __retres > 0; + } if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres == -1; - __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork", - "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1", - "FRAMAC_SHARE/libc/unistd.h",846); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __gen_e_acsl_or_2 = __retres == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; + __gen_e_acsl_assert_data.fct = "fork"; + __gen_e_acsl_assert_data.line = 846; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } -/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0; +/*@ ensures result_ok_or_error: \result == -1 || \result >= 0; ensures initialization: stat_loc_init_on_success: - \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒ + \result >= 0 && \old(stat_loc) != \null ==> \initialized(\old(stat_loc)); assigns \result, *stat_loc; assigns \result \from (indirect: options); assigns *stat_loc \from (indirect: options); behavior stat_loc_null: - assumes stat_loc_null: stat_loc ≡ \null; + assumes stat_loc_null: stat_loc == \null; assigns \result; assigns \result \from \nothing; behavior stat_loc_non_null: - assumes stat_loc_non_null: stat_loc ≢ \null; + assumes stat_loc_non_null: stat_loc != \null; requires valid_stat_loc: \valid(stat_loc); */ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) @@ -944,12 +1055,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc", + (void *)stat_loc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid", - "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(stat_loc)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data.fct = "waitpid"; + __gen_e_acsl_assert_data.line = 92; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } } __gen_e_acsl_at_2 = stat_loc; @@ -959,30 +1083,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) int __gen_e_acsl_or; int __gen_e_acsl_and; int __gen_e_acsl_implies; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); if (__retres == -1) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres >= 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid", - "result_ok_or_error: \\result == -1 || \\result >= 0", - "FRAMAC_SHARE/libc/sys/wait.h",84); - if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0, + __retres); + __gen_e_acsl_or = __retres >= 0; + } + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_2.fct = "waitpid"; + __gen_e_acsl_assert_data_2.line = 84; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0, + __retres); + if (__retres >= 0) { + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)",(void *)__gen_e_acsl_at); + __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; + } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\old(stat_loc)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(\\old(stat_loc))",0, + __gen_e_acsl_initialized); __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid", - "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", - "FRAMAC_SHARE/libc/sys/wait.h",86); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h"; + __gen_e_acsl_assert_data_3.fct = "waitpid"; + __gen_e_acsl_assert_data_3.line = 86; + __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } } -/*@ exits status: \exit_status ≡ \old(status); +/*@ exits status: \exit_status == \old(status); ensures never_terminates: \false; assigns \exit_status \from status; @@ -990,12 +1148,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) void __gen_e_acsl_exit(int status) { exit(status); - __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",473); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "exit"; + __gen_e_acsl_assert_data.line = 473; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } -/*@ exits status: \exit_status ≢ 0; +/*@ exits status: \exit_status != 0; ensures never_terminates: \false; assigns \exit_status \from \nothing; @@ -1003,9 +1169,17 @@ void __gen_e_acsl_exit(int status) void __gen_e_acsl_abort(void) { abort(); - __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false", - "FRAMAC_SHARE/libc/stdlib.h",460); - return; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "abort"; + __gen_e_acsl_assert_data.line = 460; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + return; + } } void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c index 503129bceba33b627a22a9386a48a758b218b2bb..282d9405c7d905f91ee3bc6794718c5a6d23d81c 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -29,39 +30,100 @@ int main(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)buf", + (void *)(buf)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); __gen_e_acsl_size = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf + 1 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized(&buf[0 .. 3])", - "tests/format/sprintf.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&buf[0 .. 3])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&buf[0 .. 3])"; + __gen_e_acsl_assert_data.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&buf[0 .. 3]); */ ; + /*@ assert !\initialized(&buf[0 .. 3]); */ ; __e_acsl_builtin_sprintf("d",buf,__gen_e_acsl_literal_string,10); { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(char *)buf",(void *)(buf)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); __gen_e_acsl_size_2 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(buf + 1 * 0), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(&buf[0 .. 2])","tests/format/sprintf.c", - 13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&buf[0 .. 2])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&buf[0 .. 2])"; + __gen_e_acsl_assert_data_2.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&buf[0 .. 2]); */ ; { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[3]", + (void *)(& buf[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main", - "!\\initialized(&buf[3])","tests/format/sprintf.c",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&buf[3])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\initialized(&buf[3])"; + __gen_e_acsl_assert_data_3.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(! __gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\initialized(&buf[3]); */ ; + /*@ assert !\initialized(&buf[3]); */ ; __e_acsl_delete_block((void *)(buf)); } { @@ -71,52 +133,128 @@ int main(void) int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "(char *)buf_0",(void *)(buf_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(buf_0 + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized(&buf_0[0 .. 3])", - "tests/format/sprintf.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&buf_0[0 .. 3])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&buf_0[0 .. 3])"; + __gen_e_acsl_assert_data_4.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized(&buf_0[0 .. 3]); */ ; + /*@ assert !\initialized(&buf_0[0 .. 3]); */ ; __e_acsl_builtin_snprintf("d",buf_0,(unsigned long)2, __gen_e_acsl_literal_string,10); { int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "(char *)buf_0",(void *)(buf_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); __gen_e_acsl_size_4 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(buf_0 + 1 * 0), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(&buf_0[0 .. 1])", - "tests/format/sprintf.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&buf_0[0 .. 1])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf_0[0 .. 1])"; + __gen_e_acsl_assert_data_5.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 21; + __e_acsl_assert(__gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \initialized(&buf_0[0 .. 1]); */ ; { int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&buf_0[2]", + (void *)(& buf_0[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& buf_0[2]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main", - "!\\initialized(&buf_0[2])","tests/format/sprintf.c", - 22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&buf_0[2])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&buf_0[2])"; + __gen_e_acsl_assert_data_6.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 22; + __e_acsl_assert(! __gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\initialized(&buf_0[2]); */ ; + /*@ assert !\initialized(&buf_0[2]); */ ; { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&buf_0[3]", + (void *)(& buf_0[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& buf_0[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main", - "!\\initialized(&buf_0[3])","tests/format/sprintf.c", - 23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&buf_0[3])",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf_0[3])"; + __gen_e_acsl_assert_data_7.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 23; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&buf_0[3]); */ ; + /*@ assert !\initialized(&buf_0[3]); */ ; __e_acsl_delete_block((void *)(buf_0)); } { @@ -126,43 +264,104 @@ int main(void) int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "(char *)buf_1",(void *)(buf_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf_1 + 1 * 0), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized(&buf_1[0 .. 3])", - "tests/format/sprintf.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&buf_1[0 .. 3])",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&buf_1[0 .. 3])"; + __gen_e_acsl_assert_data_8.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 27; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized(&buf_1[0 .. 3]); */ ; + /*@ assert !\initialized(&buf_1[0 .. 3]); */ ; __e_acsl_builtin_snprintf("d",buf_1,(unsigned long)4, __gen_e_acsl_literal_string,10); { int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "(char *)buf_1",(void *)(buf_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); __gen_e_acsl_size_6 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(buf_1 + 1 * 0), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main", - "\\initialized(&buf_1[0 .. 2])", - "tests/format/sprintf.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&buf_1[0 .. 2])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&buf_1[0 .. 2])"; + __gen_e_acsl_assert_data_9.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 30; + __e_acsl_assert(__gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&buf_1[0 .. 2]); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&buf_1[3]", + (void *)(& buf_1[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& buf_1[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main", - "!\\initialized(&buf_1[3])","tests/format/sprintf.c", - 31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&buf_1[3])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&buf_1[3])"; + __gen_e_acsl_assert_data_10.file = "tests/format/sprintf.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 31; + __e_acsl_assert(! __gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&buf_1[3]); */ ; + /*@ assert !\initialized(&buf_1[3]); */ ; __e_acsl_delete_block((void *)(buf_1)); } __retres = 0; diff --git a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle index b09140dee729c28a7f1f65cee93f96e57c0e5fdc..7e89d6bf65fb59bc622fec23ce63f326b7028103 100644 --- a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle @@ -24,7 +24,7 @@ E-ACSL construct `non integer variable p in quantification result_first_occur: - ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c)' + \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c)' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/__fc_string_axiomatic.h:281: Warning: @@ -86,7 +86,7 @@ E-ACSL construct `non integer variable p in quantification found: result_first_occur: - ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c)' + \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c)' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: @@ -120,5 +120,11 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [kernel:annot:missing-spec] tests/format/printf.c:184: Warning: Neither code nor specification for function __e_acsl_builtin_printf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle index 0c12cd746446f71822a636b6555149d9e02b32c3..3d6f9fdfa0467ee91f4a90944f34b3f1a8f3973e 100644 --- a/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle @@ -1,27 +1,69 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/format/sprintf.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [kernel:annot:missing-spec] tests/format/sprintf.c:12: Warning: Neither code nor specification for function __e_acsl_builtin_sprintf, generating default assigns from the prototype +[eva:alarm] tests/format/sprintf.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:13: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/format/sprintf.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:14: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [kernel:annot:missing-spec] tests/format/sprintf.c:20: Warning: Neither code nor specification for function __e_acsl_builtin_snprintf, generating default assigns from the prototype +[eva:alarm] tests/format/sprintf.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:21: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/format/sprintf.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:22: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:22: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/format/sprintf.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:23: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:23: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/format/sprintf.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:30: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:30: Warning: assertion got status unknown. +[eva:alarm] tests/format/sprintf.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/format/sprintf.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/format/sprintf.c:31: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/format/sprintf.c:31: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle b/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle index efd026311297e55d8fefb674326118e6ece88624..02c028e57b37bf176f79c4312f1d5bf0672b8139 100644 --- a/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle @@ -1,2 +1,11 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/full-mtracking/addrOf.i:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/full-mtracking/addrOf.i:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/full-mtracking/addrOf.i:16: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c index a27503d98f33e0ad1f9e31e6b310db1832d552b0..f2d51f64a84290fb97e91c939f81ac2500235b07 100644 --- a/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -20,9 +20,22 @@ void f(void) m = 123; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","f", - "\\initialized(p)","tests/full-mtracking/addrOf.i",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(p)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data.file = "tests/full-mtracking/addrOf.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(p); */ ; __e_acsl_delete_block((void *)(& p)); @@ -58,9 +71,22 @@ int main(void) __e_acsl_store_block((void *)(& x),(size_t)4); __e_acsl_full_init((void *)(& x)); f(); - __e_acsl_assert(& x == & x,1,"Assertion","main","&x == &x", - "tests/full-mtracking/addrOf.i",16); - /*@ assert &x ≡ &x; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x", + (void *)(& x)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x", + (void *)(& x)); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "&x == &x"; + __gen_e_acsl_assert_data.file = "tests/full-mtracking/addrOf.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(& x == & x,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert &x == &x; */ ; __e_acsl_full_init((void *)(& __retres)); __retres = 0; __e_acsl_delete_block((void *)(& x)); diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle index 12b6fcfafd95175f8c35b05a609a8e7e2d10c053..3456eb769ba9034088bc9d48a95baca9ba9b76c5 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle +++ b/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle @@ -22,6 +22,15 @@ function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/arith.i:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/arith.i:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/arith.i:23: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/arith.i:25: Warning: @@ -34,13 +43,28 @@ function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/arith.i:30: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/arith.i:31: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/gmp-only/arith.i:31: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/arith.i:34: Warning: + function __e_acsl_assert_copy_values: precondition dest->values == \null || + \valid(dest->values) got status unknown. +[eva:alarm] tests/gmp-only/arith.i:34: Warning: + function __e_acsl_assert_copy_values: precondition src->values == \null || + \valid(src->values) got status unknown. [eva:alarm] tests/gmp-only/arith.i:34: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/arith.i:34: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/arith.i:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/arith.i:36: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/arith.i:39: Warning: + function __e_acsl_assert_register_short: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/arith.i:39: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle b/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle index 9e705f4214b48187b8fb34af9a1960cecd4e97d9..064c37083a586cf992e5c6d56f3113c616107b6a 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle +++ b/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle @@ -1,33 +1,81 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/gmp-only/functions.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:44: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/functions.c:45: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/functions.c:46: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:48: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:48: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:49: Warning: accessing uninitialized left-value. assert \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_f1_4); +[eva:alarm] tests/gmp-only/functions.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:49: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/functions.c:50: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/functions.c:51: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:56: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:56: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:56: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:59: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:59: Warning: + function __e_acsl_assert_register_char: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:59: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:61: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:61: Warning: + function __e_acsl_assert_register_short: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:61: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:66: Warning: + function __e_acsl_assert_register_struct: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/gmp-only/functions.c:66: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:66: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/gmp-only/functions.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:27: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/gmp-only/functions.c:71: Warning: non-finite double value. assert \is_finite(__gen_e_acsl_cast); +[eva:alarm] tests/gmp-only/functions.c:71: Warning: + function __e_acsl_assert_register_double: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/gmp-only/functions.c:71: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c index 8c713255a9883ae0820182f496162daa1a888346..f9807ffa999ef06c998dd745cb7fc5a18b0a106a 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c +++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c @@ -1,12 +1,13 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = -3; int y = 2; long z = 2L; @@ -15,24 +16,35 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_neg; __e_acsl_mpz_t __gen_e_acsl_x; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl_,3L); __gmpz_init(__gen_e_acsl_neg); __gmpz_neg(__gen_e_acsl_neg,(__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x,(long)x); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg), (__e_acsl_mpz_struct const *)(__gen_e_acsl_x)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","-3 == x", - "tests/gmp-only/arith.i",10); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "-3 == x"; + __gen_e_acsl_assert_data.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_neg); __gmpz_clear(__gen_e_acsl_x); } - /*@ assert -3 ≡ x; */ ; + /*@ assert -3 == x; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_2; __e_acsl_mpz_t __gen_e_acsl__2; __e_acsl_mpz_t __gen_e_acsl_neg_2; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_2,(long)x); __gmpz_init_set_si(__gen_e_acsl__2,3L); __gmpz_init(__gen_e_acsl_neg_2); @@ -40,29 +52,42 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_x_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_2)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","x == -3", - "tests/gmp-only/arith.i",11); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "x == -3"; + __gen_e_acsl_assert_data_2.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl_x_2); __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_neg_2); } - /*@ assert x ≡ -3; */ ; + /*@ assert x == -3; */ ; { __e_acsl_mpz_t __gen_e_acsl__3; __e_acsl_mpz_t __gen_e_acsl_bnot; int __gen_e_acsl_ne; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__3,0L); __gmpz_init(__gen_e_acsl_bnot); __gmpz_com(__gen_e_acsl_bnot, (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__3), (__e_acsl_mpz_struct const *)(__gen_e_acsl_bnot)); - __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main","0 != ~0", - "tests/gmp-only/arith.i",12); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "0 != ~0"; + __gen_e_acsl_assert_data_3.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 12; + __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl__3); __gmpz_clear(__gen_e_acsl_bnot); } - /*@ assert 0 ≢ ~0; */ ; + /*@ assert 0 != ~0; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_3; __e_acsl_mpz_t __gen_e_acsl__4; @@ -70,6 +95,9 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__5; __e_acsl_mpz_t __gen_e_acsl_neg_3; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_3,(long)x); __gmpz_init_set_si(__gen_e_acsl__4,1L); __gmpz_init(__gen_e_acsl_add); @@ -82,15 +110,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_3)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main", - "x + 1 == -2","tests/gmp-only/arith.i",14); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "x + 1 == -2"; + __gen_e_acsl_assert_data_4.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_x_3); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__5); __gmpz_clear(__gen_e_acsl_neg_3); } - /*@ assert x + 1 ≡ -2; */ ; + /*@ assert x + 1 == -2; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_4; __e_acsl_mpz_t __gen_e_acsl__6; @@ -98,6 +132,9 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__7; __e_acsl_mpz_t __gen_e_acsl_neg_4; int __gen_e_acsl_eq_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_4,(long)x); __gmpz_init_set_si(__gen_e_acsl__6,1L); __gmpz_init(__gen_e_acsl_sub); @@ -110,15 +147,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_4)); - __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main", - "x - 1 == -4","tests/gmp-only/arith.i",15); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "x - 1 == -4"; + __gen_e_acsl_assert_data_5.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gmpz_clear(__gen_e_acsl_x_4); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_sub); __gmpz_clear(__gen_e_acsl__7); __gmpz_clear(__gen_e_acsl_neg_4); } - /*@ assert x - 1 ≡ -4; */ ; + /*@ assert x - 1 == -4; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_5; __e_acsl_mpz_t __gen_e_acsl__8; @@ -126,6 +169,9 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__9; __e_acsl_mpz_t __gen_e_acsl_neg_5; int __gen_e_acsl_eq_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_5,(long)x); __gmpz_init_set_si(__gen_e_acsl__8,3L); __gmpz_init(__gen_e_acsl_mul); @@ -138,15 +184,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_5)); - __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main", - "x * 3 == -9","tests/gmp-only/arith.i",16); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "x * 3 == -9"; + __gen_e_acsl_assert_data_6.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 16; + __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gmpz_clear(__gen_e_acsl_x_5); __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl_mul); __gmpz_clear(__gen_e_acsl__9); __gmpz_clear(__gen_e_acsl_neg_5); } - /*@ assert x * 3 ≡ -9; */ ; + /*@ assert x * 3 == -9; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_6; __e_acsl_mpz_t __gen_e_acsl__10; @@ -156,15 +208,28 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__12; __e_acsl_mpz_t __gen_e_acsl_neg_6; int __gen_e_acsl_eq_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_6,(long)x); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__10,3L); __gmpz_init_set_si(__gen_e_acsl__11,0L); __gen_e_acsl_div_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10), (__e_acsl_mpz_struct const *)(__gen_e_acsl__11)); __gmpz_init(__gen_e_acsl_div); - /*@ assert E_ACSL: 3 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard != 0,1,"Assertion","main", - "3 != 0","tests/gmp-only/arith.i",17); + /*@ assert E_ACSL: 3 != 0; */ + { + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "3 != 0"; + __gen_e_acsl_assert_data_8.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 17; + __e_acsl_assert(__gen_e_acsl_div_guard != 0, + & __gen_e_acsl_assert_data_8); + } __gmpz_tdiv_q(__gen_e_acsl_div, (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__10)); @@ -174,8 +239,14 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); __gen_e_acsl_eq_6 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_6)); - __e_acsl_assert(__gen_e_acsl_eq_6 == 0,1,"Assertion","main", - "x / 3 == -1","tests/gmp-only/arith.i",17); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "x / 3 == -1"; + __gen_e_acsl_assert_data_7.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 17; + __e_acsl_assert(__gen_e_acsl_eq_6 == 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gmpz_clear(__gen_e_acsl_x_6); __gmpz_clear(__gen_e_acsl__10); __gmpz_clear(__gen_e_acsl__11); @@ -183,7 +254,7 @@ int main(void) __gmpz_clear(__gen_e_acsl__12); __gmpz_clear(__gen_e_acsl_neg_6); } - /*@ assert x / 3 ≡ -1; */ ; + /*@ assert x / 3 == -1; */ ; { __e_acsl_mpz_t __gen_e_acsl__13; __e_acsl_mpz_t __gen_e_acsl__14; @@ -191,30 +262,45 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_div_2; __e_acsl_mpz_t __gen_e_acsl__15; int __gen_e_acsl_eq_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__13,"309485009821345068724781055",10); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__14,0L); __gen_e_acsl_div_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__13), (__e_acsl_mpz_struct const *)(__gen_e_acsl__14)); __gmpz_init(__gen_e_acsl_div_2); - /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,1,"Assertion","main", - "0xffffffffffffffffffffff != 0","tests/gmp-only/arith.i", - 18); + /*@ assert E_ACSL: 0xffffffffffffffffffffff != 0; */ + { + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "0xffffffffffffffffffffff != 0"; + __gen_e_acsl_assert_data_10.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 18; + __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0, + & __gen_e_acsl_assert_data_10); + } __gmpz_tdiv_q(__gen_e_acsl_div_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl__13), (__e_acsl_mpz_struct const *)(__gen_e_acsl__13)); __gmpz_init_set_si(__gen_e_acsl__15,1L); __gen_e_acsl_eq_7 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__15)); - __e_acsl_assert(__gen_e_acsl_eq_7 == 0,1,"Assertion","main", - "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1", - "tests/gmp-only/arith.i",18); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1"; + __gen_e_acsl_assert_data_9.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 18; + __e_acsl_assert(__gen_e_acsl_eq_7 == 0,& __gen_e_acsl_assert_data_9); __gmpz_clear(__gen_e_acsl__13); __gmpz_clear(__gen_e_acsl__14); __gmpz_clear(__gen_e_acsl_div_2); __gmpz_clear(__gen_e_acsl__15); } - /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff ≡ 1; */ ; + /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_7; __e_acsl_mpz_t __gen_e_acsl__16; @@ -224,15 +310,28 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__18; __e_acsl_mpz_t __gen_e_acsl_neg_7; int __gen_e_acsl_eq_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_7,(long)x); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__16,2L); __gmpz_init_set_si(__gen_e_acsl__17,0L); __gen_e_acsl_mod_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__16), (__e_acsl_mpz_struct const *)(__gen_e_acsl__17)); __gmpz_init(__gen_e_acsl_mod); - /*@ assert E_ACSL: 2 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_mod_guard != 0,1,"Assertion","main", - "2 != 0","tests/gmp-only/arith.i",19); + /*@ assert E_ACSL: 2 != 0; */ + { + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "2 != 0"; + __gen_e_acsl_assert_data_12.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 19; + __e_acsl_assert(__gen_e_acsl_mod_guard != 0, + & __gen_e_acsl_assert_data_12); + } __gmpz_tdiv_r(__gen_e_acsl_mod, (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_7), (__e_acsl_mpz_struct const *)(__gen_e_acsl__16)); @@ -242,8 +341,14 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__18)); __gen_e_acsl_eq_8 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_7)); - __e_acsl_assert(__gen_e_acsl_eq_8 == 0,1,"Assertion","main", - "x % 2 == -1","tests/gmp-only/arith.i",19); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "x % 2 == -1"; + __gen_e_acsl_assert_data_11.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 19; + __e_acsl_assert(__gen_e_acsl_eq_8 == 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gmpz_clear(__gen_e_acsl_x_7); __gmpz_clear(__gen_e_acsl__16); __gmpz_clear(__gen_e_acsl__17); @@ -251,7 +356,7 @@ int main(void) __gmpz_clear(__gen_e_acsl__18); __gmpz_clear(__gen_e_acsl_neg_7); } - /*@ assert x % 2 ≡ -1; */ ; + /*@ assert x % 2 == -1; */ ; { __e_acsl_mpz_t __gen_e_acsl__19; __e_acsl_mpz_t __gen_e_acsl_neg_8; @@ -263,10 +368,14 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__22; __e_acsl_mpz_t __gen_e_acsl_neg_10; int __gen_e_acsl_eq_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__19,3L); __gmpz_init(__gen_e_acsl_neg_8); __gmpz_neg(__gen_e_acsl_neg_8, (__e_acsl_mpz_struct const *)(__gen_e_acsl__19)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__20,2L); __gmpz_init(__gen_e_acsl_neg_9); __gmpz_neg(__gen_e_acsl_neg_9, @@ -275,9 +384,17 @@ int main(void) __gen_e_acsl_mod_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_9), (__e_acsl_mpz_struct const *)(__gen_e_acsl__21)); __gmpz_init(__gen_e_acsl_mod_2); - /*@ assert E_ACSL: -2 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_mod_guard_2 != 0,1,"Assertion","main", - "-2 != 0","tests/gmp-only/arith.i",20); + /*@ assert E_ACSL: -2 != 0; */ + { + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "-2 != 0"; + __gen_e_acsl_assert_data_14.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 20; + __e_acsl_assert(__gen_e_acsl_mod_guard_2 != 0, + & __gen_e_acsl_assert_data_14); + } __gmpz_tdiv_r(__gen_e_acsl_mod_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_9)); @@ -287,8 +404,13 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__22)); __gen_e_acsl_eq_9 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_10)); - __e_acsl_assert(__gen_e_acsl_eq_9 == 0,1,"Assertion","main", - "-3 % -2 == -1","tests/gmp-only/arith.i",20); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "-3 % -2 == -1"; + __gen_e_acsl_assert_data_13.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 20; + __e_acsl_assert(__gen_e_acsl_eq_9 == 0,& __gen_e_acsl_assert_data_13); __gmpz_clear(__gen_e_acsl__19); __gmpz_clear(__gen_e_acsl_neg_8); __gmpz_clear(__gen_e_acsl__20); @@ -298,7 +420,7 @@ int main(void) __gmpz_clear(__gen_e_acsl__22); __gmpz_clear(__gen_e_acsl_neg_10); } - /*@ assert -3 % -2 ≡ -1; */ ; + /*@ assert -3 % -2 == -1; */ ; { __e_acsl_mpz_t __gen_e_acsl__23; __e_acsl_mpz_t __gen_e_acsl__24; @@ -308,7 +430,11 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_mod_3; __e_acsl_mpz_t __gen_e_acsl__26; int __gen_e_acsl_eq_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__23,3L); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__24,2L); __gmpz_init(__gen_e_acsl_neg_11); __gmpz_neg(__gen_e_acsl_neg_11, @@ -317,17 +443,30 @@ int main(void) __gen_e_acsl_mod_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_11), (__e_acsl_mpz_struct const *)(__gen_e_acsl__25)); __gmpz_init(__gen_e_acsl_mod_3); - /*@ assert E_ACSL: -2 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_mod_guard_3 != 0,1,"Assertion","main", - "-2 != 0","tests/gmp-only/arith.i",21); + /*@ assert E_ACSL: -2 != 0; */ + { + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "-2 != 0"; + __gen_e_acsl_assert_data_16.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 21; + __e_acsl_assert(__gen_e_acsl_mod_guard_3 != 0, + & __gen_e_acsl_assert_data_16); + } __gmpz_tdiv_r(__gen_e_acsl_mod_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl__23), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_11)); __gmpz_init_set_si(__gen_e_acsl__26,1L); __gen_e_acsl_eq_10 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__26)); - __e_acsl_assert(__gen_e_acsl_eq_10 == 0,1,"Assertion","main", - "3 % -2 == 1","tests/gmp-only/arith.i",21); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "3 % -2 == 1"; + __gen_e_acsl_assert_data_15.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 21; + __e_acsl_assert(__gen_e_acsl_eq_10 == 0,& __gen_e_acsl_assert_data_15); __gmpz_clear(__gen_e_acsl__23); __gmpz_clear(__gen_e_acsl__24); __gmpz_clear(__gen_e_acsl_neg_11); @@ -335,7 +474,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_mod_3); __gmpz_clear(__gen_e_acsl__26); } - /*@ assert 3 % -2 ≡ 1; */ ; + /*@ assert 3 % -2 == 1; */ ; { __e_acsl_mpz_t __gen_e_acsl_x_8; __e_acsl_mpz_t __gen_e_acsl__27; @@ -351,6 +490,9 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl__30; __e_acsl_mpz_t __gen_e_acsl_neg_12; int __gen_e_acsl_eq_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_8,(long)x); __gmpz_init_set_si(__gen_e_acsl__27,2L); __gmpz_init(__gen_e_acsl_mul_2); @@ -358,6 +500,7 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__27)); __gmpz_init_set_si(__gen_e_acsl__28,3L); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y); __gmpz_init_set_si(__gen_e_acsl_y,(long)y); __gmpz_init(__gen_e_acsl_add_2); __gmpz_add(__gen_e_acsl_add_2, @@ -372,6 +515,8 @@ int main(void) __gmpz_sub(__gen_e_acsl_sub_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__29)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y); __gmpz_init(__gen_e_acsl_sub_3); __gmpz_sub(__gen_e_acsl_sub_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_8), @@ -386,9 +531,14 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__30)); __gen_e_acsl_eq_11 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_4), (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_12)); - __e_acsl_assert(__gen_e_acsl_eq_11 == 0,1,"Assertion","main", - "((x * 2 + (3 + y)) - 4) + (x - y) == -10", - "tests/gmp-only/arith.i",23); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "((x * 2 + (3 + y)) - 4) + (x - y) == -10"; + __gen_e_acsl_assert_data_17.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 23; + __e_acsl_assert(__gen_e_acsl_eq_11 == 0,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); __gmpz_clear(__gen_e_acsl_x_8); __gmpz_clear(__gen_e_acsl__27); __gmpz_clear(__gen_e_acsl_mul_2); @@ -403,7 +553,7 @@ int main(void) __gmpz_clear(__gen_e_acsl__30); __gmpz_clear(__gen_e_acsl_neg_12); } - /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) ≡ -10; */ ; + /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) == -10; */ ; { __e_acsl_mpz_t __gen_e_acsl__31; __e_acsl_mpz_t __gen_e_acsl__32; @@ -414,6 +564,8 @@ int main(void) int __gen_e_acsl_not; __e_acsl_mpz_t __gen_e_acsl__35; int __gen_e_acsl_eq_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__31,0L); __gmpz_init_set_si(__gen_e_acsl__32,1L); __gen_e_acsl_eq_12 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__31), @@ -427,15 +579,20 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__35,(long)(__gen_e_acsl_not == 0)); __gen_e_acsl_eq_14 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__33), (__e_acsl_mpz_struct const *)(__gen_e_acsl__35)); - __e_acsl_assert(__gen_e_acsl_eq_14 == 0,1,"Assertion","main", - "(0 == 1) == !(0 == 0)","tests/gmp-only/arith.i",25); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "(0 == 1) == !(0 == 0)"; + __gen_e_acsl_assert_data_18.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 25; + __e_acsl_assert(__gen_e_acsl_eq_14 == 0,& __gen_e_acsl_assert_data_18); __gmpz_clear(__gen_e_acsl__31); __gmpz_clear(__gen_e_acsl__32); __gmpz_clear(__gen_e_acsl__33); __gmpz_clear(__gen_e_acsl__34); __gmpz_clear(__gen_e_acsl__35); } - /*@ assert (0 ≡ 1) ≡ !(0 ≡ 0); */ ; + /*@ assert (0 == 1) == !(0 == 0); */ ; { __e_acsl_mpz_t __gen_e_acsl__36; __e_acsl_mpz_t __gen_e_acsl__37; @@ -445,6 +602,8 @@ int main(void) int __gen_e_acsl_gt; __e_acsl_mpz_t __gen_e_acsl__39; int __gen_e_acsl_eq_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__36,0L); __gmpz_init_set_si(__gen_e_acsl__37,1L); __gmpz_init(__gen_e_acsl_neg_13); @@ -458,15 +617,20 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__39,(long)(__gen_e_acsl_gt > 0)); __gen_e_acsl_eq_15 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__38), (__e_acsl_mpz_struct const *)(__gen_e_acsl__39)); - __e_acsl_assert(__gen_e_acsl_eq_15 == 0,1,"Assertion","main", - "(0 <= -1) == (0 > 0)","tests/gmp-only/arith.i",26); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "(0 <= -1) == (0 > 0)"; + __gen_e_acsl_assert_data_19.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 26; + __e_acsl_assert(__gen_e_acsl_eq_15 == 0,& __gen_e_acsl_assert_data_19); __gmpz_clear(__gen_e_acsl__36); __gmpz_clear(__gen_e_acsl__37); __gmpz_clear(__gen_e_acsl_neg_13); __gmpz_clear(__gen_e_acsl__38); __gmpz_clear(__gen_e_acsl__39); } - /*@ assert (0 ≤ -1) ≡ (0 > 0); */ ; + /*@ assert (0 <= -1) == (0 > 0); */ ; { __e_acsl_mpz_t __gen_e_acsl__40; __e_acsl_mpz_t __gen_e_acsl__41; @@ -476,6 +640,8 @@ int main(void) int __gen_e_acsl_le_2; __e_acsl_mpz_t __gen_e_acsl__43; int __gen_e_acsl_eq_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__40,0L); __gmpz_init_set_si(__gen_e_acsl__41,1L); __gmpz_init(__gen_e_acsl_neg_14); @@ -489,15 +655,20 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__43,(long)(__gen_e_acsl_le_2 <= 0)); __gen_e_acsl_eq_16 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__42), (__e_acsl_mpz_struct const *)(__gen_e_acsl__43)); - __e_acsl_assert(__gen_e_acsl_eq_16 == 0,1,"Assertion","main", - "(0 >= -1) == (0 <= 0)","tests/gmp-only/arith.i",27); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "(0 >= -1) == (0 <= 0)"; + __gen_e_acsl_assert_data_20.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 27; + __e_acsl_assert(__gen_e_acsl_eq_16 == 0,& __gen_e_acsl_assert_data_20); __gmpz_clear(__gen_e_acsl__40); __gmpz_clear(__gen_e_acsl__41); __gmpz_clear(__gen_e_acsl_neg_14); __gmpz_clear(__gen_e_acsl__42); __gmpz_clear(__gen_e_acsl__43); } - /*@ assert (0 ≥ -1) ≡ (0 ≤ 0); */ ; + /*@ assert (0 >= -1) == (0 <= 0); */ ; { __e_acsl_mpz_t __gen_e_acsl__44; __e_acsl_mpz_t __gen_e_acsl__45; @@ -508,6 +679,8 @@ int main(void) int __gen_e_acsl_not_2; __e_acsl_mpz_t __gen_e_acsl__48; int __gen_e_acsl_eq_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__44,0L); __gmpz_init_set_si(__gen_e_acsl__45,1L); __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__44), @@ -521,15 +694,20 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__48,(long)(__gen_e_acsl_not_2 == 0)); __gen_e_acsl_eq_17 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__46), (__e_acsl_mpz_struct const *)(__gen_e_acsl__48)); - __e_acsl_assert(__gen_e_acsl_eq_17 == 0,1,"Assertion","main", - "(0 != 1) == !(0 != 0)","tests/gmp-only/arith.i",28); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "(0 != 1) == !(0 != 0)"; + __gen_e_acsl_assert_data_21.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 28; + __e_acsl_assert(__gen_e_acsl_eq_17 == 0,& __gen_e_acsl_assert_data_21); __gmpz_clear(__gen_e_acsl__44); __gmpz_clear(__gen_e_acsl__45); __gmpz_clear(__gen_e_acsl__46); __gmpz_clear(__gen_e_acsl__47); __gmpz_clear(__gen_e_acsl__48); } - /*@ assert (0 ≢ 1) ≡ !(0 ≢ 0); */ ; + /*@ assert (0 != 1) == !(0 != 0); */ ; { __e_acsl_mpz_t __gen_e_acsl__49; int __gen_e_acsl_ne_4; @@ -540,6 +718,8 @@ int main(void) int __gen_e_acsl_not_3; __e_acsl_mpz_t __gen_e_acsl__53; int __gen_e_acsl_eq_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__49,0L); __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__49), (__e_acsl_mpz_struct const *)(__gen_e_acsl__49)); @@ -553,15 +733,20 @@ int main(void) __gmpz_init_set_si(__gen_e_acsl__53,(long)(__gen_e_acsl_not_3 == 0)); __gen_e_acsl_eq_18 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__50), (__e_acsl_mpz_struct const *)(__gen_e_acsl__53)); - __e_acsl_assert(__gen_e_acsl_eq_18 == 0,1,"Assertion","main", - "(0 != 0) == !(1 != 0)","tests/gmp-only/arith.i",30); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "(0 != 0) == !(1 != 0)"; + __gen_e_acsl_assert_data_22.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 30; + __e_acsl_assert(__gen_e_acsl_eq_18 == 0,& __gen_e_acsl_assert_data_22); __gmpz_clear(__gen_e_acsl__49); __gmpz_clear(__gen_e_acsl__50); __gmpz_clear(__gen_e_acsl__51); __gmpz_clear(__gen_e_acsl__52); __gmpz_clear(__gen_e_acsl__53); } - /*@ assert (0 ≢ 0) ≡ !(1 ≢ 0); */ ; + /*@ assert (0 != 0) == !(1 != 0); */ ; { __e_acsl_mpz_t __gen_e_acsl__54; __e_acsl_mpz_t __gen_e_acsl_y_2; @@ -570,30 +755,52 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_div_3; __e_acsl_mpz_t __gen_e_acsl__56; int __gen_e_acsl_eq_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__54,4L); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"y",0,y); __gmpz_init_set_si(__gen_e_acsl_y_2,(long)y); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_23, + & __gen_e_acsl_assert_data_24); __gmpz_init_set_si(__gen_e_acsl__55,0L); __gen_e_acsl_div_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_y_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__55)); __gmpz_init(__gen_e_acsl_div_3); - /*@ assert E_ACSL: y ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard_3 != 0,1,"Assertion","main", - "y != 0","tests/gmp-only/arith.i",31); + /*@ assert E_ACSL: y != 0; */ + { + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "Assertion"; + __gen_e_acsl_assert_data_24.pred_txt = "y != 0"; + __gen_e_acsl_assert_data_24.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 31; + __e_acsl_assert(__gen_e_acsl_div_guard_3 != 0, + & __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); + } __gmpz_tdiv_q(__gen_e_acsl_div_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl__54), (__e_acsl_mpz_struct const *)(__gen_e_acsl_y_2)); __gmpz_init_set_si(__gen_e_acsl__56,2L); __gen_e_acsl_eq_19 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__56)); - __e_acsl_assert(__gen_e_acsl_eq_19 == 0,1,"Assertion","main", - "4 / y == 2","tests/gmp-only/arith.i",31); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "4 / y == 2"; + __gen_e_acsl_assert_data_23.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 31; + __e_acsl_assert(__gen_e_acsl_eq_19 == 0,& __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); __gmpz_clear(__gen_e_acsl__54); __gmpz_clear(__gen_e_acsl_y_2); __gmpz_clear(__gen_e_acsl__55); __gmpz_clear(__gen_e_acsl_div_3); __gmpz_clear(__gen_e_acsl__56); } - /*@ assert 4 / y ≡ 2; */ ; + /*@ assert 4 / y == 2; */ ; { __e_acsl_mpz_t __gen_e_acsl__57; __e_acsl_mpz_t __gen_e_acsl_z; @@ -606,26 +813,42 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_div_4; __e_acsl_mpz_t __gen_e_acsl_add_6; int __gen_e_acsl_eq_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__57,1L); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_25,"z",0,z); __gmpz_init_set_si(__gen_e_acsl_z,z); __gmpz_init(__gen_e_acsl_add_5); __gmpz_add(__gen_e_acsl_add_5, (__e_acsl_mpz_struct const *)(__gen_e_acsl_z), (__e_acsl_mpz_struct const *)(__gen_e_acsl__57)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"y",0,y); __gmpz_init_set_si(__gen_e_acsl_y_3,(long)y); __gmpz_init_set_ui(__gen_e_acsl__58,123456789123456789UL); __gmpz_init(__gen_e_acsl_sub_4); __gmpz_sub(__gen_e_acsl_sub_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_y_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__58)); + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_25, + & __gen_e_acsl_assert_data_26); __gmpz_init_set_si(__gen_e_acsl__59,0L); __gen_e_acsl_div_guard_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4), (__e_acsl_mpz_struct const *)(__gen_e_acsl__59)); __gmpz_init(__gen_e_acsl_div_4); - /*@ assert E_ACSL: y - 123456789123456789 ≢ 0; */ - __e_acsl_assert(__gen_e_acsl_div_guard_4 != 0,1,"Assertion","main", - "y - 123456789123456789 != 0","tests/gmp-only/arith.i", - 34); + /*@ assert E_ACSL: y - 123456789123456789 != 0; */ + { + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "Assertion"; + __gen_e_acsl_assert_data_26.pred_txt = "y - 123456789123456789 != 0"; + __gen_e_acsl_assert_data_26.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_26.fct = "main"; + __gen_e_acsl_assert_data_26.line = 34; + __e_acsl_assert(__gen_e_acsl_div_guard_4 != 0, + & __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); + } __gmpz_tdiv_q(__gen_e_acsl_div_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_5), (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4)); @@ -635,9 +858,14 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_div_4)); __gen_e_acsl_eq_20 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__57)); - __e_acsl_assert(__gen_e_acsl_eq_20 == 0,1,"Assertion","main", - "1 + (z + 1) / (y - 123456789123456789) == 1", - "tests/gmp-only/arith.i",34); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "1 + (z + 1) / (y - 123456789123456789) == 1"; + __gen_e_acsl_assert_data_25.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 34; + __e_acsl_assert(__gen_e_acsl_eq_20 == 0,& __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); __gmpz_clear(__gen_e_acsl__57); __gmpz_clear(__gen_e_acsl_z); __gmpz_clear(__gen_e_acsl_add_5); @@ -648,7 +876,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_div_4); __gmpz_clear(__gen_e_acsl_add_6); } - /*@ assert 1 + (z + 1) / (y - 123456789123456789) ≡ 1; */ ; + /*@ assert 1 + (z + 1) / (y - 123456789123456789) == 1; */ ; { __e_acsl_mpz_t __gen_e_acsl__60; __e_acsl_mpz_t __gen_e_acsl_x_9; @@ -656,12 +884,16 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_neg_15; __e_acsl_mpz_t __gen_e_acsl_add_7; int __gen_e_acsl_eq_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__60,1L); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_9,(long)x); __gmpz_init(__gen_e_acsl_sub_5); __gmpz_sub(__gen_e_acsl_sub_5, (__e_acsl_mpz_struct const *)(__gen_e_acsl__60), (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_9)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"x",0,x); __gmpz_init(__gen_e_acsl_neg_15); __gmpz_neg(__gen_e_acsl_neg_15, (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_9)); @@ -671,15 +903,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl__60)); __gen_e_acsl_eq_21 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_5), (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_7)); - __e_acsl_assert(__gen_e_acsl_eq_21 == 0,1,"Assertion","main", - "1 - x == -x + 1","tests/gmp-only/arith.i",36); + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "Assertion"; + __gen_e_acsl_assert_data_27.pred_txt = "1 - x == -x + 1"; + __gen_e_acsl_assert_data_27.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_27.fct = "main"; + __gen_e_acsl_assert_data_27.line = 36; + __e_acsl_assert(__gen_e_acsl_eq_21 == 0,& __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); __gmpz_clear(__gen_e_acsl__60); __gmpz_clear(__gen_e_acsl_x_9); __gmpz_clear(__gen_e_acsl_sub_5); __gmpz_clear(__gen_e_acsl_neg_15); __gmpz_clear(__gen_e_acsl_add_7); } - /*@ assert 1 - x ≡ -x + 1; */ ; + /*@ assert 1 - x == -x + 1; */ ; short a = (short)1; short b = (short)1; { @@ -692,7 +930,11 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl__64; __e_acsl_mpq_t __gen_e_acsl_sub_6; int __gen_e_acsl_gt_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 = + {.values = (void *)0}; + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_28,"a",0,a); __gmpz_init_set_si(__gen_e_acsl_a,(long)a); + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_28,"b",0,b); __gmpz_init_set_si(__gen_e_acsl_b,(long)b); __gmpq_init(__gen_e_acsl__61); __gmpq_set_z(__gen_e_acsl__61, @@ -714,8 +956,14 @@ int main(void) (__e_acsl_mpq_struct const *)(__gen_e_acsl__64)); __gen_e_acsl_gt_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_8), (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub_6)); - __e_acsl_assert(__gen_e_acsl_gt_2 > 0,1,"Assertion","main", - "a + b > 2. - 1.","tests/gmp-only/arith.i",39); + __gen_e_acsl_assert_data_28.blocking = 1; + __gen_e_acsl_assert_data_28.kind = "Assertion"; + __gen_e_acsl_assert_data_28.pred_txt = "a + b > 2. - 1."; + __gen_e_acsl_assert_data_28.file = "tests/gmp-only/arith.i"; + __gen_e_acsl_assert_data_28.fct = "main"; + __gen_e_acsl_assert_data_28.line = 39; + __e_acsl_assert(__gen_e_acsl_gt_2 > 0,& __gen_e_acsl_assert_data_28); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28); __gmpz_clear(__gen_e_acsl_a); __gmpz_clear(__gen_e_acsl_b); __gmpq_clear(__gen_e_acsl__61); @@ -727,6 +975,7 @@ int main(void) } /*@ assert a + b > 2. - 1.; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c index 444c63fc9a928aa135f48d71e25621ee7f88e498..931195d4fbcb84509450c64c2b6bf44c66ec3a04 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c +++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c @@ -1,12 +1,13 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); { __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl__2; @@ -17,6 +18,7 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator; __e_acsl_mpz_t __gen_e_acsl__4; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl_,2L); __gmpz_init_set_si(__gen_e_acsl__2,10L); __gmpz_init_set_si(__gen_e_acsl_one,1L); @@ -51,12 +53,20 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data, + "\\sum(2, 10, \\lambda integer k; 2 * k)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator)); __gmpz_init_set_si(__gen_e_acsl__4,108L); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "\\sum(2, 10, \\lambda integer k; 2 * k) == 108", - "tests/gmp-only/extended_quantifiers.i",7); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\sum(2, 10, \\lambda integer k; 2 * k) == 108"; + __gen_e_acsl_assert_data.file = "tests/gmp-only/extended_quantifiers.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_k); @@ -65,7 +75,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_accumulator); __gmpz_clear(__gen_e_acsl__4); } - /*@ assert \sum(2, 10, \lambda ℤ k; 2 * k) ≡ 108; */ ; + /*@ assert \sum(2, 10, \lambda integer k; 2 * k) == 108; */ ; { __e_acsl_mpz_t __gen_e_acsl__5; __e_acsl_mpz_t __gen_e_acsl__6; @@ -75,6 +85,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_lambda_2; __e_acsl_mpz_t __gen_e_acsl_accumulator_2; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__5,1L); __gmpz_init_set_si(__gen_e_acsl__6,10L); __gmpz_init_set_si(__gen_e_acsl_one_2,1L); @@ -103,11 +115,19 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_2)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "\\sum(1, 10, \\lambda integer k; 1)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2)); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main", - "\\sum(1, 10, \\lambda integer k; 1) == 10", - "tests/gmp-only/extended_quantifiers.i",8); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\sum(1, 10, \\lambda integer k; 1) == 10"; + __gen_e_acsl_assert_data_2.file = "tests/gmp-only/extended_quantifiers.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl__5); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_k_2); @@ -115,7 +135,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_lambda_2); __gmpz_clear(__gen_e_acsl_accumulator_2); } - /*@ assert \sum(1, 10, \lambda ℤ k; 1) ≡ 10; */ ; + /*@ assert \sum(1, 10, \lambda integer k; 1) == 10; */ ; { __e_acsl_mpz_t __gen_e_acsl__8; __e_acsl_mpz_t __gen_e_acsl__9; @@ -126,6 +146,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_3; __e_acsl_mpz_t __gen_e_acsl__14; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__8,2L); __gmpz_init_set_si(__gen_e_acsl__9,10L); __gmpz_init_set_si(__gen_e_acsl_one_3,1L); @@ -182,12 +204,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_3)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3, + "\\sum(2, 10, \\lambda integer k; k - 2 >= 0? 1: 0)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_3)); __gmpz_init_set_si(__gen_e_acsl__14,9L); __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__14)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main", - "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9", - "tests/gmp-only/extended_quantifiers.i",10); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9"; + __gen_e_acsl_assert_data_3.file = "tests/gmp-only/extended_quantifiers.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 10; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl__9); __gmpz_clear(__gen_e_acsl_k_3); @@ -196,7 +227,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_accumulator_3); __gmpz_clear(__gen_e_acsl__14); } - /*@ assert \numof(2, 10, \lambda ℤ k; k - 2 ≥ 0) ≡ 9; */ ; + /*@ assert \numof(2, 10, \lambda integer k; k - 2 >= 0) == 9; */ ; { __e_acsl_mpz_t __gen_e_acsl__15; __e_acsl_mpz_t __gen_e_acsl__16; @@ -207,6 +238,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_4; __e_acsl_mpz_t __gen_e_acsl__17; int __gen_e_acsl_eq_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__15,1L); __gmpz_init_set_si(__gen_e_acsl__16,10L); __gmpz_init_set_si(__gen_e_acsl_one_4,1L); @@ -230,12 +263,20 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_4)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4, + "\\product(1, 10, \\lambda integer k; k)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4)); __gmpz_init_set_ui(__gen_e_acsl__17,3628800UL); __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4), (__e_acsl_mpz_struct const *)(__gen_e_acsl__17)); - __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main", - "\\product(1, 10, \\lambda integer k; k) == 3628800", - "tests/gmp-only/extended_quantifiers.i",12); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\product(1, 10, \\lambda integer k; k) == 3628800"; + __gen_e_acsl_assert_data_4.file = "tests/gmp-only/extended_quantifiers.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 12; + __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl__15); __gmpz_clear(__gen_e_acsl__16); __gmpz_clear(__gen_e_acsl_k_4); @@ -244,7 +285,7 @@ int main(void) __gmpz_clear(__gen_e_acsl_accumulator_4); __gmpz_clear(__gen_e_acsl__17); } - /*@ assert \product(1, 10, \lambda ℤ k; k) ≡ 3628800; */ ; + /*@ assert \product(1, 10, \lambda integer k; k) == 3628800; */ ; { __e_acsl_mpz_t __gen_e_acsl__18; __e_acsl_mpz_t __gen_e_acsl_neg; @@ -255,6 +296,8 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_accumulator_5; __e_acsl_mpz_t __gen_e_acsl__19; int __gen_e_acsl_eq_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gmpz_init_set_si(__gen_e_acsl__18,10L); __gmpz_init(__gen_e_acsl_neg); __gmpz_neg(__gen_e_acsl_neg, @@ -280,12 +323,21 @@ int main(void) (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_5)); } } + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_5, + "\\product(-10, 10, \\lambda integer k; k)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_5)); __gmpz_init_set_si(__gen_e_acsl__19,0L); __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_5), (__e_acsl_mpz_struct const *)(__gen_e_acsl__19)); - __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main", - "\\product(-10, 10, \\lambda integer k; k) == 0", - "tests/gmp-only/extended_quantifiers.i",13); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\product(-10, 10, \\lambda integer k; k) == 0"; + __gen_e_acsl_assert_data_5.file = "tests/gmp-only/extended_quantifiers.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 13; + __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gmpz_clear(__gen_e_acsl__18); __gmpz_clear(__gen_e_acsl_neg); __gmpz_clear(__gen_e_acsl_k_5); @@ -294,8 +346,9 @@ int main(void) __gmpz_clear(__gen_e_acsl_accumulator_5); __gmpz_clear(__gen_e_acsl__19); } - /*@ assert \product(-10, 10, \lambda ℤ k; k) ≡ 0; */ ; + /*@ assert \product(-10, 10, \lambda integer k; k) == 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c index a0dfc7325996cf9771b3fa9ef58887faca913c90..2b851b329496dc52bb436a5a32a671738a80ce50 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c +++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -13,14 +13,14 @@ typedef struct mystruct mystruct; */ int __gen_e_acsl_p1(int x, int y); -/*@ predicate p2(ℤ x, ℤ y) = x + y > 0; +/*@ predicate p2(integer x, integer y) = x + y > 0; */ int __gen_e_acsl_p2(int x, int y); int __gen_e_acsl_p2_3(int x, __e_acsl_mpz_struct * y); -/*@ logic ℤ f1(ℤ x, ℤ y) = x + y; +/*@ logic integer f1(integer x, integer y) = x + y; */ void __gen_e_acsl_f1(__e_acsl_mpz_t *__retres_arg, int x, int y); @@ -51,11 +51,11 @@ int __gen_e_acsl_g(int x); */ mystruct __gen_e_acsl_t1(mystruct m); -/*@ logic ℤ t2(mystruct m) = m.k + m.l; +/*@ logic integer t2(mystruct m) = m.k + m.l; */ void __gen_e_acsl_t2(__e_acsl_mpz_t *__retres_arg, mystruct m); -/*@ predicate k_pred(ℤ x) = x > 0; +/*@ predicate k_pred(integer x) = x > 0; */ int __gen_e_acsl_k_pred(int x); @@ -69,46 +69,78 @@ void k(int x) } int glob = 5; -/*@ predicate never_called(int x) = x ≡ x; +/*@ predicate never_called(int x) = x == x; */ /*@ logic double f2(double x) = (double)(1 / x); */ double __gen_e_acsl_f2(double x); -/*@ predicate p_notyet{L}(ℤ x) = x > 0; +/*@ predicate p_notyet{L}(integer x) = x > 0; */ -/*@ logic ℤ f_notyet{L}(ℤ x) = x; +/*@ logic integer f_notyet{L}(integer x) = x; */ int main(void) { int __retres; mystruct m; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 1; int y = 2; { int __gen_e_acsl_p1_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gen_e_acsl_p1_2 = __gen_e_acsl_p1(x,y); - __e_acsl_assert(__gen_e_acsl_p1_2,1,"Assertion","main","p1(x, y)", - "tests/gmp-only/functions.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"p1(x, y)",0, + __gen_e_acsl_p1_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "p1(x, y)"; + __gen_e_acsl_assert_data.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 44; + __e_acsl_assert(__gen_e_acsl_p1_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert p1(x, y); */ ; { int __gen_e_acsl_p2_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_p2_2 = __gen_e_acsl_p2(3,4); - __e_acsl_assert(__gen_e_acsl_p2_2,1,"Assertion","main","p2(3, 4)", - "tests/gmp-only/functions.c",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"p2(3, 4)",0, + __gen_e_acsl_p2_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "p2(3, 4)"; + __gen_e_acsl_assert_data_2.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 45; + __e_acsl_assert(__gen_e_acsl_p2_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert p2(3, 4); */ ; { __e_acsl_mpz_t __gen_e_acsl__3; int __gen_e_acsl_p2_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__3,"99999999999999999999999999999",10); __gen_e_acsl_p2_4 = __gen_e_acsl_p2_3(5, (__e_acsl_mpz_struct *)__gen_e_acsl__3); - __e_acsl_assert(__gen_e_acsl_p2_4,1,"Assertion","main", - "p2(5, 99999999999999999999999999999)", - "tests/gmp-only/functions.c",46); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "p2(5, 99999999999999999999999999999)",0, + __gen_e_acsl_p2_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "p2(5, 99999999999999999999999999999)"; + __gen_e_acsl_assert_data_3.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 46; + __e_acsl_assert(__gen_e_acsl_p2_4,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl__3); } /*@ assert p2(5, 99999999999999999999999999999); */ ; @@ -116,28 +148,53 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_f1_2; __e_acsl_mpz_t __gen_e_acsl__5; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x); __gen_e_acsl_f1(& __gen_e_acsl_f1_2,x,y); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4,"f1(x, y)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_2)); __gmpz_init_set_si(__gen_e_acsl__5,3L); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "f1(x, y) == 3","tests/gmp-only/functions.c",48); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "f1(x, y) == 3"; + __gen_e_acsl_assert_data_4.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 48; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gmpz_clear(__gen_e_acsl_f1_2); __gmpz_clear(__gen_e_acsl__5); } - /*@ assert f1(x, y) ≡ 3; */ ; + /*@ assert f1(x, y) == 3; */ ; { __e_acsl_mpz_t __gen_e_acsl_f1_4; int __gen_e_acsl_p2_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_f1(& __gen_e_acsl_f1_4,3,4); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_5,"f1(3, 4)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x); /*@ assert Eva: initialization: \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_f1_4); */ __gen_e_acsl_p2_6 = __gen_e_acsl_p2_3(x, (__e_acsl_mpz_struct *)__gen_e_acsl_f1_4); - __e_acsl_assert(__gen_e_acsl_p2_6,1,"Assertion","main","p2(x, f1(3, 4))", - "tests/gmp-only/functions.c",49); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "p2(x, f1(3, 4))",0,__gen_e_acsl_p2_6); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "p2(x, f1(3, 4))"; + __gen_e_acsl_assert_data_5.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 49; + __e_acsl_assert(__gen_e_acsl_p2_6,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gmpz_clear(__gen_e_acsl_f1_4); } /*@ assert p2(x, f1(3, 4)); */ ; @@ -146,15 +203,25 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_f1_6; __e_acsl_mpz_t __gen_e_acsl__7; int __gen_e_acsl_gt_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__6,"99999999999999999999999999999",10); __gen_e_acsl_f1_5(& __gen_e_acsl_f1_6,9, (__e_acsl_mpz_struct *)__gen_e_acsl__6); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6, + "f1(9, 99999999999999999999999999999)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6)); __gmpz_init_set_si(__gen_e_acsl__7,0L); __gen_e_acsl_gt_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __e_acsl_assert(__gen_e_acsl_gt_4 > 0,1,"Assertion","main", - "f1(9, 99999999999999999999999999999) > 0", - "tests/gmp-only/functions.c",50); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "f1(9, 99999999999999999999999999999) > 0"; + __gen_e_acsl_assert_data_6.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 50; + __e_acsl_assert(__gen_e_acsl_gt_4 > 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gmpz_clear(__gen_e_acsl__6); __gmpz_clear(__gen_e_acsl_f1_6); __gmpz_clear(__gen_e_acsl__7); @@ -165,23 +232,34 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_f1_8; __e_acsl_mpz_t __gen_e_acsl__9; int __gen_e_acsl_eq_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gmpz_init_set_str(__gen_e_acsl__8,"99999999999999999999999999999",10); __gen_e_acsl_f1_7(& __gen_e_acsl_f1_8, (__e_acsl_mpz_struct *)__gen_e_acsl__8, (__e_acsl_mpz_struct *)__gen_e_acsl__8); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7, + "f1(99999999999999999999999999999, 99999999999999999999999999999)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8)); __gmpz_init_set_str(__gen_e_acsl__9,"199999999999999999999999999998",10); __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8), (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); - __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main", - "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998", - "tests/gmp-only/functions.c",51); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998"; + __gen_e_acsl_assert_data_7.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 51; + __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl_f1_8); __gmpz_clear(__gen_e_acsl__9); } /*@ assert - f1(99999999999999999999999999999, 99999999999999999999999999999) ≡ + f1(99999999999999999999999999999, 99999999999999999999999999999) == 199999999999999999999999999998; */ ; { @@ -189,51 +267,87 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_app; __e_acsl_mpz_t __gen_e_acsl_x_6; int __gen_e_acsl_eq_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); __gen_e_acsl_g_2 = __gen_e_acsl_g(x); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g(x)",0, + __gen_e_acsl_g_2); __gmpz_init_set_si(__gen_e_acsl_app,(long)__gen_e_acsl_g_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x); __gmpz_init_set_si(__gen_e_acsl_x_6,(long)x); __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app), (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_6)); - __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main","g(x) == x", - "tests/gmp-only/functions.c",56); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "g(x) == x"; + __gen_e_acsl_assert_data_8.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 56; + __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); __gmpz_clear(__gen_e_acsl_app); __gmpz_clear(__gen_e_acsl_x_6); } - /*@ assert g(x) ≡ x; */ ; + /*@ assert g(x) == x; */ ; char c = (char)'c'; { int __gen_e_acsl_h_char_2; __e_acsl_mpz_t __gen_e_acsl_app_2; __e_acsl_mpz_t __gen_e_acsl_c; int __gen_e_acsl_eq_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c); __gen_e_acsl_h_char_2 = __gen_e_acsl_h_char((int)c); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h_char(c)",0, + __gen_e_acsl_h_char_2); __gmpz_init_set_si(__gen_e_acsl_app_2,(long)__gen_e_acsl_h_char_2); + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c); __gmpz_init_set_si(__gen_e_acsl_c,(long)c); __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_c)); - __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main", - "h_char(c) == c","tests/gmp-only/functions.c",59); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "h_char(c) == c"; + __gen_e_acsl_assert_data_9.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 59; + __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); __gmpz_clear(__gen_e_acsl_app_2); __gmpz_clear(__gen_e_acsl_c); } - /*@ assert h_char(c) ≡ c; */ ; + /*@ assert h_char(c) == c; */ ; short s = (short)1; { int __gen_e_acsl_h_short_2; __e_acsl_mpz_t __gen_e_acsl_app_3; __e_acsl_mpz_t __gen_e_acsl_s; int __gen_e_acsl_eq_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s); __gen_e_acsl_h_short_2 = __gen_e_acsl_h_short((int)s); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h_short(s)", + 0,__gen_e_acsl_h_short_2); __gmpz_init_set_si(__gen_e_acsl_app_3,(long)__gen_e_acsl_h_short_2); + __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s); __gmpz_init_set_si(__gen_e_acsl_s,(long)s); __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl_s)); - __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main", - "h_short(s) == s","tests/gmp-only/functions.c",61); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "h_short(s) == s"; + __gen_e_acsl_assert_data_10.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 61; + __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); __gmpz_clear(__gen_e_acsl_app_3); __gmpz_clear(__gen_e_acsl_s); } - /*@ assert h_short(s) ≡ s; */ ; + /*@ assert h_short(s) == s; */ ; m.k = 8; m.l = 9; { @@ -241,17 +355,29 @@ int main(void) __e_acsl_mpz_t __gen_e_acsl_t2_2; __e_acsl_mpz_t __gen_e_acsl__12; int __gen_e_acsl_eq_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"m"); __gen_e_acsl_t1_2 = __gen_e_acsl_t1(m); + __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"t1(m)"); __gen_e_acsl_t2(& __gen_e_acsl_t2_2,__gen_e_acsl_t1_2); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_11,"t2(t1(m))",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_t2_2)); __gmpz_init_set_si(__gen_e_acsl__12,17L); __gen_e_acsl_eq_6 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_t2_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__12)); - __e_acsl_assert(__gen_e_acsl_eq_6 == 0,1,"Assertion","main", - "t2(t1(m)) == 17","tests/gmp-only/functions.c",66); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "t2(t1(m)) == 17"; + __gen_e_acsl_assert_data_11.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 66; + __e_acsl_assert(__gen_e_acsl_eq_6 == 0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); __gmpz_clear(__gen_e_acsl_t2_2); __gmpz_clear(__gen_e_acsl__12); } - /*@ assert t2(t1(m)) ≡ 17; */ ; + /*@ assert t2(t1(m)) == 17; */ ; __gen_e_acsl_k(9); double d = 2.0; { @@ -259,20 +385,32 @@ int main(void) __e_acsl_mpq_t __gen_e_acsl__15; __e_acsl_mpq_t __gen_e_acsl__16; int __gen_e_acsl_gt_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"d",d); __gen_e_acsl_f2_2 = __gen_e_acsl_f2(d); + __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"f2(d)", + __gen_e_acsl_f2_2); __gmpq_init(__gen_e_acsl__15); __gmpq_set_str(__gen_e_acsl__15,"0",10); __gmpq_init(__gen_e_acsl__16); __gmpq_set_d(__gen_e_acsl__16,__gen_e_acsl_f2_2); __gen_e_acsl_gt_5 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__16), (__e_acsl_mpq_struct const *)(__gen_e_acsl__15)); - __e_acsl_assert(__gen_e_acsl_gt_5 > 0,1,"Assertion","main","f2(d) > 0", - "tests/gmp-only/functions.c",71); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "f2(d) > 0"; + __gen_e_acsl_assert_data_12.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 71; + __e_acsl_assert(__gen_e_acsl_gt_5 > 0,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); __gmpq_clear(__gen_e_acsl__15); __gmpq_clear(__gen_e_acsl__16); } /*@ assert f2(d) > 0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } @@ -281,9 +419,19 @@ void __gen_e_acsl_k(int x) { { int __gen_e_acsl_k_pred_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x); __gen_e_acsl_k_pred_2 = __gen_e_acsl_k_pred(x); - __e_acsl_assert(__gen_e_acsl_k_pred_2,1,"Precondition","k","k_pred(x)", - "tests/gmp-only/functions.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"k_pred(x)",0, + __gen_e_acsl_k_pred_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "k_pred(x)"; + __gen_e_acsl_assert_data.file = "tests/gmp-only/functions.c"; + __gen_e_acsl_assert_data.fct = "k"; + __gen_e_acsl_assert_data.line = 27; + __e_acsl_assert(__gen_e_acsl_k_pred_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } k(x); return; diff --git a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle index 26ede76d5fd85381070a041c6a34ac33840fe0a3..1df935d00f5814645015d240d06a8c182774bd74 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle @@ -33,33 +33,126 @@ [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/libc/file.c:12: Warning: function __gen_e_acsl_fread: precondition 'valid_stream' got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:356: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: function __gen_e_acsl_fread: postcondition 'initialization' got status unknown. +[eva:alarm] tests/libc/file.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:15: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:18: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:18: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:21: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:24: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:24: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:27: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:27: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:27: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:35: Warning: function __gen_e_acsl_fread: precondition 'valid_stream' got status unknown. +[eva:alarm] tests/libc/file.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/file.c:37: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/file.c:37: Warning: assertion got status unknown. +[eva:alarm] tests/libc/file.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/file.c:38: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_file.c b/src/plugins/e-acsl/tests/libc/oracle/gen_file.c index c6b6e713f91cc277f590cb2e9f77e9adaef878f7..1876816cd99a9917dc151cbd966d6f6f3e60bd85 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/gen_file.c +++ b/src/plugins/e-acsl/tests/libc/oracle/gen_file.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; @@ -9,7 +10,7 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; requires valid_mode: valid_read_string(mode); ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from (indirect: *(filename + (0 .. strlen{Old}(filename)))), @@ -20,7 +21,7 @@ FILE *__gen_e_acsl_fopen(char const * restrict filename, /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); requires valid_stream: \valid(stream); - ensures size_read: \result ≤ \old(nmemb); + ensures size_read: \result <= \old(nmemb); ensures initialization: \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); @@ -36,7 +37,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)); requires valid_stream: \valid(stream); - ensures size_read: \result ≤ \old(nmemb); + ensures size_read: \result <= \old(nmemb); ensures initialization: \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1)); @@ -75,8 +76,17 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, int __gen_e_acsl_valid_2; __e_acsl_store_block((void *)(& stream),(size_t)8); __e_acsl_store_block((void *)(& ptr),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr",ptr); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); __gmpz_init_set_si(__gen_e_acsl_sizeof,1L); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"nmemb",0, + nmemb); __gmpz_init_set_ui(__gen_e_acsl_nmemb,nmemb); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size); __gmpz_init_set_ui(__gen_e_acsl_size_2,size); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, @@ -102,6 +112,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gmpz_init_set(__gen_e_acsl_size, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); if (__gen_e_acsl_le <= 0) { @@ -111,26 +123,64 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_clear(__gen_e_acsl__3); } - else __gmpz_init_set(__gen_e_acsl_if, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL); __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","fread", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",351); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_2.fct = "fread"; + __gen_e_acsl_assert_data_2.line = 351; + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 1 * 0), __gen_e_acsl_size_3,ptr, (void *)(& ptr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fread", - "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))", - "FRAMAC_SHARE/libc/stdio.h",351); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data.fct = "fread"; + __gen_e_acsl_assert_data.line = 351; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"stream", + (void *)stream); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(FILE)",0,sizeof(FILE)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stream,sizeof(FILE), (void *)stream,(void *)(& stream)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","fread", - "valid_stream: \\valid(stream)", - "FRAMAC_SHARE/libc/stdio.h",352); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(stream)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "valid_stream: \\valid(stream)"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_3.fct = "fread"; + __gen_e_acsl_assert_data_3.line = 352; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_nmemb); @@ -162,7 +212,13 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, __e_acsl_mpz_t __gen_e_acsl__5; int __gen_e_acsl_le_3; unsigned long __gen_e_acsl_size_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"__retres",0, + __retres); __gmpz_init_set_ui(__gen_e_acsl___retres,__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + size); __gmpz_init_set_ui(__gen_e_acsl_size_4,size); __gmpz_init(__gen_e_acsl_mul_3); __gmpz_mul(__gen_e_acsl_mul_3, @@ -171,9 +227,14 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL); __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __e_acsl_assert(__gen_e_acsl_le_3 <= 0,1,"RTE","fread", - "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",350); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_4.fct = "fread"; + __gen_e_acsl_assert_data_4.line = 350; + __e_acsl_assert(__gen_e_acsl_le_3 <= 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gen_e_acsl_size_5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3)); __e_acsl_initialize(ptr,__gen_e_acsl_size_5); __gmpz_clear(__gen_e_acsl___retres); @@ -198,11 +259,35 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, int __gen_e_acsl_le_5; unsigned long __gen_e_acsl_size_8; int __gen_e_acsl_initialized; - __e_acsl_assert(__retres <= __gen_e_acsl_at,1,"Postcondition","fread", - "size_read: \\result <= \\old(nmemb)", - "FRAMAC_SHARE/libc/stdio.h",356); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"\\result",0, + __retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "\\old(nmemb)",0,__gen_e_acsl_at); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "size_read: \\result <= \\old(nmemb)"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_5.fct = "fread"; + __gen_e_acsl_assert_data_5.line = 356; + __e_acsl_assert(__retres <= __gen_e_acsl_at,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(ptr)", + __gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)", + 0,1); __gmpz_init_set_si(__gen_e_acsl_sizeof_2,1L); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"\\result",0, + __retres); __gmpz_init_set_ui(__gen_e_acsl_result,__retres); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"\\old(size)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); __gmpz_init(__gen_e_acsl_mul_4); __gmpz_mul(__gen_e_acsl_mul_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_result), @@ -227,6 +312,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __gmpz_init_set(__gen_e_acsl_size_6, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_5)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); if (__gen_e_acsl_le_4 <= 0) { @@ -236,21 +323,46 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_clear(__gen_e_acsl__8); } - else __gmpz_init_set(__gen_e_acsl_if_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + __gmpz_init_set(__gen_e_acsl_if_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gmpz_init_set_ui(__gen_e_acsl__9,18446744073709551615UL); __gen_e_acsl_le_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); - __e_acsl_assert(__gen_e_acsl_le_5 <= 0,1,"RTE","fread", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615", - "FRAMAC_SHARE/libc/stdio.h",357); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_7.fct = "fread"; + __gen_e_acsl_assert_data_7.line = 357; + __e_acsl_assert(__gen_e_acsl_le_5 <= 0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __gen_e_acsl_size_8 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_size_8); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","fread", - "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))", - "FRAMAC_SHARE/libc/stdio.h",357); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "initialization:\n \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/stdio.h"; + __gen_e_acsl_assert_data_6.fct = "fread"; + __gen_e_acsl_assert_data_6.line = 357; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __e_acsl_delete_block((void *)(& stream)); __e_acsl_delete_block((void *)(& ptr)); __gmpz_clear(__gen_e_acsl_size_6); @@ -274,7 +386,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb, requires valid_mode: valid_read_string(mode); ensures result_null_or_valid_fd: - \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]); + \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]); assigns \result; assigns \result \from (indirect: *(filename + (0 .. strlen{Old}(filename)))), @@ -328,101 +440,266 @@ int main(void) int res = (int)tmp_0; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)buf", + (void *)(buf)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized((int *)buf)","tests/libc/file.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized((int *)buf)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized((int *)buf)"; + __gen_e_acsl_assert_data.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized((int *)buf); */ ; + /*@ assert !\initialized((int *)buf); */ ; if (res == 0) { { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&buf[1]", + (void *)(& buf[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& buf[1]), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main", - "!\\initialized(&buf[1])","tests/libc/file.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&buf[1])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&buf[1])"; + __gen_e_acsl_assert_data_2.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(! __gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\initialized(&buf[1]); */ ; + /*@ assert !\initialized(&buf[1]); */ ; } if (res >= 1) { { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[1]", + (void *)(& buf[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[1]), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main", - "\\initialized(&buf[1])","tests/libc/file.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&buf[1])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&buf[1])"; + __gen_e_acsl_assert_data_3.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 18; + __e_acsl_assert(__gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&buf[1]); */ ; } if (res >= 2) { { int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&buf[2]", + (void *)(& buf[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& buf[2]), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_4,1,"Assertion","main", - "\\initialized(&buf[2])","tests/libc/file.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&buf[2])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(&buf[2])"; + __gen_e_acsl_assert_data_4.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 21; + __e_acsl_assert(__gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \initialized(&buf[2]); */ ; } if (res >= 3) { { int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&buf[3]", + (void *)(& buf[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& buf[3]), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(&buf[3])","tests/libc/file.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&buf[3])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf[3])"; + __gen_e_acsl_assert_data_5.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 24; + __e_acsl_assert(__gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \initialized(&buf[3]); */ ; } if (res >= 4) { { int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&buf[4]", + (void *)(& buf[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& buf[4]), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main", - "\\initialized(&buf[4])","tests/libc/file.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&buf[4])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&buf[4])"; + __gen_e_acsl_assert_data_6.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 27; + __e_acsl_assert(__gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&buf[4]); */ ; } { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&buf[5]", + (void *)(& buf[5])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& buf[5]), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main", - "!\\initialized(&buf[5])","tests/libc/file.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&buf[5])",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf[5])"; + __gen_e_acsl_assert_data_7.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 29; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&buf[5]); */ ; + /*@ assert !\initialized(&buf[5]); */ ; __gen_e_acsl_fread((void *)(& buf2[1]),sizeof(int),(unsigned long)4,f); { int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(int *)buf2", + (void *)(buf2)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf2), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized((int *)buf2)","tests/libc/file.c",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized((int *)buf2)",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized((int *)buf2)"; + __gen_e_acsl_assert_data_8.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 36; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized((int *)buf2); */ ; + /*@ assert !\initialized((int *)buf2); */ ; { int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(int *)buf2", + (void *)(buf2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(int)", + 0,4); __gen_e_acsl_size = 4 * ((4 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)((char *)(buf2) + 4 * 1), (size_t)__gen_e_acsl_if); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main", - "\\initialized(&buf2[1 .. 4])","tests/libc/file.c",37); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&buf2[1 .. 4])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&buf2[1 .. 4])"; + __gen_e_acsl_assert_data_9.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 37; + __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&buf2[1 .. 4]); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&buf2[5]", + (void *)(& buf2[5])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& buf2[5]), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main", - "!\\initialized(&buf2[5])","tests/libc/file.c",38); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&buf2[5])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&buf2[5])"; + __gen_e_acsl_assert_data_10.file = "tests/libc/file.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 38; + __e_acsl_assert(! __gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&buf2[5]); */ ; + /*@ assert !\initialized(&buf2[5]); */ ; __retres = 0; __e_acsl_delete_block((void *)(buf2)); __e_acsl_delete_block((void *)(& f)); diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c b/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c index 2416c3eb591f25dd8e76e63e6f907724503a4de6..73a46fb31bd2a4298b3ca33f997c50a93024f7bb 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c +++ b/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "string.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,9 +12,9 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -26,9 +27,9 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, requires valid_src: valid_read_or_empty(src, n); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -37,9 +38,8 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n); /*@ requires valid_s: valid_or_empty(s, n); - ensures - acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; - ensures result_ptr: \result ≡ \old(s); + ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true; + ensures result_ptr: \result == \old(s); assigns *((char *)s + (0 .. n - 1)), \result; assigns *((char *)s + (0 .. n - 1)) \from c; assigns \result \from s; @@ -59,119 +59,330 @@ int main(void) __gen_e_acsl_memset((void *)(a),1,(unsigned long)1); { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)a", + (void *)(a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,sizeof(char)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(a),sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized((char *)a)","tests/libc/mem.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized((char *)a)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized((char *)a)"; + __gen_e_acsl_assert_data.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized((char *)a); */ ; { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a[1]", + (void *)(& a[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& a[1]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main", - "!\\initialized(&a[1])","tests/libc/mem.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&a[1])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&a[1])"; + __gen_e_acsl_assert_data_2.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(! __gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\initialized(&a[1]); */ ; + /*@ assert !\initialized(&a[1]); */ ; __gen_e_acsl_memset((void *)(& a[1]),1,(unsigned long)1); { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&a[1]", + (void *)(& a[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a[1]), sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main", - "\\initialized(&a[1])","tests/libc/mem.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&a[1])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&a[1])"; + __gen_e_acsl_assert_data_3.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(__gen_e_acsl_initialized_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&a[1]); */ ; __gen_e_acsl_memset((void *)(& b[2]),42,(unsigned long)2 * sizeof(b[0])); { int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"(int *)b", + (void *)(b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(b), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized((int *)b)","tests/libc/mem.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized((int *)b)",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized((int *)b)"; + __gen_e_acsl_assert_data_4.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 16; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized((int *)b); */ ; + /*@ assert !\initialized((int *)b); */ ; { int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b[1]", + (void *)(& b[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b[1]), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion","main", - "!\\initialized(&b[1])","tests/libc/mem.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&b[1])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&b[1])"; + __gen_e_acsl_assert_data_5.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 17; + __e_acsl_assert(! __gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\initialized(&b[1]); */ ; + /*@ assert !\initialized(&b[1]); */ ; { int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(int *)b", + (void *)(b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(int)", + 0,4); __gen_e_acsl_size = 4 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)((char *)(b) + 4 * 2), (size_t)__gen_e_acsl_if); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main", - "\\initialized(&b[2 .. 3])","tests/libc/mem.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&b[2 .. 3])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&b[2 .. 3])"; + __gen_e_acsl_assert_data_6.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 18; + __e_acsl_assert(__gen_e_acsl_initialized_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&b[2 .. 3]); */ ; { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&b[4]", + (void *)(& b[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& b[4]), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main", - "!\\initialized(&b[4])","tests/libc/mem.c",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&b[4])",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&b[4])"; + __gen_e_acsl_assert_data_7.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 19; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&b[4]); */ ; + /*@ assert !\initialized(&b[4]); */ ; __gen_e_acsl_memcpy((void *)(& c[1]),(void const *)(a),(unsigned long)2); { int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(char *)c", + (void *)(c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(c), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized((char *)c)","tests/libc/mem.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized((char *)c)",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized((char *)c)"; + __gen_e_acsl_assert_data_8.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 23; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized((char *)c); */ ; + /*@ assert !\initialized((char *)c); */ ; { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(char *)c", + (void *)(c)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(char)", + 0,1); __gen_e_acsl_size_2 = 1 * ((2 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(c + 1 * 1), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main", - "\\initialized(&c[1 .. 2])","tests/libc/mem.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&c[1 .. 2])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&c[1 .. 2])"; + __gen_e_acsl_assert_data_9.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 24; + __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&c[1 .. 2]); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&c[3]", + (void *)(& c[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& c[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main", - "!\\initialized(&c[3])","tests/libc/mem.c",25); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&c[3])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&c[3])"; + __gen_e_acsl_assert_data_10.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 25; + __e_acsl_assert(! __gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&c[3]); */ ; + /*@ assert !\initialized(&c[3]); */ ; __gen_e_acsl_memmove((void *)(c),(void const *)(& c[1]),(unsigned long)2); { int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"(char *)c", + (void *)(c)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(c + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main", - "\\initialized(&c[0 .. 2])","tests/libc/mem.c",28); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&c[0 .. 2])",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&c[0 .. 2])"; + __gen_e_acsl_assert_data_11.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 28; + __e_acsl_assert(__gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(&c[0 .. 2]); */ ; { int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&c[3]", + (void *)(& c[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& c[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main", - "!\\initialized(&c[3])","tests/libc/mem.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&c[3])",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&c[3])"; + __gen_e_acsl_assert_data_12.file = "tests/libc/mem.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 29; + __e_acsl_assert(! __gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\initialized(&c[3]); */ ; + /*@ assert !\initialized(&c[3]); */ ; __retres = 0; __e_acsl_delete_block((void *)(c)); __e_acsl_delete_block((void *)(b)); @@ -181,9 +392,8 @@ int main(void) } /*@ requires valid_s: valid_or_empty(s, n); - ensures - acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; - ensures result_ptr: \result ≡ \old(s); + ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true; + ensures result_ptr: \result == \old(s); assigns *((char *)s + (0 .. n - 1)), \result; assigns *((char *)s + (0 .. n - 1)) \from c; assigns \result \from s; @@ -196,20 +406,33 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n) __gen_e_acsl_at = s; __retres = memset(s,c,n); __e_acsl_initialize(s,n); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memset", - "result_ptr: \\result == \\old(s)", - "FRAMAC_SHARE/libc/string.h",135); - __e_acsl_delete_block((void *)(& s)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result", + __retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(s)", + __gen_e_acsl_at); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "result_ptr: \\result == \\old(s)"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "memset"; + __gen_e_acsl_assert_data_3.line = 135; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_delete_block((void *)(& s)); + return __retres; + } } /*@ requires valid_dest: valid_or_empty(dest, n); requires valid_src: valid_read_or_empty(src, n); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -224,12 +447,25 @@ void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n) __gen_e_acsl_at = dest; __retres = memmove(dest,src,n); __e_acsl_initialize(dest,n); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memmove", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",125); - __e_acsl_delete_block((void *)(& src)); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result", + __retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\old(dest)", + __gen_e_acsl_at); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "memmove"; + __gen_e_acsl_assert_data_4.line = 125; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_delete_block((void *)(& src)); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } /*@ requires valid_dest: valid_or_empty(dest, n); @@ -239,9 +475,9 @@ void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n) \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -276,6 +512,16 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, int __gen_e_acsl_separated; __e_acsl_store_block((void *)(& src),(size_t)8); __e_acsl_store_block((void *)(& dest),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n); __gmpz_init_set_ui(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -293,43 +539,107 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)dest + 1 * 0), __gen_e_acsl_if,dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memcpy", - "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "memcpy"; + __gen_e_acsl_assert_data_4.line = 98; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n); __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)src + 1 * 0), __gen_e_acsl_if_2, (void *)src, (void *)(& src)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memcpy", - "separated_guard: \\valid_read((char *)src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read((char *)src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_5.fct = "memcpy"; + __gen_e_acsl_assert_data_5.line = 98; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_separated = __e_acsl_separated((size_t)2, (char *)dest + 1 * 0, __gen_e_acsl_if_3, (char *)src + 1 * 0, __gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","memcpy", - "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))", + 0,__gen_e_acsl_separated); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "memcpy"; + __gen_e_acsl_assert_data_3.line = 98; + __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_n); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_sub); @@ -340,12 +650,25 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, __gen_e_acsl_at = dest; __retres = memcpy(dest,src,n); __e_acsl_initialize(dest,n); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memcpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",102); - __e_acsl_delete_block((void *)(& src)); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\result", + __retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", + __gen_e_acsl_at); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Postcondition"; + __gen_e_acsl_assert_data_7.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_7.fct = "memcpy"; + __gen_e_acsl_assert_data_7.line = 102; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_delete_block((void *)(& src)); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c b/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c index 4686cea0c6bfc91acb6d32d4cc97aac1a02621e7..fd75328a411a97bb9bd04a7c8fd4ee371c52f604 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c +++ b/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -32,16 +33,38 @@ int main(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)buf", + (void *)(buf)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); __gen_e_acsl_size = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf + 1 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized(&buf[0 .. 3])","tests/libc/sprintf.c", - 10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&buf[0 .. 3])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&buf[0 .. 3])"; + __gen_e_acsl_assert_data.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&buf[0 .. 3]); */ ; + /*@ assert !\initialized(&buf[0 .. 3]); */ ; __gen_e_acsl_sprintf_res = sprintf(buf,__gen_e_acsl_literal_string,10); /* sprintf_va_1 */ if (__gen_e_acsl_sprintf_res >= 0) __e_acsl_initialize((void *)(buf), (size_t)(__gen_e_acsl_sprintf_res + 1L)); @@ -49,24 +72,63 @@ int main(void) int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(char *)buf",(void *)(buf)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); __gen_e_acsl_size_2 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(buf + 1 * 0), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(&buf[0 .. 2])","tests/libc/sprintf.c", - 13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&buf[0 .. 2])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&buf[0 .. 2])"; + __gen_e_acsl_assert_data_2.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&buf[0 .. 2]); */ ; { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[3]", + (void *)(& buf[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main", - "!\\initialized(&buf[3])","tests/libc/sprintf.c",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&buf[3])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\initialized(&buf[3])"; + __gen_e_acsl_assert_data_3.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(! __gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\initialized(&buf[3]); */ ; + /*@ assert !\initialized(&buf[3]); */ ; __e_acsl_delete_block((void *)(buf)); } { @@ -76,17 +138,40 @@ int main(void) int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "(char *)buf_0",(void *)(buf_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(buf_0 + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized(&buf_0[0 .. 3])", - "tests/libc/sprintf.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&buf_0[0 .. 3])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&buf_0[0 .. 3])"; + __gen_e_acsl_assert_data_4.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized(&buf_0[0 .. 3]); */ ; + /*@ assert !\initialized(&buf_0[0 .. 3]); */ ; __gen_e_acsl_snprintf_res = snprintf(buf_0,(unsigned long)2, __gen_e_acsl_literal_string,10); /* snprintf_va_1 */ if (__gen_e_acsl_snprintf_res >= 0) { @@ -99,32 +184,78 @@ int main(void) int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "(char *)buf_0",(void *)(buf_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); __gen_e_acsl_size_4 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(buf_0 + 1 * 0), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(&buf_0[0 .. 1])","tests/libc/sprintf.c", - 21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&buf_0[0 .. 1])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf_0[0 .. 1])"; + __gen_e_acsl_assert_data_5.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 21; + __e_acsl_assert(__gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \initialized(&buf_0[0 .. 1]); */ ; { int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "(char *)buf_0",(void *)(buf_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); __gen_e_acsl_size_5 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(buf_0 + 1 * 2), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main", - "!\\initialized(&buf_0[2 .. 3])", - "tests/libc/sprintf.c",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&buf_0[2 .. 3])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&buf_0[2 .. 3])"; + __gen_e_acsl_assert_data_6.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 22; + __e_acsl_assert(! __gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\initialized(&buf_0[2 .. 3]); */ ; + /*@ assert !\initialized(&buf_0[2 .. 3]); */ ; __e_acsl_delete_block((void *)(buf_0)); } { @@ -134,17 +265,40 @@ int main(void) int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "(char *)buf_1",(void *)(buf_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,1); __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(buf_1 + 1 * 0), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main", - "!\\initialized(&buf_1[0 .. 3])", - "tests/libc/sprintf.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&buf_1[0 .. 3])",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf_1[0 .. 3])"; + __gen_e_acsl_assert_data_7.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&buf_1[0 .. 3]); */ ; + /*@ assert !\initialized(&buf_1[0 .. 3]); */ ; __gen_e_acsl_snprintf_res_2 = snprintf(buf_1,(unsigned long)4, __gen_e_acsl_literal_string,10); /* snprintf_va_2 */ if (__gen_e_acsl_snprintf_res_2 >= 0) { @@ -157,25 +311,64 @@ int main(void) int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "(char *)buf_1",(void *)(buf_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); __gen_e_acsl_size_7 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf_1 + 1 * 0), (size_t)__gen_e_acsl_if_7); - __e_acsl_assert(__gen_e_acsl_initialized_8,1,"Assertion","main", - "\\initialized(&buf_1[0 .. 2])","tests/libc/sprintf.c", - 29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&buf_1[0 .. 2])",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&buf_1[0 .. 2])"; + __gen_e_acsl_assert_data_8.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 29; + __e_acsl_assert(__gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \initialized(&buf_1[0 .. 2]); */ ; { int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&buf_1[3]", + (void *)(& buf_1[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& buf_1[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion","main", - "!\\initialized(&buf_1[3])","tests/libc/sprintf.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&buf_1[3])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&buf_1[3])"; + __gen_e_acsl_assert_data_9.file = "tests/libc/sprintf.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 30; + __e_acsl_assert(! __gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ¬\initialized(&buf_1[3]); */ ; + /*@ assert !\initialized(&buf_1[3]); */ ; __e_acsl_delete_block((void *)(buf_1)); } __retres = 0; diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c index dea7fa975c07e495ed7d09fc665b92ba4d89d40a..3220219b18d1782dbf64cf231dbd1ee187af5fac 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c +++ b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "string.h" char *__gen_e_acsl_literal_string; @@ -10,8 +11,8 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; requires separation: \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + ensures equal_contents: strcmp(\old(dest), \old(src)) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (0 .. strlen{Old}(src))), \result; assigns *(dest + (0 .. strlen{Old}(src))) \from *(src + (0 .. strlen{Old}(src))); @@ -22,7 +23,7 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src); /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires room_nstring: \valid(dest + (0 .. n - 1)); requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); assigns *(dest + (0 .. n - 1)), \result; assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); @@ -30,13 +31,12 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src); behavior complete: assumes src_fits: strlen(src) < n; - ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; + ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0; behavior partial: - assumes src_too_long: n ≤ strlen(src); + assumes src_too_long: n <= strlen(src); ensures - equal_prefix: - memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; + equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0; */ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n); @@ -45,14 +45,14 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, requires valid_string_dest: valid_string(dest); requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src))); ensures - sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); + sum_of_lengths: strlen(\old(dest)) == \old(strlen(dest) + strlen(src)); ensures initialization: dest: \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src)))); ensures dest_null_terminated: - *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + *(\old(dest) + \old(strlen(dest) + strlen(src))) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), \result; @@ -65,7 +65,7 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src); /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires valid_string_dest: valid_string(dest); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) \from *(src + (0 .. n)); @@ -73,12 +73,12 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src); behavior complete: assumes - valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n; + valid_string_src_fits: valid_read_string(src) && strlen(src) <= n; requires room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src))); ensures sum_of_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); + strlen(\old(dest)) == \old(strlen(dest) + strlen(src)); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), \result; @@ -90,11 +90,11 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src); behavior partial: assumes valid_string_src_too_large: - ¬(valid_read_string(src) ∧ strlen(src) ≤ n); + !(valid_read_string(src) && strlen(src) <= n); requires room_string: \valid((dest + strlen(dest)) + (0 .. n)); ensures sum_of_bounded_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n); + strlen(\old(dest)) == \old(strlen(dest)) + \old(n); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) @@ -106,7 +106,7 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires valid_string_dest: valid_string(dest); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) \from *(src + (0 .. n)); @@ -114,12 +114,12 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, behavior complete: assumes - valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n; + valid_string_src_fits: valid_read_string(src) && strlen(src) <= n; requires room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src))); ensures sum_of_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); + strlen(\old(dest)) == \old(strlen(dest) + strlen(src)); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), \result; @@ -131,11 +131,11 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, behavior partial: assumes valid_string_src_too_large: - ¬(valid_read_string(src) ∧ strlen(src) ≤ n); + !(valid_read_string(src) && strlen(src) <= n); requires room_string: \valid((dest + strlen(dest)) + (0 .. n)); ensures sum_of_bounded_lengths: - strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n); + strlen(\old(dest)) == \old(strlen(dest)) + \old(n); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result; assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)) @@ -166,8 +166,16 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; unsigned long __gen_e_acsl_size; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_strcat_src_size",0, + __gen_e_acsl_strcat_src_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_src_size, __gen_e_acsl_strcat_src_size); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "__gen_e_acsl_strcat_dest_size",0, + __gen_e_acsl_strcat_dest_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_dest_size, __gen_e_acsl_strcat_dest_size); __gmpz_init(__gen_e_acsl_add); @@ -182,9 +190,14 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strncat", - "size_lesser_or_eq_than_SIZE_MAX:\n (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n 18446744073709551615", - "FRAMAC_SHARE/libc/string.h",438); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n 18446744073709551615"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_5.fct = "strncat"; + __gen_e_acsl_assert_data_5.line = 438; + __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __e_acsl_initialize((void *)dest,__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcat_src_size); @@ -194,26 +207,39 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src, __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl__2); } - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncat", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",443); - __e_acsl_contract_clean(__gen_e_acsl_contract); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_6.fct = "strncat"; + __gen_e_acsl_assert_data_6.line = 443; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_contract_clean(__gen_e_acsl_contract); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } /*@ requires valid_string_src: valid_read_string(src); requires valid_string_dest: valid_string(dest); requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src))); ensures - sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src)); + sum_of_lengths: strlen(\old(dest)) == \old(strlen(dest) + strlen(src)); ensures initialization: dest: \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src)))); ensures dest_null_terminated: - *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + *(\old(dest) + \old(strlen(dest) + strlen(src))) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))), \result; @@ -243,8 +269,16 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src) __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; unsigned long __gen_e_acsl_size; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_strcat_src_size",0, + __gen_e_acsl_strcat_src_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_src_size, __gen_e_acsl_strcat_src_size); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_strcat_dest_size",0, + __gen_e_acsl_strcat_dest_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_dest_size, __gen_e_acsl_strcat_dest_size); __gmpz_init(__gen_e_acsl_add); @@ -259,9 +293,14 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src) __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcat", - "size_lesser_or_eq_than_SIZE_MAX:\n (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n 18446744073709551615", - "FRAMAC_SHARE/libc/string.h",423); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n 18446744073709551615"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strcat"; + __gen_e_acsl_assert_data_4.line = 423; + __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __e_acsl_initialize((void *)dest,__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcat_src_size); @@ -271,17 +310,31 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src) __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl__2); } - __e_acsl_assert(__retres == __gen_e_acsl_at_2,1,"Postcondition","strcat", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",434); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Postcondition"; + __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_8.fct = "strcat"; + __gen_e_acsl_assert_data_8.line = 434; + __e_acsl_assert(__retres == __gen_e_acsl_at_2, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } /*@ requires valid_nstring_src: valid_read_nstring(src, n); requires room_nstring: \valid(dest + (0 .. n - 1)); requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1)); - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1)); assigns *(dest + (0 .. n - 1)), \result; assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1)); @@ -289,13 +342,12 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src) behavior complete: assumes src_fits: strlen(src) < n; - ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0; + ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0; behavior partial: - assumes src_too_long: n ≤ strlen(src); + assumes src_too_long: n <= strlen(src); ensures - equal_prefix: - memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0; + equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0; */ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, size_t n) @@ -334,6 +386,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, __e_acsl_store_block((void *)(& src),(size_t)8); __e_acsl_store_block((void *)(& dest),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0,n); __gmpz_init_set_ui(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -351,51 +412,141 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid = __e_acsl_valid((void *)(dest + 1 * 0), __gen_e_acsl_if,(void *)dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","strncpy", - "room_nstring: \\valid(dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",380); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "room_nstring: \\valid(dest + (0 .. n - 1))", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "room_nstring: \\valid(dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_2.fct = "strncpy"; + __gen_e_acsl_assert_data_2.line = 380; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n); __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(dest + 1 * 0), __gen_e_acsl_if_2, (void *)dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","strncpy", - "separated_guard: \\valid_read(dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "strncpy"; + __gen_e_acsl_assert_data_4.line = 382; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char const)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char const)",0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n); __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(src + 1 * 0), __gen_e_acsl_if_3, (void *)src, (void *)(& src)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","strncpy", - "separated_guard: \\valid_read(src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read(src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_5.fct = "strncpy"; + __gen_e_acsl_assert_data_5.line = 382; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest", + (void *)dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char const)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char const)",0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_5 = 1UL * __gen_e_acsl__7; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0UL) __gen_e_acsl_if_5 = 0UL; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_separated = __e_acsl_separated((size_t)2,dest + 1 * 0, __gen_e_acsl_if_4, src + 1 * 0, __gen_e_acsl_if_5); - __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","strncpy", - "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",382); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))", + 0,__gen_e_acsl_separated); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "strncpy"; + __gen_e_acsl_assert_data_3.line = 382; + __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __gmpz_clear(__gen_e_acsl_n); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_sub); @@ -424,9 +575,30 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, unsigned long __gen_e_acsl__10; unsigned long __gen_e_acsl_if_6; int __gen_e_acsl_initialized; - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",385); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Postcondition"; + __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_6.fct = "strncpy"; + __gen_e_acsl_assert_data_6.line = 385; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", + (void *)__gen_e_acsl_at_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)", + 0,1); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3)); __gmpz_init_set_si(__gen_e_acsl__8,1L); __gmpz_init(__gen_e_acsl_sub_3); __gmpz_sub(__gen_e_acsl_sub_3, @@ -443,14 +615,28 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gen_e_acsl__10 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 1 * 0), __gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","strncpy", - "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))", - "FRAMAC_SHARE/libc/string.h",386); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))", + 0,__gen_e_acsl_initialized); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Postcondition"; + __gen_e_acsl_assert_data_7.pred_txt = "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_7.fct = "strncpy"; + __gen_e_acsl_assert_data_7.line = 386; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& src)); __e_acsl_delete_block((void *)(& dest)); @@ -469,8 +655,8 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src, requires separation: \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); - ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; - ensures result_ptr: \result ≡ \old(dest); + ensures equal_contents: strcmp(\old(dest), \old(src)) == 0; + ensures result_ptr: \result == \old(dest); assigns *(dest + (0 .. strlen{Old}(src))), \result; assigns *(dest + (0 .. strlen{Old}(src))) \from *(src + (0 .. strlen{Old}(src))); @@ -493,6 +679,11 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; unsigned long __gen_e_acsl_size; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "__gen_e_acsl_strcpy_src_size",0, + __gen_e_acsl_strcpy_src_size); __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcpy_src_size, __gen_e_acsl_strcpy_src_size); __gmpz_init_set_si(__gen_e_acsl_,1L); @@ -503,9 +694,14 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcpy", - "size_lesser_or_eq_than_SIZE_MAX:\n __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615", - "FRAMAC_SHARE/libc/string.h",367); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615"; + __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_6.fct = "strcpy"; + __gen_e_acsl_assert_data_6.line = 367; + __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __e_acsl_initialize((void *)dest,__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcpy_src_size); @@ -513,12 +709,25 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src) __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl__2); } - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strcpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",374); - __e_acsl_delete_block((void *)(& src)); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Postcondition"; + __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_8.fct = "strcpy"; + __gen_e_acsl_assert_data_8.line = 374; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_delete_block((void *)(& src)); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } void __e_acsl_globals_init(void) @@ -549,26 +758,73 @@ int main(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest", + (void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,1); __gen_e_acsl_size = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized(&dest[0 .. 3])","tests/libc/str.c",12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&dest[0 .. 3])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&dest[0 .. 3])"; + __gen_e_acsl_assert_data.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&dest[0 .. 3]); */ ; + /*@ assert !\initialized(&dest[0 .. 3]); */ ; { int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(char *)src",(void *)(src)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,1); __gen_e_acsl_size_2 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(src + 1 * 0), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(&src[0 .. 1])","tests/libc/str.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&src[0 .. 1])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&src[0 .. 1])"; + __gen_e_acsl_assert_data_2.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&src[0 .. 1]); */ ; __gen_e_acsl_strcpy(dest,(char const *)(src)); @@ -576,28 +832,76 @@ int main(void) int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,1); __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest + 1 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main", - "\\initialized(&dest[0 .. 1])","tests/libc/str.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&dest[0 .. 1])",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&dest[0 .. 1])"; + __gen_e_acsl_assert_data_3.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 16; + __e_acsl_assert(__gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&dest[0 .. 1]); */ ; { int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "(char *)dest",(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,1); __gen_e_acsl_size_4 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 2), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized(&dest[2 .. 3])","tests/libc/str.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&dest[2 .. 3])",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&dest[2 .. 3])"; + __gen_e_acsl_assert_data_4.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 17; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized(&dest[2 .. 3]); */ ; + /*@ assert !\initialized(&dest[2 .. 3]); */ ; __e_acsl_delete_block((void *)(src)); __e_acsl_delete_block((void *)(dest)); } @@ -611,55 +915,141 @@ int main(void) int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,1); __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest_0 + 1 * 0), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion","main", - "!\\initialized(&dest_0[0 .. 3])","tests/libc/str.c", - 22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&dest_0[0 .. 3])",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest_0[0 .. 3])"; + __gen_e_acsl_assert_data_5.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 22; + __e_acsl_assert(! __gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\initialized(&dest_0[0 .. 3]); */ ; + /*@ assert !\initialized(&dest_0[0 .. 3]); */ ; { int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "(char *)src_0",(void *)(src_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,1); __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(src_0 + 1 * 0), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main", - "\\initialized(&src_0[0 .. 3])","tests/libc/str.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&src_0[0 .. 3])",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&src_0[0 .. 3])"; + __gen_e_acsl_assert_data_6.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 23; + __e_acsl_assert(__gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&src_0[0 .. 3]); */ ; __gen_e_acsl_strncpy(dest_0,(char const *)(src_0),(unsigned long)1); { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0), sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion","main", - "\\initialized((char *)dest_0)","tests/libc/str.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized((char *)dest_0)",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\initialized((char *)dest_0)"; + __gen_e_acsl_assert_data_7.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(__gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \initialized((char *)dest_0); */ ; { int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "(char *)dest_0",(void *)(dest_0)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,1); __gen_e_acsl_size_7 = 1 * ((3 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(dest_0 + 1 * 1), (size_t)__gen_e_acsl_if_7); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized(&dest_0[1 .. 3])","tests/libc/str.c", - 27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&dest_0[1 .. 3])",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&dest_0[1 .. 3])"; + __gen_e_acsl_assert_data_8.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 27; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized(&dest_0[1 .. 3]); */ ; + /*@ assert !\initialized(&dest_0[1 .. 3]); */ ; __e_acsl_delete_block((void *)(src_0)); __e_acsl_delete_block((void *)(dest_0)); } @@ -673,29 +1063,76 @@ int main(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,1); __gen_e_acsl_size_8 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_8); - __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion","main", - "!\\initialized(&dest_1[0 .. 3])","tests/libc/str.c", - 32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&dest_1[0 .. 3])",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&dest_1[0 .. 3])"; + __gen_e_acsl_assert_data_9.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 32; + __e_acsl_assert(! __gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ¬\initialized(&dest_1[0 .. 3]); */ ; + /*@ assert !\initialized(&dest_1[0 .. 3]); */ ; { int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "(char *)src_1",(void *)(src_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); __gen_e_acsl_size_9 = 1 * ((3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(src_1 + 1 * 0), (size_t)__gen_e_acsl_if_9); - __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion","main", - "\\initialized(&src_1[0 .. 3])","tests/libc/str.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&src_1[0 .. 3])",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\initialized(&src_1[0 .. 3])"; + __gen_e_acsl_assert_data_10.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 33; + __e_acsl_assert(__gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \initialized(&src_1[0 .. 3]); */ ; __gen_e_acsl_strncpy(dest_1,(char const *)(src_1),(unsigned long)3); @@ -703,24 +1140,64 @@ int main(void) int __gen_e_acsl_size_10; int __gen_e_acsl_if_10; int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "(char *)dest_1",(void *)(dest_1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,1); __gen_e_acsl_size_10 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_10); if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; - else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size_10); + __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + } __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 1 * 0), (size_t)__gen_e_acsl_if_10); - __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main", - "\\initialized(&dest_1[0 .. 2])","tests/libc/str.c",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&dest_1[0 .. 2])",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 2])"; + __gen_e_acsl_assert_data_11.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 36; + __e_acsl_assert(__gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(&dest_1[0 .. 2]); */ ; { int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "&dest_1[3]",(void *)(& dest_1[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& dest_1[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main", - "!\\initialized(&dest_1[3])","tests/libc/str.c",37); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&dest_1[3])",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[3])"; + __gen_e_acsl_assert_data_12.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 37; + __e_acsl_assert(! __gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\initialized(&dest_1[3]); */ ; + /*@ assert !\initialized(&dest_1[3]); */ ; __e_acsl_delete_block((void *)(src_1)); __e_acsl_delete_block((void *)(dest_1)); } @@ -735,43 +1212,114 @@ int main(void) int __gen_e_acsl_size_11; int __gen_e_acsl_if_11; int __gen_e_acsl_initialized_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "(char *)dest_2",(void *)(dest_2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(char)",0,1); __gen_e_acsl_size_11 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_11); if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; - else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_11); + __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + } __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(dest_2 + 1 * 0), (size_t)__gen_e_acsl_if_11); - __e_acsl_assert(__gen_e_acsl_initialized_13,1,"Assertion","main", - "\\initialized(&dest_2[0 .. 1])","tests/libc/str.c",43); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized(&dest_2[0 .. 1])",0, + __gen_e_acsl_initialized_13); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\initialized(&dest_2[0 .. 1])"; + __gen_e_acsl_assert_data_13.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 43; + __e_acsl_assert(__gen_e_acsl_initialized_13, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } /*@ assert \initialized(&dest_2[0 .. 1]); */ ; { int __gen_e_acsl_size_12; int __gen_e_acsl_if_12; int __gen_e_acsl_initialized_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "(char *)dest_2",(void *)(dest_2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(char)",0,1); __gen_e_acsl_size_12 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_12); if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; - else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_12); + __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + } __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(dest_2 + 1 * 2), (size_t)__gen_e_acsl_if_12); - __e_acsl_assert(! __gen_e_acsl_initialized_14,1,"Assertion","main", - "!\\initialized(&dest_2[2 .. 3])","tests/libc/str.c", - 44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "\\initialized(&dest_2[2 .. 3])",0, + __gen_e_acsl_initialized_14); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "!\\initialized(&dest_2[2 .. 3])"; + __gen_e_acsl_assert_data_14.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 44; + __e_acsl_assert(! __gen_e_acsl_initialized_14, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert ¬\initialized(&dest_2[2 .. 3]); */ ; + /*@ assert !\initialized(&dest_2[2 .. 3]); */ ; { int __gen_e_acsl_size_13; int __gen_e_acsl_if_13; int __gen_e_acsl_initialized_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "(char *)src_2",(void *)(src_2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "sizeof(char)",0,1); __gen_e_acsl_size_13 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_13); if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0; - else __gen_e_acsl_if_13 = __gen_e_acsl_size_13; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_13); + __gen_e_acsl_if_13 = __gen_e_acsl_size_13; + } __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(src_2 + 1 * 0), (size_t)__gen_e_acsl_if_13); - __e_acsl_assert(__gen_e_acsl_initialized_15,1,"Assertion","main", - "\\initialized(&src_2[0 .. 1])","tests/libc/str.c",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\initialized(&src_2[0 .. 1])",0, + __gen_e_acsl_initialized_15); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\initialized(&src_2[0 .. 1])"; + __gen_e_acsl_assert_data_15.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 45; + __e_acsl_assert(__gen_e_acsl_initialized_15, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } /*@ assert \initialized(&src_2[0 .. 1]); */ ; __gen_e_acsl_strcat(dest_2,(char const *)(src_2)); @@ -779,24 +1327,64 @@ int main(void) int __gen_e_acsl_size_14; int __gen_e_acsl_if_14; int __gen_e_acsl_initialized_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16, + "(char *)dest_2",(void *)(dest_2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(char)",0,1); __gen_e_acsl_size_14 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_14); if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0; - else __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_14); + __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + } __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(dest_2 + 1 * 0), (size_t)__gen_e_acsl_if_14); - __e_acsl_assert(__gen_e_acsl_initialized_16,1,"Assertion","main", - "\\initialized(&dest_2[0 .. 2])","tests/libc/str.c",48); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "\\initialized(&dest_2[0 .. 2])",0, + __gen_e_acsl_initialized_16); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "\\initialized(&dest_2[0 .. 2])"; + __gen_e_acsl_assert_data_16.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 48; + __e_acsl_assert(__gen_e_acsl_initialized_16, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } /*@ assert \initialized(&dest_2[0 .. 2]); */ ; { int __gen_e_acsl_initialized_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "&dest_2[3]",(void *)(& dest_2[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& dest_2[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_17,1,"Assertion","main", - "!\\initialized(&dest_2[3])","tests/libc/str.c",49); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "\\initialized(&dest_2[3])",0, + __gen_e_acsl_initialized_17); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "!\\initialized(&dest_2[3])"; + __gen_e_acsl_assert_data_17.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 49; + __e_acsl_assert(! __gen_e_acsl_initialized_17, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert ¬\initialized(&dest_2[3]); */ ; + /*@ assert !\initialized(&dest_2[3]); */ ; __e_acsl_delete_block((void *)(src_2)); __e_acsl_delete_block((void *)(dest_2)); } @@ -811,43 +1399,114 @@ int main(void) int __gen_e_acsl_size_15; int __gen_e_acsl_if_15; int __gen_e_acsl_initialized_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "(char *)dest_3",(void *)(dest_3)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "sizeof(char)",0,1); __gen_e_acsl_size_15 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0, + __gen_e_acsl_size_15); if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0; - else __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0, + __gen_e_acsl_size_15); + __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + } __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(dest_3 + 1 * 0), (size_t)__gen_e_acsl_if_15); - __e_acsl_assert(__gen_e_acsl_initialized_18,1,"Assertion","main", - "\\initialized(&dest_3[0 .. 1])","tests/libc/str.c",55); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "\\initialized(&dest_3[0 .. 1])",0, + __gen_e_acsl_initialized_18); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "\\initialized(&dest_3[0 .. 1])"; + __gen_e_acsl_assert_data_18.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 55; + __e_acsl_assert(__gen_e_acsl_initialized_18, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } /*@ assert \initialized(&dest_3[0 .. 1]); */ ; { int __gen_e_acsl_size_16; int __gen_e_acsl_if_16; int __gen_e_acsl_initialized_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19, + "(char *)dest_3",(void *)(dest_3)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "sizeof(char)",0,1); __gen_e_acsl_size_16 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"size",0, + __gen_e_acsl_size_16); if (__gen_e_acsl_size_16 <= 0) __gen_e_acsl_if_16 = 0; - else __gen_e_acsl_if_16 = __gen_e_acsl_size_16; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"size",0, + __gen_e_acsl_size_16); + __gen_e_acsl_if_16 = __gen_e_acsl_size_16; + } __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)(dest_3 + 1 * 2), (size_t)__gen_e_acsl_if_16); - __e_acsl_assert(! __gen_e_acsl_initialized_19,1,"Assertion","main", - "!\\initialized(&dest_3[2 .. 3])","tests/libc/str.c", - 56); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "\\initialized(&dest_3[2 .. 3])",0, + __gen_e_acsl_initialized_19); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "!\\initialized(&dest_3[2 .. 3])"; + __gen_e_acsl_assert_data_19.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 56; + __e_acsl_assert(! __gen_e_acsl_initialized_19, + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert ¬\initialized(&dest_3[2 .. 3]); */ ; + /*@ assert !\initialized(&dest_3[2 .. 3]); */ ; { int __gen_e_acsl_size_17; int __gen_e_acsl_if_17; int __gen_e_acsl_initialized_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20, + "(char *)src_3",(void *)(src_3)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "sizeof(char)",0,1); __gen_e_acsl_size_17 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0, + __gen_e_acsl_size_17); if (__gen_e_acsl_size_17 <= 0) __gen_e_acsl_if_17 = 0; - else __gen_e_acsl_if_17 = __gen_e_acsl_size_17; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0, + __gen_e_acsl_size_17); + __gen_e_acsl_if_17 = __gen_e_acsl_size_17; + } __gen_e_acsl_initialized_20 = __e_acsl_initialized((void *)(src_3 + 1 * 0), (size_t)__gen_e_acsl_if_17); - __e_acsl_assert(__gen_e_acsl_initialized_20,1,"Assertion","main", - "\\initialized(&src_3[0 .. 2])","tests/libc/str.c",57); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "\\initialized(&src_3[0 .. 2])",0, + __gen_e_acsl_initialized_20); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "\\initialized(&src_3[0 .. 2])"; + __gen_e_acsl_assert_data_20.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 57; + __e_acsl_assert(__gen_e_acsl_initialized_20, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } /*@ assert \initialized(&src_3[0 .. 2]); */ ; __gen_e_acsl_strncat(dest_3,(char const *)(src_3),(unsigned long)1); @@ -855,24 +1514,64 @@ int main(void) int __gen_e_acsl_size_18; int __gen_e_acsl_if_18; int __gen_e_acsl_initialized_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21, + "(char *)dest_3",(void *)(dest_3)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "sizeof(char)",0,1); __gen_e_acsl_size_18 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"size",0, + __gen_e_acsl_size_18); if (__gen_e_acsl_size_18 <= 0) __gen_e_acsl_if_18 = 0; - else __gen_e_acsl_if_18 = __gen_e_acsl_size_18; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"size",0, + __gen_e_acsl_size_18); + __gen_e_acsl_if_18 = __gen_e_acsl_size_18; + } __gen_e_acsl_initialized_21 = __e_acsl_initialized((void *)(dest_3 + 1 * 0), (size_t)__gen_e_acsl_if_18); - __e_acsl_assert(__gen_e_acsl_initialized_21,1,"Assertion","main", - "\\initialized(&dest_3[0 .. 2])","tests/libc/str.c",60); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "\\initialized(&dest_3[0 .. 2])",0, + __gen_e_acsl_initialized_21); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "\\initialized(&dest_3[0 .. 2])"; + __gen_e_acsl_assert_data_21.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 60; + __e_acsl_assert(__gen_e_acsl_initialized_21, + & __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } /*@ assert \initialized(&dest_3[0 .. 2]); */ ; { int __gen_e_acsl_initialized_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22, + "&dest_3[3]",(void *)(& dest_3[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_22 = __e_acsl_initialized((void *)(& dest_3[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_22,1,"Assertion","main", - "!\\initialized(&dest_3[3])","tests/libc/str.c",61); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "\\initialized(&dest_3[3])",0, + __gen_e_acsl_initialized_22); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "!\\initialized(&dest_3[3])"; + __gen_e_acsl_assert_data_22.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 61; + __e_acsl_assert(! __gen_e_acsl_initialized_22, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert ¬\initialized(&dest_3[3]); */ ; + /*@ assert !\initialized(&dest_3[3]); */ ; __e_acsl_delete_block((void *)(src_3)); __e_acsl_delete_block((void *)(dest_3)); } @@ -887,43 +1586,114 @@ int main(void) int __gen_e_acsl_size_19; int __gen_e_acsl_if_19; int __gen_e_acsl_initialized_23; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23, + "(char *)dest_4",(void *)(dest_4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "sizeof(char)",0,1); __gen_e_acsl_size_19 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0, + __gen_e_acsl_size_19); if (__gen_e_acsl_size_19 <= 0) __gen_e_acsl_if_19 = 0; - else __gen_e_acsl_if_19 = __gen_e_acsl_size_19; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0, + __gen_e_acsl_size_19); + __gen_e_acsl_if_19 = __gen_e_acsl_size_19; + } __gen_e_acsl_initialized_23 = __e_acsl_initialized((void *)(dest_4 + 1 * 0), (size_t)__gen_e_acsl_if_19); - __e_acsl_assert(__gen_e_acsl_initialized_23,1,"Assertion","main", - "\\initialized(&dest_4[0 .. 1])","tests/libc/str.c",67); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "\\initialized(&dest_4[0 .. 1])",0, + __gen_e_acsl_initialized_23); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "\\initialized(&dest_4[0 .. 1])"; + __gen_e_acsl_assert_data_23.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 67; + __e_acsl_assert(__gen_e_acsl_initialized_23, + & __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); } /*@ assert \initialized(&dest_4[0 .. 1]); */ ; { int __gen_e_acsl_size_20; int __gen_e_acsl_if_20; int __gen_e_acsl_initialized_24; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24, + "(char *)dest_4",(void *)(dest_4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "sizeof(char)",0,1); __gen_e_acsl_size_20 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0, + __gen_e_acsl_size_20); if (__gen_e_acsl_size_20 <= 0) __gen_e_acsl_if_20 = 0; - else __gen_e_acsl_if_20 = __gen_e_acsl_size_20; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0, + __gen_e_acsl_size_20); + __gen_e_acsl_if_20 = __gen_e_acsl_size_20; + } __gen_e_acsl_initialized_24 = __e_acsl_initialized((void *)(dest_4 + 1 * 2), (size_t)__gen_e_acsl_if_20); - __e_acsl_assert(! __gen_e_acsl_initialized_24,1,"Assertion","main", - "!\\initialized(&dest_4[2 .. 3])","tests/libc/str.c", - 68); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "\\initialized(&dest_4[2 .. 3])",0, + __gen_e_acsl_initialized_24); + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "Assertion"; + __gen_e_acsl_assert_data_24.pred_txt = "!\\initialized(&dest_4[2 .. 3])"; + __gen_e_acsl_assert_data_24.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 68; + __e_acsl_assert(! __gen_e_acsl_initialized_24, + & __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); } - /*@ assert ¬\initialized(&dest_4[2 .. 3]); */ ; + /*@ assert !\initialized(&dest_4[2 .. 3]); */ ; { int __gen_e_acsl_size_21; int __gen_e_acsl_if_21; int __gen_e_acsl_initialized_25; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25, + "(char *)src_4",(void *)(src_4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(char)",0,1); __gen_e_acsl_size_21 = 1 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_21); if (__gen_e_acsl_size_21 <= 0) __gen_e_acsl_if_21 = 0; - else __gen_e_acsl_if_21 = __gen_e_acsl_size_21; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_21); + __gen_e_acsl_if_21 = __gen_e_acsl_size_21; + } __gen_e_acsl_initialized_25 = __e_acsl_initialized((void *)(src_4 + 1 * 0), (size_t)__gen_e_acsl_if_21); - __e_acsl_assert(__gen_e_acsl_initialized_25,1,"Assertion","main", - "\\initialized(&src_4[0 .. 1])","tests/libc/str.c",69); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "\\initialized(&src_4[0 .. 1])",0, + __gen_e_acsl_initialized_25); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "\\initialized(&src_4[0 .. 1])"; + __gen_e_acsl_assert_data_25.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 69; + __e_acsl_assert(__gen_e_acsl_initialized_25, + & __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); } /*@ assert \initialized(&src_4[0 .. 1]); */ ; __gen_e_acsl_strncat(dest_4,(char const *)(src_4),(unsigned long)2); @@ -931,24 +1701,64 @@ int main(void) int __gen_e_acsl_size_22; int __gen_e_acsl_if_22; int __gen_e_acsl_initialized_26; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26, + "(char *)dest_4",(void *)(dest_4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "sizeof(char)",0,1); __gen_e_acsl_size_22 = 1 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0, + __gen_e_acsl_size_22); if (__gen_e_acsl_size_22 <= 0) __gen_e_acsl_if_22 = 0; - else __gen_e_acsl_if_22 = __gen_e_acsl_size_22; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0, + __gen_e_acsl_size_22); + __gen_e_acsl_if_22 = __gen_e_acsl_size_22; + } __gen_e_acsl_initialized_26 = __e_acsl_initialized((void *)(dest_4 + 1 * 0), (size_t)__gen_e_acsl_if_22); - __e_acsl_assert(__gen_e_acsl_initialized_26,1,"Assertion","main", - "\\initialized(&dest_4[0 .. 2])","tests/libc/str.c",72); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "\\initialized(&dest_4[0 .. 2])",0, + __gen_e_acsl_initialized_26); + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "Assertion"; + __gen_e_acsl_assert_data_26.pred_txt = "\\initialized(&dest_4[0 .. 2])"; + __gen_e_acsl_assert_data_26.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_26.fct = "main"; + __gen_e_acsl_assert_data_26.line = 72; + __e_acsl_assert(__gen_e_acsl_initialized_26, + & __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); } /*@ assert \initialized(&dest_4[0 .. 2]); */ ; { int __gen_e_acsl_initialized_27; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27, + "&dest_4[3]",(void *)(& dest_4[3])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized_27 = __e_acsl_initialized((void *)(& dest_4[3]), sizeof(char)); - __e_acsl_assert(! __gen_e_acsl_initialized_27,1,"Assertion","main", - "!\\initialized(&dest_4[3])","tests/libc/str.c",73); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27, + "\\initialized(&dest_4[3])",0, + __gen_e_acsl_initialized_27); + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "Assertion"; + __gen_e_acsl_assert_data_27.pred_txt = "!\\initialized(&dest_4[3])"; + __gen_e_acsl_assert_data_27.file = "tests/libc/str.c"; + __gen_e_acsl_assert_data_27.fct = "main"; + __gen_e_acsl_assert_data_27.line = 73; + __e_acsl_assert(! __gen_e_acsl_initialized_27, + & __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); } - /*@ assert ¬\initialized(&dest_4[3]); */ ; + /*@ assert !\initialized(&dest_4[3]); */ ; __e_acsl_delete_block((void *)(src_4)); __e_acsl_delete_block((void *)(dest_4)); } diff --git a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle index 218f631f75fdad170fc5d433dd7a2b5c94346209..063513be8b69a14d5df4c5e2f38ba83debea7ce5 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle @@ -40,11 +40,98 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/string.h:135: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:134: Warning: function __gen_e_acsl_memset: postcondition 'acsl_c_equiv' got status unknown. +[eva:alarm] tests/libc/mem.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:102: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:101: Warning: function __gen_e_acsl_memcpy: postcondition 'copied_contents' got status unknown. +[eva:alarm] tests/libc/mem.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:125: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:124: Warning: function __gen_e_acsl_memmove: postcondition 'copied_contents' got status unknown. +[eva:alarm] tests/libc/mem.c:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/mem.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle index e477cc3d8212ab45c130b864f2ea26044a9e2607..e3fd378172df44241adf78824a3738d7d6bae1d3 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle @@ -1,20 +1,53 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/libc/sprintf.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/sprintf.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:13: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/libc/sprintf.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/sprintf.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:14: Warning: assertion got status unknown. +[eva:alarm] tests/libc/sprintf.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/sprintf.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:21: Warning: assertion got status unknown. +[eva:alarm] tests/libc/sprintf.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:22: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:22: Warning: assertion got status unknown. +[eva:alarm] tests/libc/sprintf.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/sprintf.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:29: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:29: Warning: assertion got status unknown. +[eva:alarm] tests/libc/sprintf.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/sprintf.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/sprintf.c:30: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/sprintf.c:30: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle index b9b98bcc628913f1dea52d98fb97c33115ee181c..2e04b464ae0b12258d1104ea66575204cfff0230 100644 --- a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle +++ b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle @@ -136,10 +136,31 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/libc/str.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/str.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:367: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:374: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:373: Warning: function __gen_e_acsl_strcpy: postcondition 'equal_contents' got status unknown. +[eva:alarm] tests/libc/str.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/libc/str.c:16: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/libc/str.c:16: Warning: assertion got status unknown. +[eva:alarm] tests/libc/str.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/str.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/libc/str.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle index efd026311297e55d8fefb674326118e6ece88624..cf9fff8f793ad2c431c3fe57db34b9dbae3c06ed 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle @@ -1,2 +1,11 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/addrOf.i:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/addrOf.i:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/addrOf.i:16: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle index efd026311297e55d8fefb674326118e6ece88624..5a764aec8287bf767cec6397ea67d06acd2dfaff 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/alias.i:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/alias.i:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle index efd026311297e55d8fefb674326118e6ece88624..edbaf9d69d262c617cb8811beffbe7a1e41161f8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle @@ -1,2 +1,26 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/array_overflow.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:42: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/array_overflow.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle index efd026311297e55d8fefb674326118e6ece88624..fa9837aeceda7a26e668d47e235ebf50ce7ac37a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle @@ -1,2 +1,71 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/base_addr.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:17: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:18: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:25: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:27: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:29: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:40: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:46: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:51: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:57: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:59: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:61: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/base_addr.c:63: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle index efd026311297e55d8fefb674326118e6ece88624..abce1f03dd5d982d61bfcf3ba2a0aaa976861423 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle @@ -1,2 +1,125 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/block_length.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:17: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:32: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:38: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:46: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:46: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:46: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:52: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:52: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:54: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_length.c:54: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle index 391720dab80eb827c5e58ab5259c4a25000d433e..a016798e7d4cff10a66ca3de32b5be18cae68d2a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle @@ -1,13 +1,91 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/block_valid.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:19: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:24: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:44: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/block_valid.c:44: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/block_valid.c:45: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:45: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:45: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:45: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/block_valid.c:45: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/block_valid.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/block_valid.c:47: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/block_valid.c:47: Warning: assertion got status unknown. +[eva:alarm] tests/memory/block_valid.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/block_valid.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/block_valid.c:49: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/block_valid.c:49: Warning: diff --git a/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle index efd026311297e55d8fefb674326118e6ece88624..0b45c4d7bc7732256b8c7ab4ce696812463ab9f9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/bypassed_var.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/bypassed_var.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle index efd026311297e55d8fefb674326118e6ece88624..c0c951a8d3accb1968f964c8d7baa85b7bc1c106 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/call.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/call.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle index efd026311297e55d8fefb674326118e6ece88624..ad59073eae02d11d24cb5eb1a3f1992161107aa9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle @@ -1,2 +1,68 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/compound_initializers.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:24: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:25: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:27: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:32: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/compound_initializers.c:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle index efd026311297e55d8fefb674326118e6ece88624..067f47f9b04b73ef9b055a7c34b51f764558cf8a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle @@ -1,2 +1,32 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/decl_in_switch.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:45: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:45: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:74: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:74: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:80: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/decl_in_switch.c:80: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle index 965ff85803169a13ec505dc05504dd6b12557d30..162e8c59c130bc048b544ecb0d972b4cc598b6cc 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle @@ -1,7 +1,24 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/early_exit.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/early_exit.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/early_exit.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/early_exit.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:locals-escaping] tests/memory/early_exit.c:14: Warning: locals {a} escaping the scope of a block of goto_bts through p [eva:alarm] tests/memory/early_exit.c:18: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&p); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/early_exit.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/early_exit.c:18: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&p); diff --git a/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle index efd026311297e55d8fefb674326118e6ece88624..9ded20926422eeb54a5a7f00be68e0dda8800783 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/errno.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/errno.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/errno.c:11: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/errno.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c b/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c index 77eb66c73434ef0a19ff2a79c1618a08e4cef21e..f61ad04efb3ee5089040def3cd8832a77b7140da 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -20,9 +20,22 @@ void f(void) m = 123; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","f", - "\\initialized(p)","tests/memory/addrOf.i",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(p)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/addrOf.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(p); */ ; __e_acsl_delete_block((void *)(& p)); @@ -37,9 +50,22 @@ int main(void) __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; f(); - __e_acsl_assert(& x == & x,1,"Assertion","main","&x == &x", - "tests/memory/addrOf.i",16); - /*@ assert &x ≡ &x; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x", + (void *)(& x)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x", + (void *)(& x)); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "&x == &x"; + __gen_e_acsl_assert_data.file = "tests/memory/addrOf.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(& x == & x,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert &x == &x; */ ; __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c b/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c index c056a0c0b85eeb3ddc2fde3335ac14824a34261a..8fde27e576fe0037c66076b0985c5d5ac5e1ae7d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -26,10 +26,24 @@ int main(void) f(& i,255); { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&i", + (void *)(& i)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& i), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&i)","tests/memory/alias.i",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&i)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&i)"; + __gen_e_acsl_assert_data.file = "tests/memory/alias.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(&i); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c b/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c index 9ddd7c0b569e52ac51fabaf2ece1c78ecb2847ee..5063118cbb709273aa4f1f3483c53ccdebfcdae0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -30,27 +31,55 @@ int main(void) int b[4] = {5, 6, 7, 8}; { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a[4]", + (void *)(& a[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& a[4]),sizeof(int), (void *)(a),(void *)0); - __e_acsl_assert(! __gen_e_acsl_valid,1,"Assertion","main", - "!\\valid(&a[4])","tests/memory/array_overflow.c",31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a[4])", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(&a[4])"; + __gen_e_acsl_assert_data.file = "tests/memory/array_overflow.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 31; + __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(&a[4]); */ ; + /*@ assert !\valid(&a[4]); */ ; int *ap = a; __e_acsl_store_block((void *)(& ap),(size_t)8); __e_acsl_full_init((void *)(& ap)); int *bp = b; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "&(*((int (*)[])ap))[4]", + (void *)(& (*((int (*)[])ap))[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& (*((int (*)[])ap))[4]), sizeof(int), (void *)(*((int (*)[])ap)), (void *)0); - __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main", - "!\\valid(&(*((int (*)[])ap))[4])", - "tests/memory/array_overflow.c",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&(*((int (*)[])ap))[4])",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(&(*((int (*)[])ap))[4])"; + __gen_e_acsl_assert_data_2.file = "tests/memory/array_overflow.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 36; + __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(&(*((int (*)[])ap))[4]); */ ; + /*@ assert !\valid(&(*((int (*)[])ap))[4]); */ ; struct dat d = {.arr = {4, 5, 6, 7}}; __e_acsl_store_block((void *)(& d),(size_t)16); __e_acsl_full_init((void *)(& d)); @@ -62,21 +91,50 @@ int main(void) __e_acsl_full_init((void *)(& d2)); { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&d.arr[4]", + (void *)(& d.arr[4])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& d.arr[4]),sizeof(int), (void *)(& d.arr[0]),(void *)0); - __e_acsl_assert(! __gen_e_acsl_valid_3,1,"Assertion","main", - "!\\valid(&d.arr[4])","tests/memory/array_overflow.c",42); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(&d.arr[4])",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(&d.arr[4])"; + __gen_e_acsl_assert_data_3.file = "tests/memory/array_overflow.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 42; + __e_acsl_assert(! __gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(&d.arr[4]); */ ; + /*@ assert !\valid(&d.arr[4]); */ ; { int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "&(d2.p[1])->arr[2]", + (void *)(& (d2.p[1])->arr[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& (d2.p[1])->arr[2]), sizeof(int), (void *)(& (d2.p[1])->arr[0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main", - "\\valid(&(d2.p[1])->arr[2])", - "tests/memory/array_overflow.c",43); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(&(d2.p[1])->arr[2])",0, + __gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&(d2.p[1])->arr[2])"; + __gen_e_acsl_assert_data_4.file = "tests/memory/array_overflow.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 43; + __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(&(d2.p[1])->arr[2]); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c b/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c index df3b503ecb9c9d7a4cfecbc76de75042ff1ab23a..f2d790c6c669a71a568f4715f273b81038ce508b 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -37,59 +38,119 @@ int main(void) { void *__gen_e_acsl_base_addr; void *__gen_e_acsl_base_addr_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_base_addr = __e_acsl_base_addr((void *)(A)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "\\base_addr((int *)A)", + __gen_e_acsl_base_addr); __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)(& A)); - __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,1, - "Assertion","main", - "\\base_addr((int *)A) == \\base_addr(&A)", - "tests/memory/base_addr.c",13); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "\\base_addr(&A)",__gen_e_acsl_base_addr_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\base_addr((int *)A) == \\base_addr(&A)"; + __gen_e_acsl_assert_data.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \base_addr((int *)A) ≡ \base_addr(&A); */ ; + /*@ assert \base_addr((int *)A) == \base_addr(&A); */ ; { void *__gen_e_acsl_base_addr_3; void *__gen_e_acsl_base_addr_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)(A)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "\\base_addr((int *)A)", + __gen_e_acsl_base_addr_3); __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)PA); - __e_acsl_assert(__gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4,1, - "Assertion","main", - "\\base_addr((int *)A) == \\base_addr(PA)", - "tests/memory/base_addr.c",14); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "\\base_addr(PA)",__gen_e_acsl_base_addr_4); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\base_addr((int *)A) == \\base_addr(PA)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \base_addr((int *)A) ≡ \base_addr(PA); */ ; + /*@ assert \base_addr((int *)A) == \base_addr(PA); */ ; { void *__gen_e_acsl_base_addr_5; void *__gen_e_acsl_base_addr_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; __gen_e_acsl_base_addr_5 = __e_acsl_base_addr((void *)(& A[3])); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\base_addr(&A[3])", + __gen_e_acsl_base_addr_5); __gen_e_acsl_base_addr_6 = __e_acsl_base_addr((void *)PA); - __e_acsl_assert(__gen_e_acsl_base_addr_5 == __gen_e_acsl_base_addr_6,1, - "Assertion","main", - "\\base_addr(&A[3]) == \\base_addr(PA)", - "tests/memory/base_addr.c",15); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "\\base_addr(PA)",__gen_e_acsl_base_addr_6); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\base_addr(&A[3]) == \\base_addr(PA)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_base_addr_5 == __gen_e_acsl_base_addr_6, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \base_addr(&A[3]) ≡ \base_addr(PA); */ ; + /*@ assert \base_addr(&A[3]) == \base_addr(PA); */ ; PA ++; { void *__gen_e_acsl_base_addr_7; void *__gen_e_acsl_base_addr_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; __gen_e_acsl_base_addr_7 = __e_acsl_base_addr((void *)PA); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "\\base_addr(PA)",__gen_e_acsl_base_addr_7); __gen_e_acsl_base_addr_8 = __e_acsl_base_addr((void *)(A)); - __e_acsl_assert(__gen_e_acsl_base_addr_7 == __gen_e_acsl_base_addr_8,1, - "Assertion","main", - "\\base_addr(PA) == \\base_addr((int *)A)", - "tests/memory/base_addr.c",17); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "\\base_addr((int *)A)", + __gen_e_acsl_base_addr_8); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\base_addr(PA) == \\base_addr((int *)A)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 17; + __e_acsl_assert(__gen_e_acsl_base_addr_7 == __gen_e_acsl_base_addr_8, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \base_addr(PA) ≡ \base_addr((int *)A); */ ; + /*@ assert \base_addr(PA) == \base_addr((int *)A); */ ; { void *__gen_e_acsl_base_addr_9; void *__gen_e_acsl_base_addr_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; __gen_e_acsl_base_addr_9 = __e_acsl_base_addr((void *)(PA + 2)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "\\base_addr(PA + 2)", + __gen_e_acsl_base_addr_9); __gen_e_acsl_base_addr_10 = __e_acsl_base_addr((void *)(& A[3])); - __e_acsl_assert(__gen_e_acsl_base_addr_9 == __gen_e_acsl_base_addr_10,1, - "Assertion","main", - "\\base_addr(PA + 2) == \\base_addr(&A[3])", - "tests/memory/base_addr.c",18); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "\\base_addr(&A[3])", + __gen_e_acsl_base_addr_10); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\base_addr(PA + 2) == \\base_addr(&A[3])"; + __gen_e_acsl_assert_data_5.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 18; + __e_acsl_assert(__gen_e_acsl_base_addr_9 == __gen_e_acsl_base_addr_10, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert \base_addr(PA + 2) ≡ \base_addr(&A[3]); */ ; + /*@ assert \base_addr(PA + 2) == \base_addr(&A[3]); */ ; int a[4] = {1, 2, 3, 4}; __e_acsl_store_block((void *)(a),(size_t)16); __e_acsl_full_init((void *)(& a)); @@ -98,60 +159,121 @@ int main(void) { void *__gen_e_acsl_base_addr_11; void *__gen_e_acsl_base_addr_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; __gen_e_acsl_base_addr_11 = __e_acsl_base_addr((void *)(a)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "\\base_addr((int *)a)", + __gen_e_acsl_base_addr_11); __gen_e_acsl_base_addr_12 = __e_acsl_base_addr((void *)(& a)); - __e_acsl_assert(__gen_e_acsl_base_addr_11 == __gen_e_acsl_base_addr_12,1, - "Assertion","main", - "\\base_addr((int *)a) == \\base_addr(&a)", - "tests/memory/base_addr.c",25); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "\\base_addr(&a)",__gen_e_acsl_base_addr_12); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\base_addr((int *)a) == \\base_addr(&a)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 25; + __e_acsl_assert(__gen_e_acsl_base_addr_11 == __gen_e_acsl_base_addr_12, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert \base_addr((int *)a) ≡ \base_addr(&a); */ ; + /*@ assert \base_addr((int *)a) == \base_addr(&a); */ ; { void *__gen_e_acsl_base_addr_13; void *__gen_e_acsl_base_addr_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; __gen_e_acsl_base_addr_13 = __e_acsl_base_addr((void *)(a)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "\\base_addr((int *)a)", + __gen_e_acsl_base_addr_13); __gen_e_acsl_base_addr_14 = __e_acsl_base_addr((void *)pa); - __e_acsl_assert(__gen_e_acsl_base_addr_13 == __gen_e_acsl_base_addr_14,1, - "Assertion","main", - "\\base_addr((int *)a) == \\base_addr(pa)", - "tests/memory/base_addr.c",26); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "\\base_addr(pa)",__gen_e_acsl_base_addr_14); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\base_addr((int *)a) == \\base_addr(pa)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(__gen_e_acsl_base_addr_13 == __gen_e_acsl_base_addr_14, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert \base_addr((int *)a) ≡ \base_addr(pa); */ ; + /*@ assert \base_addr((int *)a) == \base_addr(pa); */ ; { void *__gen_e_acsl_base_addr_15; void *__gen_e_acsl_base_addr_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; __gen_e_acsl_base_addr_15 = __e_acsl_base_addr((void *)(& a[3])); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "\\base_addr(&a[3])", + __gen_e_acsl_base_addr_15); __gen_e_acsl_base_addr_16 = __e_acsl_base_addr((void *)pa); - __e_acsl_assert(__gen_e_acsl_base_addr_15 == __gen_e_acsl_base_addr_16,1, - "Assertion","main", - "\\base_addr(&a[3]) == \\base_addr(pa)", - "tests/memory/base_addr.c",27); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "\\base_addr(pa)",__gen_e_acsl_base_addr_16); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\base_addr(&a[3]) == \\base_addr(pa)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 27; + __e_acsl_assert(__gen_e_acsl_base_addr_15 == __gen_e_acsl_base_addr_16, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert \base_addr(&a[3]) ≡ \base_addr(pa); */ ; + /*@ assert \base_addr(&a[3]) == \base_addr(pa); */ ; __e_acsl_full_init((void *)(& pa)); pa ++; { void *__gen_e_acsl_base_addr_17; void *__gen_e_acsl_base_addr_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_base_addr_17 = __e_acsl_base_addr((void *)pa); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "\\base_addr(pa)",__gen_e_acsl_base_addr_17); __gen_e_acsl_base_addr_18 = __e_acsl_base_addr((void *)(a)); - __e_acsl_assert(__gen_e_acsl_base_addr_17 == __gen_e_acsl_base_addr_18,1, - "Assertion","main", - "\\base_addr(pa) == \\base_addr((int *)a)", - "tests/memory/base_addr.c",29); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "\\base_addr((int *)a)", + __gen_e_acsl_base_addr_18); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\base_addr(pa) == \\base_addr((int *)a)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 29; + __e_acsl_assert(__gen_e_acsl_base_addr_17 == __gen_e_acsl_base_addr_18, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert \base_addr(pa) ≡ \base_addr((int *)a); */ ; + /*@ assert \base_addr(pa) == \base_addr((int *)a); */ ; { void *__gen_e_acsl_base_addr_19; void *__gen_e_acsl_base_addr_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; __gen_e_acsl_base_addr_19 = __e_acsl_base_addr((void *)(pa + 2)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "\\base_addr(pa + 2)", + __gen_e_acsl_base_addr_19); __gen_e_acsl_base_addr_20 = __e_acsl_base_addr((void *)(a)); - __e_acsl_assert(__gen_e_acsl_base_addr_19 == __gen_e_acsl_base_addr_20,1, - "Assertion","main", - "\\base_addr(pa + 2) == \\base_addr((int *)a)", - "tests/memory/base_addr.c",30); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "\\base_addr((int *)a)", + __gen_e_acsl_base_addr_20); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\base_addr(pa + 2) == \\base_addr((int *)a)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 30; + __e_acsl_assert(__gen_e_acsl_base_addr_19 == __gen_e_acsl_base_addr_20, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert \base_addr(pa + 2) ≡ \base_addr((int *)a); */ ; + /*@ assert \base_addr(pa + 2) == \base_addr((int *)a); */ ; long l = (long)4; __e_acsl_store_block((void *)(& l),(size_t)8); __e_acsl_full_init((void *)(& l)); @@ -161,24 +283,48 @@ int main(void) { void *__gen_e_acsl_base_addr_21; void *__gen_e_acsl_base_addr_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_base_addr_21 = __e_acsl_base_addr((void *)(& l)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "\\base_addr(&l)",__gen_e_acsl_base_addr_21); __gen_e_acsl_base_addr_22 = __e_acsl_base_addr((void *)pl); - __e_acsl_assert(__gen_e_acsl_base_addr_21 == __gen_e_acsl_base_addr_22,1, - "Assertion","main","\\base_addr(&l) == \\base_addr(pl)", - "tests/memory/base_addr.c",35); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "\\base_addr(pl)",__gen_e_acsl_base_addr_22); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\base_addr(&l) == \\base_addr(pl)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 35; + __e_acsl_assert(__gen_e_acsl_base_addr_21 == __gen_e_acsl_base_addr_22, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert \base_addr(&l) ≡ \base_addr(pl); */ ; + /*@ assert \base_addr(&l) == \base_addr(pl); */ ; { void *__gen_e_acsl_base_addr_23; void *__gen_e_acsl_base_addr_24; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; __gen_e_acsl_base_addr_23 = __e_acsl_base_addr((void *)(pl + 2)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "\\base_addr(pl + 2)", + __gen_e_acsl_base_addr_23); __gen_e_acsl_base_addr_24 = __e_acsl_base_addr((void *)(& l)); - __e_acsl_assert(__gen_e_acsl_base_addr_23 == __gen_e_acsl_base_addr_24,1, - "Assertion","main", - "\\base_addr(pl + 2) == \\base_addr(&l)", - "tests/memory/base_addr.c",36); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "\\base_addr(&l)",__gen_e_acsl_base_addr_24); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\base_addr(pl + 2) == \\base_addr(&l)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 36; + __e_acsl_assert(__gen_e_acsl_base_addr_23 == __gen_e_acsl_base_addr_24, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert \base_addr(pl + 2) ≡ \base_addr(&l); */ ; + /*@ assert \base_addr(pl + 2) == \base_addr(&l); */ ; short *pi = (short *)(& l); __e_acsl_store_block((void *)(& pi),(size_t)8); __e_acsl_full_init((void *)(& pi)); @@ -189,23 +335,47 @@ int main(void) { void *__gen_e_acsl_base_addr_25; void *__gen_e_acsl_base_addr_26; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gen_e_acsl_base_addr_25 = __e_acsl_base_addr((void *)pi); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "\\base_addr(pi)",__gen_e_acsl_base_addr_25); __gen_e_acsl_base_addr_26 = __e_acsl_base_addr((void *)pl); - __e_acsl_assert(__gen_e_acsl_base_addr_25 == __gen_e_acsl_base_addr_26,1, - "Assertion","main","\\base_addr(pi) == \\base_addr(pl)", - "tests/memory/base_addr.c",40); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "\\base_addr(pl)",__gen_e_acsl_base_addr_26); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\base_addr(pi) == \\base_addr(pl)"; + __gen_e_acsl_assert_data_13.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 40; + __e_acsl_assert(__gen_e_acsl_base_addr_25 == __gen_e_acsl_base_addr_26, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert \base_addr(pi) ≡ \base_addr(pl); */ ; + /*@ assert \base_addr(pi) == \base_addr(pl); */ ; { void *__gen_e_acsl_base_addr_27; void *__gen_e_acsl_base_addr_28; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; __gen_e_acsl_base_addr_27 = __e_acsl_base_addr((void *)pl); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "\\base_addr(pl)",__gen_e_acsl_base_addr_27); __gen_e_acsl_base_addr_28 = __e_acsl_base_addr((void *)(& l)); - __e_acsl_assert(__gen_e_acsl_base_addr_27 == __gen_e_acsl_base_addr_28,1, - "Assertion","main","\\base_addr(pl) == \\base_addr(&l)", - "tests/memory/base_addr.c",41); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "\\base_addr(&l)",__gen_e_acsl_base_addr_28); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\base_addr(pl) == \\base_addr(&l)"; + __gen_e_acsl_assert_data_14.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 41; + __e_acsl_assert(__gen_e_acsl_base_addr_27 == __gen_e_acsl_base_addr_28, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert \base_addr(pl) ≡ \base_addr(&l); */ ; + /*@ assert \base_addr(pl) == \base_addr(&l); */ ; char *p = malloc((unsigned long)12); __e_acsl_store_block((void *)(& p),(size_t)8); __e_acsl_full_init((void *)(& p)); @@ -215,59 +385,121 @@ int main(void) { void *__gen_e_acsl_base_addr_29; void *__gen_e_acsl_base_addr_30; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; __gen_e_acsl_base_addr_29 = __e_acsl_base_addr((void *)p); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "\\base_addr(p)",__gen_e_acsl_base_addr_29); __gen_e_acsl_base_addr_30 = __e_acsl_base_addr((void *)pd); - __e_acsl_assert(__gen_e_acsl_base_addr_29 == __gen_e_acsl_base_addr_30,1, - "Assertion","main","\\base_addr(p) == \\base_addr(pd)", - "tests/memory/base_addr.c",46); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "\\base_addr(pd)",__gen_e_acsl_base_addr_30); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\base_addr(p) == \\base_addr(pd)"; + __gen_e_acsl_assert_data_15.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 46; + __e_acsl_assert(__gen_e_acsl_base_addr_29 == __gen_e_acsl_base_addr_30, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert \base_addr(p) ≡ \base_addr(pd); */ ; + /*@ assert \base_addr(p) == \base_addr(pd); */ ; { void *__gen_e_acsl_base_addr_31; void *__gen_e_acsl_base_addr_32; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; __gen_e_acsl_base_addr_31 = __e_acsl_base_addr((void *)(p + 1)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16, + "\\base_addr(p + 1)", + __gen_e_acsl_base_addr_31); __gen_e_acsl_base_addr_32 = __e_acsl_base_addr((void *)(pd + 5)); - __e_acsl_assert(__gen_e_acsl_base_addr_31 == __gen_e_acsl_base_addr_32,1, - "Assertion","main", - "\\base_addr(p + 1) == \\base_addr(pd + 5)", - "tests/memory/base_addr.c",47); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16, + "\\base_addr(pd + 5)", + __gen_e_acsl_base_addr_32); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "\\base_addr(p + 1) == \\base_addr(pd + 5)"; + __gen_e_acsl_assert_data_16.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 47; + __e_acsl_assert(__gen_e_acsl_base_addr_31 == __gen_e_acsl_base_addr_32, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert \base_addr(p + 1) ≡ \base_addr(pd + 5); */ ; + /*@ assert \base_addr(p + 1) == \base_addr(pd + 5); */ ; { void *__gen_e_acsl_base_addr_33; void *__gen_e_acsl_base_addr_34; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; __gen_e_acsl_base_addr_33 = __e_acsl_base_addr((void *)(p + 11)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "\\base_addr(p + 11)", + __gen_e_acsl_base_addr_33); __gen_e_acsl_base_addr_34 = __e_acsl_base_addr((void *)(pd + 1)); - __e_acsl_assert(__gen_e_acsl_base_addr_33 == __gen_e_acsl_base_addr_34,1, - "Assertion","main", - "\\base_addr(p + 11) == \\base_addr(pd + 1)", - "tests/memory/base_addr.c",48); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "\\base_addr(pd + 1)", + __gen_e_acsl_base_addr_34); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\base_addr(p + 11) == \\base_addr(pd + 1)"; + __gen_e_acsl_assert_data_17.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 48; + __e_acsl_assert(__gen_e_acsl_base_addr_33 == __gen_e_acsl_base_addr_34, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert \base_addr(p + 11) ≡ \base_addr(pd + 1); */ ; + /*@ assert \base_addr(p + 11) == \base_addr(pd + 1); */ ; __e_acsl_full_init((void *)(& p)); p += 5; { void *__gen_e_acsl_base_addr_35; void *__gen_e_acsl_base_addr_36; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; __gen_e_acsl_base_addr_35 = __e_acsl_base_addr((void *)(p + 5)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "\\base_addr(p + 5)", + __gen_e_acsl_base_addr_35); __gen_e_acsl_base_addr_36 = __e_acsl_base_addr((void *)pd); - __e_acsl_assert(__gen_e_acsl_base_addr_35 == __gen_e_acsl_base_addr_36,1, - "Assertion","main", - "\\base_addr(p + 5) == \\base_addr(pd)", - "tests/memory/base_addr.c",50); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "\\base_addr(pd)",__gen_e_acsl_base_addr_36); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "\\base_addr(p + 5) == \\base_addr(pd)"; + __gen_e_acsl_assert_data_18.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 50; + __e_acsl_assert(__gen_e_acsl_base_addr_35 == __gen_e_acsl_base_addr_36, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } - /*@ assert \base_addr(p + 5) ≡ \base_addr(pd); */ ; + /*@ assert \base_addr(p + 5) == \base_addr(pd); */ ; { void *__gen_e_acsl_base_addr_37; void *__gen_e_acsl_base_addr_38; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; __gen_e_acsl_base_addr_37 = __e_acsl_base_addr((void *)(p - 5)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19, + "\\base_addr(p - 5)", + __gen_e_acsl_base_addr_37); __gen_e_acsl_base_addr_38 = __e_acsl_base_addr((void *)pd); - __e_acsl_assert(__gen_e_acsl_base_addr_37 == __gen_e_acsl_base_addr_38,1, - "Assertion","main", - "\\base_addr(p - 5) == \\base_addr(pd)", - "tests/memory/base_addr.c",51); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19, + "\\base_addr(pd)",__gen_e_acsl_base_addr_38); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "\\base_addr(p - 5) == \\base_addr(pd)"; + __gen_e_acsl_assert_data_19.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 51; + __e_acsl_assert(__gen_e_acsl_base_addr_37 == __gen_e_acsl_base_addr_38, + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert \base_addr(p - 5) ≡ \base_addr(pd); */ ; + /*@ assert \base_addr(p - 5) == \base_addr(pd); */ ; long *q = malloc((unsigned long)30 * sizeof(long)); __e_acsl_store_block((void *)(& q),(size_t)8); __e_acsl_full_init((void *)(& q)); @@ -277,49 +509,97 @@ int main(void) { void *__gen_e_acsl_base_addr_39; void *__gen_e_acsl_base_addr_40; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; __gen_e_acsl_base_addr_39 = __e_acsl_base_addr((void *)q); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20, + "\\base_addr(q)",__gen_e_acsl_base_addr_39); __gen_e_acsl_base_addr_40 = __e_acsl_base_addr((void *)qd); - __e_acsl_assert(__gen_e_acsl_base_addr_39 == __gen_e_acsl_base_addr_40,1, - "Assertion","main","\\base_addr(q) == \\base_addr(qd)", - "tests/memory/base_addr.c",57); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20, + "\\base_addr(qd)",__gen_e_acsl_base_addr_40); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "\\base_addr(q) == \\base_addr(qd)"; + __gen_e_acsl_assert_data_20.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 57; + __e_acsl_assert(__gen_e_acsl_base_addr_39 == __gen_e_acsl_base_addr_40, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } - /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ; + /*@ assert \base_addr(q) == \base_addr(qd); */ ; __e_acsl_full_init((void *)(& q)); q ++; { void *__gen_e_acsl_base_addr_41; void *__gen_e_acsl_base_addr_42; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; __gen_e_acsl_base_addr_41 = __e_acsl_base_addr((void *)q); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21, + "\\base_addr(q)",__gen_e_acsl_base_addr_41); __gen_e_acsl_base_addr_42 = __e_acsl_base_addr((void *)qd); - __e_acsl_assert(__gen_e_acsl_base_addr_41 == __gen_e_acsl_base_addr_42,1, - "Assertion","main","\\base_addr(q) == \\base_addr(qd)", - "tests/memory/base_addr.c",59); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21, + "\\base_addr(qd)",__gen_e_acsl_base_addr_42); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "\\base_addr(q) == \\base_addr(qd)"; + __gen_e_acsl_assert_data_21.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 59; + __e_acsl_assert(__gen_e_acsl_base_addr_41 == __gen_e_acsl_base_addr_42, + & __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } - /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ; + /*@ assert \base_addr(q) == \base_addr(qd); */ ; __e_acsl_full_init((void *)(& q)); q += 2; { void *__gen_e_acsl_base_addr_43; void *__gen_e_acsl_base_addr_44; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; __gen_e_acsl_base_addr_43 = __e_acsl_base_addr((void *)q); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22, + "\\base_addr(q)",__gen_e_acsl_base_addr_43); __gen_e_acsl_base_addr_44 = __e_acsl_base_addr((void *)qd); - __e_acsl_assert(__gen_e_acsl_base_addr_43 == __gen_e_acsl_base_addr_44,1, - "Assertion","main","\\base_addr(q) == \\base_addr(qd)", - "tests/memory/base_addr.c",61); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22, + "\\base_addr(qd)",__gen_e_acsl_base_addr_44); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "\\base_addr(q) == \\base_addr(qd)"; + __gen_e_acsl_assert_data_22.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 61; + __e_acsl_assert(__gen_e_acsl_base_addr_43 == __gen_e_acsl_base_addr_44, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ; + /*@ assert \base_addr(q) == \base_addr(qd); */ ; __e_acsl_full_init((void *)(& q)); q += 4; { void *__gen_e_acsl_base_addr_45; void *__gen_e_acsl_base_addr_46; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; __gen_e_acsl_base_addr_45 = __e_acsl_base_addr((void *)q); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23, + "\\base_addr(q)",__gen_e_acsl_base_addr_45); __gen_e_acsl_base_addr_46 = __e_acsl_base_addr((void *)qd); - __e_acsl_assert(__gen_e_acsl_base_addr_45 == __gen_e_acsl_base_addr_46,1, - "Assertion","main","\\base_addr(q) == \\base_addr(qd)", - "tests/memory/base_addr.c",63); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23, + "\\base_addr(qd)",__gen_e_acsl_base_addr_46); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "\\base_addr(q) == \\base_addr(qd)"; + __gen_e_acsl_assert_data_23.file = "tests/memory/base_addr.c"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 63; + __e_acsl_assert(__gen_e_acsl_base_addr_45 == __gen_e_acsl_base_addr_46, + & __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); } - /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ; + /*@ assert \base_addr(q) == \base_addr(qd); */ ; __retres = 0; __e_acsl_delete_block((void *)(& qd)); __e_acsl_delete_block((void *)(& q)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c b/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c index fe71ab122788e51417f97d655b22442bf014b5e4..ae09a502743b9bc87c66c50500d283b54b6d4d82 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -34,40 +35,100 @@ int main(void) PA = (int *)(& A); { unsigned long __gen_e_acsl_block_length; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)A", + (void *)(A)); __gen_e_acsl_block_length = __e_acsl_block_length((void *)(A)); - __e_acsl_assert(__gen_e_acsl_block_length == 16UL,1,"Assertion","main", - "\\block_length((int *)A) == sizeof(A)", - "tests/memory/block_length.c",13); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "\\block_length((int *)A)",0, + __gen_e_acsl_block_length); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(A)",0,16); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\block_length((int *)A) == sizeof(A)"; + __gen_e_acsl_assert_data.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_block_length == 16UL, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \block_length((int *)A) ≡ sizeof(A); */ ; + /*@ assert \block_length((int *)A) == sizeof(A); */ ; { unsigned long __gen_e_acsl_block_length_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&A[3]", + (void *)(& A[3])); __gen_e_acsl_block_length_2 = __e_acsl_block_length((void *)(& A[3])); - __e_acsl_assert(__gen_e_acsl_block_length_2 == 16UL,1,"Assertion","main", - "\\block_length(&A[3]) == sizeof(A)", - "tests/memory/block_length.c",14); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "\\block_length(&A[3])",0, + __gen_e_acsl_block_length_2); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(A)",0, + 16); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(&A[3]) == sizeof(A)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_block_length_2 == 16UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \block_length(&A[3]) ≡ sizeof(A); */ ; + /*@ assert \block_length(&A[3]) == sizeof(A); */ ; { unsigned long __gen_e_acsl_block_length_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"PA", + (void *)PA); __gen_e_acsl_block_length_3 = __e_acsl_block_length((void *)PA); - __e_acsl_assert(__gen_e_acsl_block_length_3 == 16UL,1,"Assertion","main", - "\\block_length(PA) == sizeof(A)", - "tests/memory/block_length.c",15); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "\\block_length(PA)",0, + __gen_e_acsl_block_length_3); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(A)",0, + 16); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\block_length(PA) == sizeof(A)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_block_length_3 == 16UL, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \block_length(PA) ≡ sizeof(A); */ ; + /*@ assert \block_length(PA) == sizeof(A); */ ; PA ++; { unsigned long __gen_e_acsl_block_length_4; unsigned long __gen_e_acsl_block_length_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"PA", + (void *)PA); __gen_e_acsl_block_length_4 = __e_acsl_block_length((void *)(PA + 1)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "\\block_length(PA + 1)",0, + __gen_e_acsl_block_length_4); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&A[1]", + (void *)(& A[1])); __gen_e_acsl_block_length_5 = __e_acsl_block_length((void *)(& A[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "\\block_length(&A[1])",0, + __gen_e_acsl_block_length_5); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\block_length(PA + 1) == \\block_length(&A[1])"; + __gen_e_acsl_assert_data_4.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 17; __e_acsl_assert(__gen_e_acsl_block_length_4 == __gen_e_acsl_block_length_5, - 1,"Assertion","main", - "\\block_length(PA + 1) == \\block_length(&A[1])", - "tests/memory/block_length.c",17); + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \block_length(PA + 1) ≡ \block_length(&A[1]); */ ; + /*@ assert \block_length(PA + 1) == \block_length(&A[1]); */ ; int a[4] = {1, 2, 3, 4}; __e_acsl_store_block((void *)(a),(size_t)16); __e_acsl_full_init((void *)(& a)); @@ -76,41 +137,103 @@ int main(void) __e_acsl_full_init((void *)(& pa)); { unsigned long __gen_e_acsl_block_length_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int *)a", + (void *)(a)); __gen_e_acsl_block_length_6 = __e_acsl_block_length((void *)(a)); - __e_acsl_assert(__gen_e_acsl_block_length_6 == 16UL,1,"Assertion","main", - "\\block_length((int *)a) == sizeof(a)", - "tests/memory/block_length.c",22); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "\\block_length((int *)a)",0, + __gen_e_acsl_block_length_6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(a)",0, + 16); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\block_length((int *)a) == sizeof(a)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 22; + __e_acsl_assert(__gen_e_acsl_block_length_6 == 16UL, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert \block_length((int *)a) ≡ sizeof(a); */ ; + /*@ assert \block_length((int *)a) == sizeof(a); */ ; { unsigned long __gen_e_acsl_block_length_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a[3]", + (void *)(& a[3])); __gen_e_acsl_block_length_7 = __e_acsl_block_length((void *)(& a[3])); - __e_acsl_assert(__gen_e_acsl_block_length_7 == 16UL,1,"Assertion","main", - "\\block_length(&a[3]) == sizeof(a)", - "tests/memory/block_length.c",23); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "\\block_length(&a[3])",0, + __gen_e_acsl_block_length_7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(a)",0, + 16); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\block_length(&a[3]) == sizeof(a)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 23; + __e_acsl_assert(__gen_e_acsl_block_length_7 == 16UL, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert \block_length(&a[3]) ≡ sizeof(a); */ ; + /*@ assert \block_length(&a[3]) == sizeof(a); */ ; { unsigned long __gen_e_acsl_block_length_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"pa", + (void *)pa); __gen_e_acsl_block_length_8 = __e_acsl_block_length((void *)pa); - __e_acsl_assert(__gen_e_acsl_block_length_8 == 16UL,1,"Assertion","main", - "\\block_length(pa) == sizeof(a)", - "tests/memory/block_length.c",24); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "\\block_length(pa)",0, + __gen_e_acsl_block_length_8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(a)",0, + 16); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\block_length(pa) == sizeof(a)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 24; + __e_acsl_assert(__gen_e_acsl_block_length_8 == 16UL, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert \block_length(pa) ≡ sizeof(a); */ ; + /*@ assert \block_length(pa) == sizeof(a); */ ; __e_acsl_full_init((void *)(& pa)); pa ++; { unsigned long __gen_e_acsl_block_length_9; unsigned long __gen_e_acsl_block_length_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"pa", + (void *)pa); __gen_e_acsl_block_length_9 = __e_acsl_block_length((void *)(pa + 1)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "\\block_length(pa + 1)",0, + __gen_e_acsl_block_length_9); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&a[1]", + (void *)(& a[1])); __gen_e_acsl_block_length_10 = __e_acsl_block_length((void *)(& a[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "\\block_length(&a[1])",0, + __gen_e_acsl_block_length_10); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\block_length(pa + 1) == \\block_length(&a[1])"; + __gen_e_acsl_assert_data_8.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 26; __e_acsl_assert(__gen_e_acsl_block_length_9 == __gen_e_acsl_block_length_10, - 1,"Assertion","main", - "\\block_length(pa + 1) == \\block_length(&a[1])", - "tests/memory/block_length.c",26); + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert \block_length(pa + 1) ≡ \block_length(&a[1]); */ ; + /*@ assert \block_length(pa + 1) == \block_length(&a[1]); */ ; long l = (long)4; __e_acsl_store_block((void *)(& l),(size_t)8); __e_acsl_full_init((void *)(& l)); @@ -119,110 +242,260 @@ int main(void) __e_acsl_full_init((void *)(& pl)); { unsigned long __gen_e_acsl_block_length_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&l", + (void *)(& l)); __gen_e_acsl_block_length_11 = __e_acsl_block_length((void *)(& l)); - __e_acsl_assert(__gen_e_acsl_block_length_11 == 8UL,1,"Assertion","main", - "\\block_length(&l) == sizeof(long)", - "tests/memory/block_length.c",32); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "\\block_length(&l)",0, + __gen_e_acsl_block_length_11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(long)", + 0,8); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\block_length(&l) == sizeof(long)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 32; + __e_acsl_assert(__gen_e_acsl_block_length_11 == 8UL, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert \block_length(&l) ≡ sizeof(long); */ ; + /*@ assert \block_length(&l) == sizeof(long); */ ; { unsigned long __gen_e_acsl_block_length_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"pl", + (void *)pl); __gen_e_acsl_block_length_12 = __e_acsl_block_length((void *)pl); - __e_acsl_assert(__gen_e_acsl_block_length_12 == 8UL,1,"Assertion","main", - "\\block_length(pl) == sizeof(long)", - "tests/memory/block_length.c",33); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "\\block_length(pl)",0, + __gen_e_acsl_block_length_12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(long)",0,8); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\block_length(pl) == sizeof(long)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 33; + __e_acsl_assert(__gen_e_acsl_block_length_12 == 8UL, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert \block_length(pl) ≡ sizeof(long); */ ; + /*@ assert \block_length(pl) == sizeof(long); */ ; { unsigned long __gen_e_acsl_block_length_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"pl", + (void *)pl); __gen_e_acsl_block_length_13 = __e_acsl_block_length((void *)(pl + 7)); - __e_acsl_assert(__gen_e_acsl_block_length_13 == 8UL,1,"Assertion","main", - "\\block_length(pl + 7) == sizeof(long)", - "tests/memory/block_length.c",34); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "\\block_length(pl + 7)",0, + __gen_e_acsl_block_length_13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(long)",0,8); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\block_length(pl + 7) == sizeof(long)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 34; + __e_acsl_assert(__gen_e_acsl_block_length_13 == 8UL, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert \block_length(pl + 7) ≡ sizeof(long); */ ; + /*@ assert \block_length(pl + 7) == sizeof(long); */ ; int *pi = (int *)(& l); __e_acsl_store_block((void *)(& pi),(size_t)8); __e_acsl_full_init((void *)(& pi)); { unsigned long __gen_e_acsl_block_length_14; unsigned long __gen_e_acsl_block_length_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"pi", + (void *)pi); __gen_e_acsl_block_length_14 = __e_acsl_block_length((void *)pi); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "\\block_length(pi)",0, + __gen_e_acsl_block_length_14); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&l", + (void *)(& l)); __gen_e_acsl_block_length_15 = __e_acsl_block_length((void *)(& l)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "\\block_length(&l)",0, + __gen_e_acsl_block_length_15); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\block_length(pi) == \\block_length(&l)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 36; __e_acsl_assert(__gen_e_acsl_block_length_14 == __gen_e_acsl_block_length_15, - 1,"Assertion","main", - "\\block_length(pi) == \\block_length(&l)", - "tests/memory/block_length.c",36); + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert \block_length(pi) ≡ \block_length(&l); */ ; + /*@ assert \block_length(pi) == \block_length(&l); */ ; __e_acsl_full_init((void *)(& pi)); pi ++; { unsigned long __gen_e_acsl_block_length_16; unsigned long __gen_e_acsl_block_length_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"pi", + (void *)pi); __gen_e_acsl_block_length_16 = __e_acsl_block_length((void *)pi); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "\\block_length(pi)",0, + __gen_e_acsl_block_length_16); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&l", + (void *)(& l)); __gen_e_acsl_block_length_17 = __e_acsl_block_length((void *)(& l)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "\\block_length(&l)",0, + __gen_e_acsl_block_length_17); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\block_length(pi) == \\block_length(&l)"; + __gen_e_acsl_assert_data_13.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 38; __e_acsl_assert(__gen_e_acsl_block_length_16 == __gen_e_acsl_block_length_17, - 1,"Assertion","main", - "\\block_length(pi) == \\block_length(&l)", - "tests/memory/block_length.c",38); + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert \block_length(pi) ≡ \block_length(&l); */ ; + /*@ assert \block_length(pi) == \block_length(&l); */ ; size_t size = (unsigned long)12; char *p = malloc(size); __e_acsl_store_block((void *)(& p),(size_t)8); __e_acsl_full_init((void *)(& p)); { unsigned long __gen_e_acsl_block_length_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"p",(void *)p); __gen_e_acsl_block_length_18 = __e_acsl_block_length((void *)p); - __e_acsl_assert(__gen_e_acsl_block_length_18 == size,1,"Assertion", - "main","\\block_length(p) == size", - "tests/memory/block_length.c",43); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "\\block_length(p)",0, + __gen_e_acsl_block_length_18); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,"size",0, + size); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\block_length(p) == size"; + __gen_e_acsl_assert_data_14.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 43; + __e_acsl_assert(__gen_e_acsl_block_length_18 == size, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert \block_length(p) ≡ size; */ ; + /*@ assert \block_length(p) == size; */ ; { unsigned long __gen_e_acsl_block_length_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p",(void *)p); __gen_e_acsl_block_length_19 = __e_acsl_block_length((void *)(p + 11)); - __e_acsl_assert(__gen_e_acsl_block_length_19 == size,1,"Assertion", - "main","\\block_length(p + 11) == size", - "tests/memory/block_length.c",44); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "\\block_length(p + 11)",0, + __gen_e_acsl_block_length_19); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,"size",0, + size); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\block_length(p + 11) == size"; + __gen_e_acsl_assert_data_15.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 44; + __e_acsl_assert(__gen_e_acsl_block_length_19 == size, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert \block_length(p + 11) ≡ size; */ ; + /*@ assert \block_length(p + 11) == size; */ ; __e_acsl_full_init((void *)(& p)); p += 5; { unsigned long __gen_e_acsl_block_length_20; unsigned long __gen_e_acsl_block_length_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p); __gen_e_acsl_block_length_20 = __e_acsl_block_length((void *)(p + 5)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "\\block_length(p + 5)",0, + __gen_e_acsl_block_length_20); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p); __gen_e_acsl_block_length_21 = __e_acsl_block_length((void *)(p - 5)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "\\block_length(p - 5)",0, + __gen_e_acsl_block_length_21); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "\\block_length(p + 5) == \\block_length(p - 5)"; + __gen_e_acsl_assert_data_16.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 46; __e_acsl_assert(__gen_e_acsl_block_length_20 == __gen_e_acsl_block_length_21, - 1,"Assertion","main", - "\\block_length(p + 5) == \\block_length(p - 5)", - "tests/memory/block_length.c",46); + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert \block_length(p + 5) ≡ \block_length(p - 5); */ ; + /*@ assert \block_length(p + 5) == \block_length(p - 5); */ ; size = (unsigned long)30 * sizeof(long); long *q = malloc(size); __e_acsl_store_block((void *)(& q),(size_t)8); __e_acsl_full_init((void *)(& q)); { unsigned long __gen_e_acsl_block_length_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"q",(void *)q); __gen_e_acsl_block_length_22 = __e_acsl_block_length((void *)q); - __e_acsl_assert(__gen_e_acsl_block_length_22 == size,1,"Assertion", - "main","\\block_length(q) == size", - "tests/memory/block_length.c",52); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "\\block_length(q)",0, + __gen_e_acsl_block_length_22); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,"size",0, + size); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\block_length(q) == size"; + __gen_e_acsl_assert_data_17.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 52; + __e_acsl_assert(__gen_e_acsl_block_length_22 == size, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert \block_length(q) ≡ size; */ ; + /*@ assert \block_length(q) == size; */ ; __e_acsl_full_init((void *)(& q)); q += 4; { unsigned long __gen_e_acsl_block_length_23; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"q",(void *)q); __gen_e_acsl_block_length_23 = __e_acsl_block_length((void *)q); - __e_acsl_assert(__gen_e_acsl_block_length_23 == size,1,"Assertion", - "main","\\block_length(q) == size", - "tests/memory/block_length.c",54); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "\\block_length(q)",0, + __gen_e_acsl_block_length_23); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,"size",0, + size); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "\\block_length(q) == size"; + __gen_e_acsl_assert_data_18.file = "tests/memory/block_length.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 54; + __e_acsl_assert(__gen_e_acsl_block_length_23 == size, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } - /*@ assert \block_length(q) ≡ size; */ ; + /*@ assert \block_length(q) == size; */ ; __retres = 0; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c b/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c index 913c86ce1bf8abdb5232bb263dc45d93acffa884..0ba7cee5c24e4efb6d9cdc1dbad8b3a2989ceb4a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -43,53 +44,119 @@ int main(int argc, char **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/memory/block_valid.c",19); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 19; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(p + 1),sizeof(int), (void *)p,(void *)(& p)); - __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main", - "!\\valid(p + 1)","tests/memory/block_valid.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(p + 1)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p + 1)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 21; + __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(p + 1); */ ; + /*@ assert !\valid(p + 1); */ ; __e_acsl_full_init((void *)(& p)); p = & B; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)", + 0,__gen_e_acsl_valid_3); __gen_e_acsl_and_2 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main","\\valid(p)", - "tests/memory/block_valid.c",24); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 24; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(p + 1),sizeof(int), (void *)p,(void *)(& p)); - __e_acsl_assert(! __gen_e_acsl_valid_4,1,"Assertion","main", - "!\\valid(p + 1)","tests/memory/block_valid.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(p + 1)",0,__gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p + 1)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(! __gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(p + 1); */ ; + /*@ assert !\valid(p + 1); */ ; char *pmin = malloc(sizeof(int)); __e_acsl_store_block((void *)(& pmin),(size_t)8); __e_acsl_full_init((void *)(& pmin)); @@ -114,51 +181,125 @@ int main(int argc, char **argv) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&pmin", + (void *)(& pmin)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& pmin), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&pmin)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"pmin", + (void *)pmin); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)pmin,sizeof(char), (void *)pmin,(void *)(& pmin)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(pmin)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_3 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(pmin)", - "tests/memory/block_valid.c",44); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid(pmin)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 44; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \valid(pmin); */ ; { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&pmax", + (void *)(& pmax)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& pmax), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&pmax)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"pmax", + (void *)pmax); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)pmax,sizeof(char), (void *)pmax,(void *)(& pmax)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(pmax)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_4 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(pmax)", - "tests/memory/block_valid.c",45); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(pmax)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 45; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(pmax); */ ; { int __gen_e_acsl_valid_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"pmin", + (void *)pmin); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"diff",0,diff); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)(pmin + diff),sizeof(char), (void *)pmin,(void *)(& pmin)); - __e_acsl_assert(! __gen_e_acsl_valid_7,1,"Assertion","main", - "!\\valid(pmin + diff)","tests/memory/block_valid.c",47); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid(pmin + diff)",0, + __gen_e_acsl_valid_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(pmin + diff)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 47; + __e_acsl_assert(! __gen_e_acsl_valid_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\valid(pmin + diff); */ ; + /*@ assert !\valid(pmin + diff); */ ; { int __gen_e_acsl_valid_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"pmax", + (void *)pmax); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"diff",0,diff); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)(pmax - diff),sizeof(char), (void *)pmax,(void *)(& pmax)); - __e_acsl_assert(! __gen_e_acsl_valid_8,1,"Assertion","main", - "!\\valid(pmax - diff)","tests/memory/block_valid.c",49); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\valid(pmax - diff)",0, + __gen_e_acsl_valid_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(pmax - diff)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/block_valid.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 49; + __e_acsl_assert(! __gen_e_acsl_valid_8,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\valid(pmax - diff); */ ; + /*@ assert !\valid(pmax - diff); */ ; __retres = 0; __e_acsl_delete_block((void *)(& pmax)); __e_acsl_delete_block((void *)(& pmin)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c b/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c index 3b0b106b9630d9abf94d2ffc232296da7e47f33d..07b3cd55997b36a37658462e4415982f450a9a81 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -17,10 +17,24 @@ int main(int argc, char const **argv) p = & argc; { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& p),sizeof(int *), (void *)(& p),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&p)", - "tests/memory/bypassed_var.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&p)", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&p)"; + __gen_e_acsl_assert_data.file = "tests/memory/bypassed_var.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&p); */ ; __e_acsl_delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_call.c b/src/plugins/e-acsl/tests/memory/oracle/gen_call.c index 05cebce1b23a476393181cf9c2adfbfd1ce1d460..5e03cfc2654f62da8a36a1b6c2771194bf0bd049 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_call.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_call.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -53,11 +54,24 @@ int *__gen_e_acsl_f(int *x, int *y) __retres = f(x,y); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"\\result", + (void *)__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)__retres,sizeof(int), (void *)__retres, (void *)(& __retres)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Postcondition","f", - "\\valid(\\result)","tests/memory/call.c",7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(\\result)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(\\result)"; + __gen_e_acsl_assert_data.file = "tests/memory/call.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __e_acsl_delete_block((void *)(& y)); __e_acsl_delete_block((void *)(& x)); __e_acsl_delete_block((void *)(& __retres)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c b/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c index 35129325096b543be203e72c0de69489c04968fd..5cdb24686a6e28ff99b081ecfff0c694373941a0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; @@ -87,109 +87,270 @@ int main(int argc, char **argv) __e_acsl_globals_init(); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char **)_A", + (void *)(_A)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid = __e_acsl_valid((void *)(_A),sizeof(char *), (void *)(_A),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid((char **)_A)", - "tests/memory/compound_initializers.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid((char **)_A)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid((char **)_A)"; + __gen_e_acsl_assert_data.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 23; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid((char **)_A); */ ; { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"(char **)_A", + (void *)(_A)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(_A), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized((char **)_A)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"_A[0]", + (void *)_A[0]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)_A[0], sizeof(char), (void *)_A[0], (void *)(_A)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid_read(_A[0])",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main", - "\\valid_read(_A[0])", - "tests/memory/compound_initializers.c",24); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(_A[0])"; + __gen_e_acsl_assert_data_2.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 24; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid_read(_A[0]); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&_A[1]", + (void *)(& _A[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& _A[1]), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&_A[1])",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"_A[1]", + (void *)_A[1]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)_A[1], sizeof(char), (void *)_A[1], (void *)(& _A[1])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid_read(_A[1])",0, + __gen_e_acsl_valid_read_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main", - "\\valid_read(_A[1])", - "tests/memory/compound_initializers.c",25); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(_A[1])"; + __gen_e_acsl_assert_data_3.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 25; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid_read(_A[1]); */ ; { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"_B", + (void *)_B); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)_B,sizeof(char), (void *)_B, (void *)(& _B)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"Assertion","main", - "\\valid_read(_B)", - "tests/memory/compound_initializers.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid_read(_B)",0, + __gen_e_acsl_valid_read_3); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(_B)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid_read(_B); */ ; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&_C", + (void *)(& _C)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& _C),sizeof(char *), (void *)(& _C),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main","\\valid(&_C)", - "tests/memory/compound_initializers.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(&_C)", + 0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid(&_C)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 27; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \valid(&_C); */ ; { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(int *)_D", + (void *)(_D)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(_D),sizeof(int), (void *)(_D),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","main", - "\\valid((int *)_D)", - "tests/memory/compound_initializers.c",28); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid((int *)_D)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid((int *)_D)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 28; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid((int *)_D); */ ; { int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&_E", + (void *)(& _E)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& _E),sizeof(int), (void *)(& _E),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main","\\valid(&_E)", - "tests/memory/compound_initializers.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(&_E)", + 0,__gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid(&_E)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 29; + __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid(&_E); */ ; { int __gen_e_acsl_valid_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&_F", + (void *)(& _F)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(& _F),sizeof(int), (void *)(& _F),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_5,1,"Assertion","main","\\valid(&_F)", - "tests/memory/compound_initializers.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(&_F)", + 0,__gen_e_acsl_valid_5); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\valid(&_F)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 30; + __e_acsl_assert(__gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \valid(&_F); */ ; - __e_acsl_assert(_E == 44,1,"Assertion","main","_E == 44", - "tests/memory/compound_initializers.c",31); - /*@ assert _E ≡ 44; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"_E",0,_E); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "_E == 44"; + __gen_e_acsl_assert_data_9.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 31; + __e_acsl_assert(_E == 44,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } + /*@ assert _E == 44; */ ; { int __gen_e_acsl_valid_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&_G", + (void *)(& _G)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(struct ST [2])",0, + sizeof(struct ST [2])); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)(& _G), sizeof(struct ST [2]), (void *)(& _G),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_6,1,"Assertion","main","\\valid(&_G)", - "tests/memory/compound_initializers.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\valid(&_G)",0,__gen_e_acsl_valid_6); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\valid(&_G)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 32; + __e_acsl_assert(__gen_e_acsl_valid_6,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \valid(&_G); */ ; - __e_acsl_assert(_G[0].num == 99,1,"Assertion","main","_G[0].num == 99", - "tests/memory/compound_initializers.c",33); - /*@ assert _G[0].num ≡ 99; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"_G[0].num",0, + _G[0].num); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "_G[0].num == 99"; + __gen_e_acsl_assert_data_11.file = "tests/memory/compound_initializers.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 33; + __e_acsl_assert(_G[0].num == 99,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } + /*@ assert _G[0].num == 99; */ ; __retres = 0; __e_acsl_globals_clean(); __e_acsl_memory_clean(); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c b/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c index bbaf5eeb4f80a7ea5ef446e38b84b77330801a5d..e71935e27a5fc4e4b1c753136656b1a7fb438365 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string_2; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c index 45e92a3f5de25520a5d1439bf732ede4eb8b9164..6a073da7a30b9cdd9c28c8296d513b9c7bac3f3d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c @@ -1,22 +1,21 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "ctype.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; -/*@ requires c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1; +/*@ requires c_uchar_or_eof: (0 <= c <= 255) || c == -1; assigns \result; assigns \result \from c; behavior definitely_match: - assumes c_upper: 'A' ≤ c ≤ 'Z'; - ensures nonzero_result: \result < 0 ∨ \result > 0; + assumes c_upper: 'A' <= c <= 'Z'; + ensures nonzero_result: \result < 0 || \result > 0; behavior definitely_not_match: - assumes - c_non_upper: c ≡ -1 ∨ (0 ≤ c < 'A') ∨ ('Z' < c ≤ 127); - ensures zero_result: \result ≡ 0; + assumes c_non_upper: c == -1 || (0 <= c < 'A') || ('Z' < c <= 127); + ensures zero_result: \result == 0; disjoint behaviors definitely_not_match, definitely_match; */ @@ -37,17 +36,36 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& d), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&d)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"d",(void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)d,sizeof(char),(void *)d, (void *)(& d)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(d)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(d)", - "tests/memory/ctype_macros.c",39); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(d)"; + __gen_e_acsl_assert_data.file = "tests/memory/ctype_macros.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 39; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(d); */ ; __retres = 0; @@ -57,18 +75,17 @@ int main(int argc, char const **argv) return __retres; } -/*@ requires c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1; +/*@ requires c_uchar_or_eof: (0 <= c <= 255) || c == -1; assigns \result; assigns \result \from c; behavior definitely_match: - assumes c_upper: 'A' ≤ c ≤ 'Z'; - ensures nonzero_result: \result < 0 ∨ \result > 0; + assumes c_upper: 'A' <= c <= 'Z'; + ensures nonzero_result: \result < 0 || \result > 0; behavior definitely_not_match: - assumes - c_non_upper: c ≡ -1 ∨ (0 ≤ c < 'A') ∨ ('Z' < c ≤ 127); - ensures zero_result: \result ≡ 0; + assumes c_non_upper: c == -1 || (0 <= c < 'A') || ('Z' < c <= 127); + ensures zero_result: \result == 0; disjoint behaviors definitely_not_match, definitely_match; */ @@ -84,12 +101,26 @@ int __gen_e_acsl_isupper(int c) int __gen_e_acsl_or_3; int __gen_e_acsl_active_bhvrs; __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); - if (0 <= c) __gen_e_acsl_and = c <= 255; else __gen_e_acsl_and = 0; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c); + if (0 <= c) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c); + __gen_e_acsl_and = c <= 255; + } + else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = c == -1; - __e_acsl_assert(__gen_e_acsl_or,1,"Precondition","isupper", - "c_uchar_or_eof: (0 <= c <= 255) || c == -1", - "FRAMAC_SHARE/libc/ctype.h",174); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c); + __gen_e_acsl_or = c == -1; + } + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "c_uchar_or_eof: (0 <= c <= 255) || c == -1"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/ctype.h"; + __gen_e_acsl_assert_data.fct = "isupper"; + __gen_e_acsl_assert_data.line = 174; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); if (65 <= c) __gen_e_acsl_and_2 = c <= 90; else __gen_e_acsl_and_2 = 0; __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, __gen_e_acsl_and_2); @@ -109,9 +140,25 @@ int __gen_e_acsl_isupper(int c) __gen_e_acsl_or_3); __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract); - __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition", - "isupper","all behaviors disjoint", - "FRAMAC_SHARE/libc/ctype.h",173); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "all behaviors disjoint"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/ctype.h"; + __gen_e_acsl_assert_data_3.fct = "isupper"; + __gen_e_acsl_assert_data_3.line = 173; + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } __retres = isupper(c); { @@ -120,20 +167,41 @@ int __gen_e_acsl_isupper(int c) ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_or_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0, + __retres); if (__retres < 0) __gen_e_acsl_or_4 = 1; - else __gen_e_acsl_or_4 = __retres > 0; - __e_acsl_assert(__gen_e_acsl_or_4,1,"Postcondition","isupper", - "definitely_match: nonzero_result: \\result < 0 || \\result > 0", - "FRAMAC_SHARE/libc/ctype.h",178); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result", + 0,__retres); + __gen_e_acsl_or_4 = __retres > 0; + } + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "definitely_match: nonzero_result: \\result < 0 || \\result > 0"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/ctype.h"; + __gen_e_acsl_assert_data_4.fct = "isupper"; + __gen_e_acsl_assert_data_4.line = 178; + __e_acsl_assert(__gen_e_acsl_or_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1, - "Postcondition", - "isupper", - "definitely_not_match: zero_result: \\result == 0", - "FRAMAC_SHARE/libc/ctype.h", - 181); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result",0, + __retres); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "definitely_not_match: zero_result: \\result == 0"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/ctype.h"; + __gen_e_acsl_assert_data_5.fct = "isupper"; + __gen_e_acsl_assert_data_5.line = 181; + __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c b/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c index 9cb1a440568a7e0ca7705ed7a03d799011c98684..241b22f2ab6997de281e49c12583d70c747a795c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -28,22 +28,47 @@ void compound_decl_and_init(int value) __e_acsl_full_init((void *)(& a)); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int), (void *)(& a),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion", - "compound_decl_and_init","\\valid(&a)", - "tests/memory/decl_in_switch.c",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)"; + __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data.fct = "compound_decl_and_init"; + __gen_e_acsl_assert_data.line = 22; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&a); */ ; switch (value) { int b = 2; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int), (void *)(& b),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion", - "compound_decl_and_init","\\valid(&b)", - "tests/memory/decl_in_switch.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&b)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_2.fct = "compound_decl_and_init"; + __gen_e_acsl_assert_data_2.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(&b); */ ; case 0: ; @@ -52,11 +77,24 @@ void compound_decl_and_init(int value) __e_acsl_full_init((void *)(& c)); { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& c),sizeof(int), (void *)(& c),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion", - "compound_decl_and_init","\\valid(&c)", - "tests/memory/decl_in_switch.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(&c)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&c)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_3.fct = "compound_decl_and_init"; + __gen_e_acsl_assert_data_3.line = 30; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(&c); */ ; __e_acsl_delete_block((void *)(& c)); @@ -68,11 +106,24 @@ void compound_decl_and_init(int value) __e_acsl_full_init((void *)(& d)); { int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& d),sizeof(int), (void *)(& d),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion", - "compound_decl_and_init","\\valid(&d)", - "tests/memory/decl_in_switch.c",35); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(&d)",0,__gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&d)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_4.fct = "compound_decl_and_init"; + __gen_e_acsl_assert_data_4.line = 35; + __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(&d); */ ; __e_acsl_delete_block((void *)(& c)); @@ -93,11 +144,23 @@ void separate_decl_and_init(int value) a = 1; { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int), (void *)(& a),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion", - "separate_decl_and_init","\\valid(&a)", - "tests/memory/decl_in_switch.c",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)"; + __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data.fct = "separate_decl_and_init"; + __gen_e_acsl_assert_data.line = 45; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&a); */ ; switch (value) { @@ -109,11 +172,24 @@ void separate_decl_and_init(int value) b = 2; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int), (void *)(& b),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion", - "separate_decl_and_init","\\valid(&b)", - "tests/memory/decl_in_switch.c",50); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&b)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_2.fct = "separate_decl_and_init"; + __gen_e_acsl_assert_data_2.line = 50; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(&b); */ ; case 0: __e_acsl_store_block_duplicate((void *)(& c),(size_t)4); @@ -123,11 +199,24 @@ void separate_decl_and_init(int value) c = 3; { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& c),sizeof(int), (void *)(& c),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion", - "separate_decl_and_init","\\valid(&c)", - "tests/memory/decl_in_switch.c",55); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(&c)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&c)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_3.fct = "separate_decl_and_init"; + __gen_e_acsl_assert_data_3.line = 55; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(&c); */ ; __e_acsl_delete_block((void *)(& c)); @@ -140,11 +229,24 @@ void separate_decl_and_init(int value) d = 4; { int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& d),sizeof(int), (void *)(& d),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion", - "separate_decl_and_init","\\valid(&d)", - "tests/memory/decl_in_switch.c",61); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(&d)",0,__gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&d)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_4.fct = "separate_decl_and_init"; + __gen_e_acsl_assert_data_4.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(&d); */ ; __e_acsl_delete_block((void *)(& c)); @@ -167,10 +269,24 @@ void label_in_switch(int value) __e_acsl_full_init((void *)(& d)); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& d),sizeof(int), (void *)(& d),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","label_in_switch", - "\\valid(&d)","tests/memory/decl_in_switch.c",74); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&d)", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&d)"; + __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data.fct = "label_in_switch"; + __gen_e_acsl_assert_data.line = 74; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&d); */ ; L: case 0: __e_acsl_store_block_duplicate((void *)(& d),(size_t)4); @@ -180,10 +296,24 @@ void label_in_switch(int value) __e_acsl_full_init((void *)(& e)); { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&e", + (void *)(& e)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& e),sizeof(int), (void *)(& e),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","label_in_switch", - "\\valid(&e)","tests/memory/decl_in_switch.c",80); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&e)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&e)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_2.fct = "label_in_switch"; + __gen_e_acsl_assert_data_2.line = 80; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(&e); */ ; __e_acsl_delete_block((void *)(& d)); @@ -197,10 +327,24 @@ void label_in_switch(int value) __e_acsl_full_init((void *)(& ff)); { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&ff", + (void *)(& ff)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& ff),sizeof(int), (void *)(& ff),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","label_in_switch", - "\\valid(&ff)","tests/memory/decl_in_switch.c",84); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(&ff)",0,__gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&ff)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c"; + __gen_e_acsl_assert_data_3.fct = "label_in_switch"; + __gen_e_acsl_assert_data_3.line = 84; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(&ff); */ ; __e_acsl_delete_block((void *)(& d)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c b/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c index 123bf12d8a51831f1632b19ef1861568f048c60e..86b4b8cfd0d26e09e64f2950961046ad5b31f424 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -18,17 +18,38 @@ int goto_bts(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","goto_bts","\\valid(p)", - "tests/memory/early_exit.c",13); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data.fct = "goto_bts"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; __e_acsl_delete_block((void *)(& a)); @@ -36,22 +57,43 @@ int goto_bts(void) __e_acsl_delete_block((void *)(& a)); } L: - /*@ assert ¬\valid(p); */ + /*@ assert !\valid(p); */ { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; - /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */ + /*@ assert Eva: dangling_pointer: !\dangling(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","goto_bts", - "!\\valid(p)","tests/memory/early_exit.c",18); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_2.fct = "goto_bts"; + __gen_e_acsl_assert_data_2.line = 18; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __retres = 0; __e_acsl_delete_block((void *)(& p)); @@ -104,50 +146,113 @@ int goto_valid(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","goto_valid", - "\\valid(p)","tests/memory/early_exit.c",46); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data.fct = "goto_valid"; + __gen_e_acsl_assert_data.line = 46; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(q)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","goto_valid", - "!\\valid(q)","tests/memory/early_exit.c",47); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_2.fct = "goto_valid"; + __gen_e_acsl_assert_data_2.line = 47; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&r", + (void *)(& r)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& r), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&r)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"r", + (void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)r,sizeof(int), (void *)r,(void *)(& r)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(r)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(! __gen_e_acsl_and_3,1,"Assertion","goto_valid", - "!\\valid(r)","tests/memory/early_exit.c",48); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(r)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_3.fct = "goto_valid"; + __gen_e_acsl_assert_data_3.line = 48; + __e_acsl_assert(! __gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(r); */ ; + /*@ assert !\valid(r); */ ; __e_acsl_delete_block((void *)(& a1)); goto SECOND; __e_acsl_full_init((void *)(& q)); @@ -159,54 +264,117 @@ int goto_valid(void) __e_acsl_delete_block((void *)(& a1)); } SECOND: - /*@ assert ¬\valid(p); */ + /*@ assert !\valid(p); */ { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(p)", + 0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","goto_valid", - "!\\valid(p)","tests/memory/early_exit.c",56); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_4.fct = "goto_valid"; + __gen_e_acsl_assert_data_4.line = 56; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(q)", + 0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","goto_valid", - "!\\valid(q)","tests/memory/early_exit.c",57); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_5.fct = "goto_valid"; + __gen_e_acsl_assert_data_5.line = 57; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&r", + (void *)(& r)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& r), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&r)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"r", + (void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)r,sizeof(int),(void *)r, (void *)(& r)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(r)", + 0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","goto_valid", - "!\\valid(r)","tests/memory/early_exit.c",58); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(r)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_6.fct = "goto_valid"; + __gen_e_acsl_assert_data_6.line = 58; + __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\valid(r); */ ; + /*@ assert !\valid(r); */ ; __retres = 0; __e_acsl_delete_block((void *)(& r)); __e_acsl_delete_block((void *)(& q)); @@ -245,49 +413,112 @@ int switch_valid(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(p)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","switch_valid", - "\\valid(p)","tests/memory/early_exit.c",76); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data.fct = "switch_valid"; + __gen_e_acsl_assert_data.line = 76; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(q)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","switch_valid", - "\\valid(q)","tests/memory/early_exit.c",77); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_2.fct = "switch_valid"; + __gen_e_acsl_assert_data_2.line = 77; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(q); */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&s", + (void *)(& s)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& s), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&s)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"s", + (void *)s); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)s,sizeof(int), (void *)s,(void *)(& s)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(s)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","switch_valid", - "\\valid(s)","tests/memory/early_exit.c",78); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(s)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_3.fct = "switch_valid"; + __gen_e_acsl_assert_data_3.line = 78; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(s); */ ; __e_acsl_delete_block((void *)(& a1)); @@ -307,49 +538,112 @@ int switch_valid(void) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(q)", + 0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","switch_valid", - "!\\valid(q)","tests/memory/early_exit.c",87); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_4.fct = "switch_valid"; + __gen_e_acsl_assert_data_4.line = 87; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(p)", + 0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","switch_valid", - "!\\valid(p)","tests/memory/early_exit.c",88); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_5.fct = "switch_valid"; + __gen_e_acsl_assert_data_5.line = 88; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&s", + (void *)(& s)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& s), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&s)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"s", + (void *)s); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)s,sizeof(int),(void *)s, (void *)(& s)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(s)", + 0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","switch_valid", - "\\valid(s)","tests/memory/early_exit.c",89); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(s)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_6.fct = "switch_valid"; + __gen_e_acsl_assert_data_6.line = 89; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(s); */ ; __retres = 0; @@ -394,49 +688,114 @@ int while_valid(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(p)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","while_valid", - "\\valid(p)","tests/memory/early_exit.c",108); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data.fct = "while_valid"; + __gen_e_acsl_assert_data.line = 108; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(q)",0, + __gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","while_valid", - "\\valid(q)","tests/memory/early_exit.c",109); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_2.fct = "while_valid"; + __gen_e_acsl_assert_data_2.line = 109; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(q); */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&r", + (void *)(& r)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& r), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&r)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"r", + (void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)r,sizeof(int), (void *)r,(void *)(& r)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(r)",0, + __gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","while_valid", - "\\valid(r)","tests/memory/early_exit.c",110); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(r)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_3.fct = "while_valid"; + __gen_e_acsl_assert_data_3.line = 110; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(r); */ ; if (! i) { @@ -452,49 +811,112 @@ int while_valid(void) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(p)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","while_valid", - "!\\valid(p)","tests/memory/early_exit.c",116); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_4.fct = "while_valid"; + __gen_e_acsl_assert_data_4.line = 116; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(q)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","while_valid", - "!\\valid(q)","tests/memory/early_exit.c",117); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_5.fct = "while_valid"; + __gen_e_acsl_assert_data_5.line = 117; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&r", + (void *)(& r)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& r), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&r)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"r", + (void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)r,sizeof(int), (void *)r,(void *)(& r)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(r)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","while_valid", - "\\valid(r)","tests/memory/early_exit.c",118); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(r)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_6.fct = "while_valid"; + __gen_e_acsl_assert_data_6.line = 118; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(r); */ ; __e_acsl_delete_block((void *)(& a0)); @@ -523,35 +945,77 @@ void continue_valid(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(p)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","continue_valid", - "!\\valid(p)","tests/memory/early_exit.c",130); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data.fct = "continue_valid"; + __gen_e_acsl_assert_data.line = 130; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(q)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","continue_valid", - "!\\valid(q)","tests/memory/early_exit.c",131); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_2.fct = "continue_valid"; + __gen_e_acsl_assert_data_2.line = 131; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; int a1 = 1; __e_acsl_store_block((void *)(& a1),(size_t)4); __e_acsl_full_init((void *)(& a1)); @@ -560,35 +1024,77 @@ void continue_valid(void) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(p)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","continue_valid", - "\\valid(p)","tests/memory/early_exit.c",135); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_3.fct = "continue_valid"; + __gen_e_acsl_assert_data_3.line = 135; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(q)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","continue_valid", - "!\\valid(q)","tests/memory/early_exit.c",136); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_4.fct = "continue_valid"; + __gen_e_acsl_assert_data_4.line = 136; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int a2 = 1; __e_acsl_store_block((void *)(& a2),(size_t)4); @@ -598,33 +1104,75 @@ void continue_valid(void) { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(p)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(__gen_e_acsl_and_5,1,"Assertion","continue_valid", - "\\valid(p)","tests/memory/early_exit.c",141); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_5.fct = "continue_valid"; + __gen_e_acsl_assert_data_5.line = 141; + __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(q)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","continue_valid", - "\\valid(q)","tests/memory/early_exit.c",142); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_6.fct = "continue_valid"; + __gen_e_acsl_assert_data_6.line = 142; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(q); */ ; __e_acsl_delete_block((void *)(& a1)); @@ -642,35 +1190,77 @@ void continue_valid(void) { int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(p)", + 0,__gen_e_acsl_valid_7); __gen_e_acsl_and_7 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(! __gen_e_acsl_and_7,1,"Assertion","continue_valid", - "!\\valid(p)","tests/memory/early_exit.c",150); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_7.fct = "continue_valid"; + __gen_e_acsl_assert_data_7.line = 150; + __e_acsl_assert(! __gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(q)", + 0,__gen_e_acsl_valid_8); __gen_e_acsl_and_8 = __gen_e_acsl_valid_8; } else __gen_e_acsl_and_8 = 0; - __e_acsl_assert(! __gen_e_acsl_and_8,1,"Assertion","continue_valid", - "!\\valid(q)","tests/memory/early_exit.c",151); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/early_exit.c"; + __gen_e_acsl_assert_data_8.fct = "continue_valid"; + __gen_e_acsl_assert_data_8.line = 151; + __e_acsl_assert(! __gen_e_acsl_and_8,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); return; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c b/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c index 650fa1452d15e1a37ac372f27dd49d07e088b049..91ef1c63a321fd58ff1b839b524cef4818afedda 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c @@ -1,6 +1,7 @@ /* Generated by Frama-C */ #include "errno.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -33,17 +34,36 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/memory/errno.c",11); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/errno.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c b/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c index f804ef702e5b85b114de9eb6f80a4028faac9e05..981bbf47beda716221eddaf320c268891500f62b 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -31,58 +32,138 @@ int main(void) __e_acsl_store_block((void *)(& p),(size_t)8); { int __gen_e_acsl_freeable; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; /*@ assert Eva: initialization: \initialized(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); __gen_e_acsl_freeable = __e_acsl_freeable((void *)p); - __e_acsl_assert(! __gen_e_acsl_freeable,1,"Assertion","main", - "!\\freeable(p)","tests/memory/freeable.c",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\freeable(p)", + 0,__gen_e_acsl_freeable); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\freeable(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert(! __gen_e_acsl_freeable,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\freeable(p); */ ; + /*@ assert !\freeable(p); */ ; { int __gen_e_acsl_freeable_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; __gen_e_acsl_freeable_2 = __e_acsl_freeable((void *)0); - __e_acsl_assert(! __gen_e_acsl_freeable_2,1,"Assertion","main", - "!\\freeable((void *)0)","tests/memory/freeable.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\freeable((void *)0)",0, + __gen_e_acsl_freeable_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\freeable((void *)0)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(! __gen_e_acsl_freeable_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\freeable((void *)0); */ ; + /*@ assert !\freeable((void *)0); */ ; __e_acsl_full_init((void *)(& p)); p = (int *)malloc((unsigned long)4 * sizeof(int)); { int __gen_e_acsl_freeable_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p); __gen_e_acsl_freeable_3 = __e_acsl_freeable((void *)(p + 1)); - __e_acsl_assert(! __gen_e_acsl_freeable_3,1,"Assertion","main", - "!\\freeable(p + 1)","tests/memory/freeable.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\freeable(p + 1)",0, + __gen_e_acsl_freeable_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\freeable(p + 1)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 17; + __e_acsl_assert(! __gen_e_acsl_freeable_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\freeable(p + 1); */ ; + /*@ assert !\freeable(p + 1); */ ; { int __gen_e_acsl_freeable_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p); __gen_e_acsl_freeable_4 = __e_acsl_freeable((void *)p); - __e_acsl_assert(__gen_e_acsl_freeable_4,1,"Assertion","main", - "\\freeable(p)","tests/memory/freeable.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\freeable(p)",0,__gen_e_acsl_freeable_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\freeable(p)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(__gen_e_acsl_freeable_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \freeable(p); */ ; free((void *)p); { int __gen_e_acsl_freeable_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p); __gen_e_acsl_freeable_5 = __e_acsl_freeable((void *)p); - __e_acsl_assert(! __gen_e_acsl_freeable_5,1,"Assertion","main", - "!\\freeable(p)","tests/memory/freeable.c",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\freeable(p)",0,__gen_e_acsl_freeable_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\freeable(p)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 20; + __e_acsl_assert(! __gen_e_acsl_freeable_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\freeable(p); */ ; + /*@ assert !\freeable(p); */ ; { int __gen_e_acsl_freeable_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "(char *)array",(void *)(array)); __gen_e_acsl_freeable_6 = __e_acsl_freeable((void *)(array)); - __e_acsl_assert(! __gen_e_acsl_freeable_6,1,"Assertion","main", - "!\\freeable((char *)array)","tests/memory/freeable.c", - 23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\freeable((char *)array)",0, + __gen_e_acsl_freeable_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\freeable((char *)array)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 23; + __e_acsl_assert(! __gen_e_acsl_freeable_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\freeable((char *)array); */ ; + /*@ assert !\freeable((char *)array); */ ; { int __gen_e_acsl_freeable_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&array[5]", + (void *)(& array[5])); __gen_e_acsl_freeable_7 = __e_acsl_freeable((void *)(& array[5])); - __e_acsl_assert(! __gen_e_acsl_freeable_7,1,"Assertion","main", - "!\\freeable(&array[5])","tests/memory/freeable.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\freeable(&array[5])",0, + __gen_e_acsl_freeable_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\freeable(&array[5])"; + __gen_e_acsl_assert_data_7.file = "tests/memory/freeable.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 24; + __e_acsl_assert(! __gen_e_acsl_freeable_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\freeable(&array[5]); */ ; + /*@ assert !\freeable(&array[5]); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); __e_acsl_globals_clean(); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c index ade66b89b69aa12b1cbe00785131ad2555d32414..8750fdf7e2e0f192ef23eb6b78929f045144ad04 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -12,12 +12,14 @@ void function(int a, int b, int c, int d) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int w = 0; int x = 1; int y = 2; int z = 3; function(w,x,y,z); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c b/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c index 70c0f2aa925bcdbfadf5d5a0109660312ec9ac9d..8c2bf18d6248c6c0915b00c6f63bb07224fcd8dd 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -37,9 +37,22 @@ int main(void) if (a) goto _LOR; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b",(void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)", + 0,sizeof(char)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)b,sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(b)","tests/memory/goto.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(b)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(b)"; + __gen_e_acsl_assert_data.file = "tests/memory/goto.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 17; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(b); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c index 12027e7f5b4c03febb957c737441d3a1629edf80..a8a13901088dfb79d1d6d213a1907c7bd2005f26 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_init.c index 276d86a0d821796532e160c41d7f467cd822b656..f243b67cd9e9b10c039ea17482dd335bc02f1ea6 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -37,21 +37,57 @@ int main(void) int *q = & b; __e_acsl_store_block((void *)(& q),(size_t)8); __e_acsl_full_init((void *)(& q)); - __e_acsl_assert(1,1,"Assertion","main","\\initialized(&b)", - "tests/memory/init.c",9); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&b)"; + __gen_e_acsl_assert_data.file = "tests/memory/init.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } /*@ assert \initialized(&b); */ ; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(q)","tests/memory/init.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(q)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(q)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/init.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(q); */ ; { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(p)","tests/memory/init.c",11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(p)",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/init.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 11; + __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c b/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c index 0f80a70efb16cce469924cd3c6bd384fcabe2ec0..14edceab56dbb1cdc03502ddb7e0faa9d6dad6d5 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -10,15 +11,40 @@ int main(void) { int __retres; __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); - __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 0", - "tests/memory/init_function.c",16); - /*@ assert __e_acsl_heap_allocation_size ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "__e_acsl_heap_allocation_size == 0"; + __gen_e_acsl_assert_data.file = "tests/memory/init_function.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert __e_acsl_heap_allocation_size == 0; */ ; char *a = malloc((unsigned long)7); - __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 7", - "tests/memory/init_function.c",18); - /*@ assert __e_acsl_heap_allocation_size ≡ 7; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "__e_acsl_heap_allocation_size == 7"; + __gen_e_acsl_assert_data_2.file = "tests/memory/init_function.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 18; + __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert __e_acsl_heap_allocation_size == 7; */ ; __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c b/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c index ecebc5da9e304428b2b62d79680ba460cdc0e971..86bb7b5cdd831dd5da2fe4b6c9fbc95f0274b508 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -44,24 +45,69 @@ int main(void) int *q = & B; __e_acsl_store_block((void *)(& q),(size_t)8); __e_acsl_full_init((void *)(& q)); - __e_acsl_assert(1,1,"Assertion","main","\\initialized(&A)", - "tests/memory/initialized.c",16); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&A)"; + __gen_e_acsl_assert_data.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } /*@ assert \initialized(&A); */ ; - __e_acsl_assert(1,1,"Assertion","main","\\initialized(&B)", - "tests/memory/initialized.c",17); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&B)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 17; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_2); + } /*@ assert \initialized(&B); */ ; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(p)","tests/memory/initialized.c",18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(p)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 18; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(p); */ ; { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(q)","tests/memory/initialized.c",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(q)",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(q)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 19; + __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \initialized(q); */ ; int a = 0; @@ -76,266 +122,730 @@ int main(void) q = & b; { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main", - "\\initialized(&a)","tests/memory/initialized.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&a)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 30; + __e_acsl_assert(__gen_e_acsl_initialized_3,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \initialized(&a); */ ; { int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized(&b)","tests/memory/initialized.c",31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&b)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 31; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\initialized(&b); */ ; + /*@ assert !\initialized(&b); */ ; { int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(p)","tests/memory/initialized.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(p)",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 32; + __e_acsl_assert(__gen_e_acsl_initialized_5,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \initialized(p); */ ; { int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main", - "!\\initialized(q)","tests/memory/initialized.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(q)",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(q)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 33; + __e_acsl_assert(! __gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized(q); */ ; + /*@ assert !\initialized(q); */ ; { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(long [2])",0,sizeof(long [2])); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& c), sizeof(long [2])); - __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion","main", - "\\initialized(&c)","tests/memory/initialized.c",34); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&c)",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&c)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 34; + __e_acsl_assert(__gen_e_acsl_initialized_7,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&c); */ ; { int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(long [2])",0,sizeof(long [2])); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& d), sizeof(long [2])); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized(&d)","tests/memory/initialized.c",35); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&d)",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&d)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 35; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&d); */ ; + /*@ assert !\initialized(&d); */ ; __e_acsl_full_init((void *)(& b)); b = 0; { int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main", - "\\initialized(q)","tests/memory/initialized.c",39); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(q)",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(q)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 39; + __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(q); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& b), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion","main", - "\\initialized(&b)","tests/memory/initialized.c",40); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\initialized(&b)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 40; + __e_acsl_assert(__gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } /*@ assert \initialized(&b); */ ; __e_acsl_full_init((void *)(& r)); r = d; { int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"(long *)d", + (void *)(d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(d), sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_11,1,"Assertion","main", - "!\\initialized((long *)d)","tests/memory/initialized.c", - 43); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized((long *)d)",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "!\\initialized((long *)d)"; + __gen_e_acsl_assert_data_13.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 43; + __e_acsl_assert(! __gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert ¬\initialized((long *)d); */ ; + /*@ assert !\initialized((long *)d); */ ; { int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"&d[1]", + (void *)(& d[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& d[1]), sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main", - "!\\initialized(&d[1])","tests/memory/initialized.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "\\initialized(&d[1])",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "!\\initialized(&d[1])"; + __gen_e_acsl_assert_data_14.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 44; + __e_acsl_assert(! __gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert ¬\initialized(&d[1]); */ ; + /*@ assert !\initialized(&d[1]); */ ; { int __gen_e_acsl_initialized_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(long [2])",0,sizeof(long [2])); __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& d), sizeof(long [2])); - __e_acsl_assert(! __gen_e_acsl_initialized_13,1,"Assertion","main", - "!\\initialized(&d)","tests/memory/initialized.c",45); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\initialized(&d)",0, + __gen_e_acsl_initialized_13); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "!\\initialized(&d)"; + __gen_e_acsl_assert_data_15.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 45; + __e_acsl_assert(! __gen_e_acsl_initialized_13, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert ¬\initialized(&d); */ ; + /*@ assert !\initialized(&d); */ ; { int __gen_e_acsl_initialized_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)r, sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_14,1,"Assertion","main", - "!\\initialized(r)","tests/memory/initialized.c",46); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "\\initialized(r)",0, + __gen_e_acsl_initialized_14); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "!\\initialized(r)"; + __gen_e_acsl_assert_data_16.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 46; + __e_acsl_assert(! __gen_e_acsl_initialized_14, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert ¬\initialized(r); */ ; + /*@ assert !\initialized(r); */ ; { int __gen_e_acsl_initialized_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(r + 1), sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_15,1,"Assertion","main", - "!\\initialized(r + 1)","tests/memory/initialized.c",47); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "\\initialized(r + 1)",0, + __gen_e_acsl_initialized_15); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "!\\initialized(r + 1)"; + __gen_e_acsl_assert_data_17.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 47; + __e_acsl_assert(! __gen_e_acsl_initialized_15, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert ¬\initialized(r + 1); */ ; + /*@ assert !\initialized(r + 1); */ ; __e_acsl_initialize((void *)(d),sizeof(long)); d[0] = (long)1; { int __gen_e_acsl_initialized_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"(long *)d", + (void *)(d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(d), sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_16,1,"Assertion","main", - "\\initialized((long *)d)","tests/memory/initialized.c", - 50); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "\\initialized((long *)d)",0, + __gen_e_acsl_initialized_16); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "\\initialized((long *)d)"; + __gen_e_acsl_assert_data_18.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 50; + __e_acsl_assert(__gen_e_acsl_initialized_16, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } /*@ assert \initialized((long *)d); */ ; { int __gen_e_acsl_initialized_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"&d[1]", + (void *)(& d[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& d[1]), sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_17,1,"Assertion","main", - "!\\initialized(&d[1])","tests/memory/initialized.c",51); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "\\initialized(&d[1])",0, + __gen_e_acsl_initialized_17); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "!\\initialized(&d[1])"; + __gen_e_acsl_assert_data_19.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 51; + __e_acsl_assert(! __gen_e_acsl_initialized_17, + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert ¬\initialized(&d[1]); */ ; + /*@ assert !\initialized(&d[1]); */ ; { int __gen_e_acsl_initialized_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20, + "sizeof(long [2])",0,sizeof(long [2])); __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(& d), sizeof(long [2])); - __e_acsl_assert(! __gen_e_acsl_initialized_18,1,"Assertion","main", - "!\\initialized(&d)","tests/memory/initialized.c",52); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "\\initialized(&d)",0, + __gen_e_acsl_initialized_18); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "!\\initialized(&d)"; + __gen_e_acsl_assert_data_20.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 52; + __e_acsl_assert(! __gen_e_acsl_initialized_18, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } - /*@ assert ¬\initialized(&d); */ ; + /*@ assert !\initialized(&d); */ ; { int __gen_e_acsl_initialized_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)r, sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_19,1,"Assertion","main", - "\\initialized(r)","tests/memory/initialized.c",53); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "\\initialized(r)",0, + __gen_e_acsl_initialized_19); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "\\initialized(r)"; + __gen_e_acsl_assert_data_21.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 53; + __e_acsl_assert(__gen_e_acsl_initialized_19, + & __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } /*@ assert \initialized(r); */ ; { int __gen_e_acsl_initialized_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_20 = __e_acsl_initialized((void *)(r + 1), sizeof(long)); - __e_acsl_assert(! __gen_e_acsl_initialized_20,1,"Assertion","main", - "!\\initialized(r + 1)","tests/memory/initialized.c",54); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "\\initialized(r + 1)",0, + __gen_e_acsl_initialized_20); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "!\\initialized(r + 1)"; + __gen_e_acsl_assert_data_22.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 54; + __e_acsl_assert(! __gen_e_acsl_initialized_20, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert ¬\initialized(r + 1); */ ; + /*@ assert !\initialized(r + 1); */ ; __e_acsl_initialize((void *)(& d[1]),sizeof(long)); d[1] = (long)1; { int __gen_e_acsl_initialized_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,"(long *)d", + (void *)(d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_23, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_21 = __e_acsl_initialized((void *)(d), sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_21,1,"Assertion","main", - "\\initialized((long *)d)","tests/memory/initialized.c", - 57); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "\\initialized((long *)d)",0, + __gen_e_acsl_initialized_21); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "Assertion"; + __gen_e_acsl_assert_data_23.pred_txt = "\\initialized((long *)d)"; + __gen_e_acsl_assert_data_23.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 57; + __e_acsl_assert(__gen_e_acsl_initialized_21, + & __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); } /*@ assert \initialized((long *)d); */ ; { int __gen_e_acsl_initialized_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24,"&d[1]", + (void *)(& d[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_24, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_22 = __e_acsl_initialized((void *)(& d[1]), sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_22,1,"Assertion","main", - "\\initialized(&d[1])","tests/memory/initialized.c",58); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "\\initialized(&d[1])",0, + __gen_e_acsl_initialized_22); + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "Assertion"; + __gen_e_acsl_assert_data_24.pred_txt = "\\initialized(&d[1])"; + __gen_e_acsl_assert_data_24.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 58; + __e_acsl_assert(__gen_e_acsl_initialized_22, + & __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); } /*@ assert \initialized(&d[1]); */ ; { int __gen_e_acsl_initialized_23; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_25, + "sizeof(long [2])",0,sizeof(long [2])); __gen_e_acsl_initialized_23 = __e_acsl_initialized((void *)(& d), sizeof(long [2])); - __e_acsl_assert(__gen_e_acsl_initialized_23,1,"Assertion","main", - "\\initialized(&d)","tests/memory/initialized.c",59); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "\\initialized(&d)",0, + __gen_e_acsl_initialized_23); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "\\initialized(&d)"; + __gen_e_acsl_assert_data_25.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 59; + __e_acsl_assert(__gen_e_acsl_initialized_23, + & __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); } /*@ assert \initialized(&d); */ ; { int __gen_e_acsl_initialized_24; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_26, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_24 = __e_acsl_initialized((void *)r, sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_24,1,"Assertion","main", - "\\initialized(r)","tests/memory/initialized.c",60); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "\\initialized(r)",0, + __gen_e_acsl_initialized_24); + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "Assertion"; + __gen_e_acsl_assert_data_26.pred_txt = "\\initialized(r)"; + __gen_e_acsl_assert_data_26.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_26.fct = "main"; + __gen_e_acsl_assert_data_26.line = 60; + __e_acsl_assert(__gen_e_acsl_initialized_24, + & __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); } /*@ assert \initialized(r); */ ; { int __gen_e_acsl_initialized_25; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27,"r",(void *)r); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27, + "sizeof(long)",0,sizeof(long)); __gen_e_acsl_initialized_25 = __e_acsl_initialized((void *)(r + 1), sizeof(long)); - __e_acsl_assert(__gen_e_acsl_initialized_25,1,"Assertion","main", - "\\initialized(r + 1)","tests/memory/initialized.c",61); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27, + "\\initialized(r + 1)",0, + __gen_e_acsl_initialized_25); + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "Assertion"; + __gen_e_acsl_assert_data_27.pred_txt = "\\initialized(r + 1)"; + __gen_e_acsl_assert_data_27.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_27.fct = "main"; + __gen_e_acsl_assert_data_27.line = 61; + __e_acsl_assert(__gen_e_acsl_initialized_25, + & __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); } /*@ assert \initialized(r + 1); */ ; __e_acsl_full_init((void *)(& p)); p = (int *)malloc(sizeof(int *)); { int __gen_e_acsl_initialized_26; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_28, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_26 = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_26,1,"Assertion","main", - "!\\initialized(p)","tests/memory/initialized.c",65); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "\\initialized(p)",0, + __gen_e_acsl_initialized_26); + __gen_e_acsl_assert_data_28.blocking = 1; + __gen_e_acsl_assert_data_28.kind = "Assertion"; + __gen_e_acsl_assert_data_28.pred_txt = "!\\initialized(p)"; + __gen_e_acsl_assert_data_28.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_28.fct = "main"; + __gen_e_acsl_assert_data_28.line = 65; + __e_acsl_assert(! __gen_e_acsl_initialized_26, + & __gen_e_acsl_assert_data_28); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28); } - /*@ assert ¬\initialized(p); */ ; + /*@ assert !\initialized(p); */ ; __e_acsl_full_init((void *)(& q)); q = (int *)calloc((unsigned long)1,sizeof(int)); { int __gen_e_acsl_initialized_27; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_29,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_29, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_27 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_27,1,"Assertion","main", - "\\initialized(q)","tests/memory/initialized.c",69); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29, + "\\initialized(q)",0, + __gen_e_acsl_initialized_27); + __gen_e_acsl_assert_data_29.blocking = 1; + __gen_e_acsl_assert_data_29.kind = "Assertion"; + __gen_e_acsl_assert_data_29.pred_txt = "\\initialized(q)"; + __gen_e_acsl_assert_data_29.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_29.fct = "main"; + __gen_e_acsl_assert_data_29.line = 69; + __e_acsl_assert(__gen_e_acsl_initialized_27, + & __gen_e_acsl_assert_data_29); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29); } /*@ assert \initialized(q); */ ; __e_acsl_full_init((void *)(& q)); q = (int *)realloc((void *)q,(unsigned long)2 * sizeof(int)); { int __gen_e_acsl_initialized_28; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_30,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_30, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_28 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_28,1,"Assertion","main", - "\\initialized(q)","tests/memory/initialized.c",74); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30, + "\\initialized(q)",0, + __gen_e_acsl_initialized_28); + __gen_e_acsl_assert_data_30.blocking = 1; + __gen_e_acsl_assert_data_30.kind = "Assertion"; + __gen_e_acsl_assert_data_30.pred_txt = "\\initialized(q)"; + __gen_e_acsl_assert_data_30.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_30.fct = "main"; + __gen_e_acsl_assert_data_30.line = 74; + __e_acsl_assert(__gen_e_acsl_initialized_28, + & __gen_e_acsl_assert_data_30); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30); } /*@ assert \initialized(q); */ ; __e_acsl_full_init((void *)(& q)); q ++; { int __gen_e_acsl_initialized_29; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_29 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_29,1,"Assertion","main", - "!\\initialized(q)","tests/memory/initialized.c",76); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_31, + "\\initialized(q)",0, + __gen_e_acsl_initialized_29); + __gen_e_acsl_assert_data_31.blocking = 1; + __gen_e_acsl_assert_data_31.kind = "Assertion"; + __gen_e_acsl_assert_data_31.pred_txt = "!\\initialized(q)"; + __gen_e_acsl_assert_data_31.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_31.fct = "main"; + __gen_e_acsl_assert_data_31.line = 76; + __e_acsl_assert(! __gen_e_acsl_initialized_29, + & __gen_e_acsl_assert_data_31); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31); } - /*@ assert ¬\initialized(q); */ ; + /*@ assert !\initialized(q); */ ; __e_acsl_full_init((void *)(& q)); q --; free((void *)p); free((void *)q); { int __gen_e_acsl_initialized_30; - /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */ + __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 = + {.values = (void *)0}; + /*@ assert Eva: dangling_pointer: !\dangling(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_30 = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_30,1,"Assertion","main", - "!\\initialized(p)","tests/memory/initialized.c",84); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_32, + "\\initialized(p)",0, + __gen_e_acsl_initialized_30); + __gen_e_acsl_assert_data_32.blocking = 1; + __gen_e_acsl_assert_data_32.kind = "Assertion"; + __gen_e_acsl_assert_data_32.pred_txt = "!\\initialized(p)"; + __gen_e_acsl_assert_data_32.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_32.fct = "main"; + __gen_e_acsl_assert_data_32.line = 84; + __e_acsl_assert(! __gen_e_acsl_initialized_30, + & __gen_e_acsl_assert_data_32); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32); } - /*@ assert ¬\initialized(p); */ ; + /*@ assert !\initialized(p); */ ; { int __gen_e_acsl_initialized_31; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_31 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_31,1,"Assertion","main", - "!\\initialized(q)","tests/memory/initialized.c",85); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_33, + "\\initialized(q)",0, + __gen_e_acsl_initialized_31); + __gen_e_acsl_assert_data_33.blocking = 1; + __gen_e_acsl_assert_data_33.kind = "Assertion"; + __gen_e_acsl_assert_data_33.pred_txt = "!\\initialized(q)"; + __gen_e_acsl_assert_data_33.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_33.fct = "main"; + __gen_e_acsl_assert_data_33.line = 85; + __e_acsl_assert(! __gen_e_acsl_initialized_31, + & __gen_e_acsl_assert_data_33); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33); } - /*@ assert ¬\initialized(q); */ ; + /*@ assert !\initialized(q); */ ; __e_acsl_full_init((void *)(& q)); q = (int *)calloc((unsigned long)3,sizeof(int)); { int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_initialized_32; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"sizeof(int)", + 0,4); __gen_e_acsl_size = 4 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_initialized_32 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if); - __e_acsl_assert(__gen_e_acsl_initialized_32,1,"Assertion","main", - "\\initialized(q + (0 .. 2))", - "tests/memory/initialized.c",90); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34, + "\\initialized(q + (0 .. 2))",0, + __gen_e_acsl_initialized_32); + __gen_e_acsl_assert_data_34.blocking = 1; + __gen_e_acsl_assert_data_34.kind = "Assertion"; + __gen_e_acsl_assert_data_34.pred_txt = "\\initialized(q + (0 .. 2))"; + __gen_e_acsl_assert_data_34.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_34.fct = "main"; + __gen_e_acsl_assert_data_34.line = 90; + __e_acsl_assert(__gen_e_acsl_initialized_32, + & __gen_e_acsl_assert_data_34); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34); } /*@ assert \initialized(q + (0 .. 2)); */ ; __e_acsl_full_init((void *)(& q)); @@ -344,41 +854,108 @@ int main(void) int __gen_e_acsl_size_2; int __gen_e_acsl_if_2; int __gen_e_acsl_initialized_33; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"sizeof(int)", + 0,4); __gen_e_acsl_size_2 = 4 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_initialized_33 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_2); - __e_acsl_assert(__gen_e_acsl_initialized_33,1,"Assertion","main", - "\\initialized(q + (0 .. 2))", - "tests/memory/initialized.c",92); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35, + "\\initialized(q + (0 .. 2))",0, + __gen_e_acsl_initialized_33); + __gen_e_acsl_assert_data_35.blocking = 1; + __gen_e_acsl_assert_data_35.kind = "Assertion"; + __gen_e_acsl_assert_data_35.pred_txt = "\\initialized(q + (0 .. 2))"; + __gen_e_acsl_assert_data_35.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_35.fct = "main"; + __gen_e_acsl_assert_data_35.line = 92; + __e_acsl_assert(__gen_e_acsl_initialized_33, + & __gen_e_acsl_assert_data_35); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35); } /*@ assert \initialized(q + (0 .. 2)); */ ; { int __gen_e_acsl_initialized_34; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_34 = __e_acsl_initialized((void *)(q + 3), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_34,1,"Assertion","main", - "!\\initialized(q + 3)","tests/memory/initialized.c",93); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_36, + "\\initialized(q + 3)",0, + __gen_e_acsl_initialized_34); + __gen_e_acsl_assert_data_36.blocking = 1; + __gen_e_acsl_assert_data_36.kind = "Assertion"; + __gen_e_acsl_assert_data_36.pred_txt = "!\\initialized(q + 3)"; + __gen_e_acsl_assert_data_36.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_36.fct = "main"; + __gen_e_acsl_assert_data_36.line = 93; + __e_acsl_assert(! __gen_e_acsl_initialized_34, + & __gen_e_acsl_assert_data_36); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36); } - /*@ assert ¬\initialized(q + 3); */ ; + /*@ assert !\initialized(q + 3); */ ; { int __gen_e_acsl_initialized_35; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_35 = __e_acsl_initialized((void *)(q + 4), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_35,1,"Assertion","main", - "!\\initialized(q + 4)","tests/memory/initialized.c",94); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_37, + "\\initialized(q + 4)",0, + __gen_e_acsl_initialized_35); + __gen_e_acsl_assert_data_37.blocking = 1; + __gen_e_acsl_assert_data_37.kind = "Assertion"; + __gen_e_acsl_assert_data_37.pred_txt = "!\\initialized(q + 4)"; + __gen_e_acsl_assert_data_37.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_37.fct = "main"; + __gen_e_acsl_assert_data_37.line = 94; + __e_acsl_assert(! __gen_e_acsl_initialized_35, + & __gen_e_acsl_assert_data_37); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37); } - /*@ assert ¬\initialized(q + 4); */ ; + /*@ assert !\initialized(q + 4); */ ; { int __gen_e_acsl_initialized_36; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_38, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_36 = __e_acsl_initialized((void *)(q + 5), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_36,1,"Assertion","main", - "!\\initialized(q + 5)","tests/memory/initialized.c",95); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "\\initialized(q + 5)",0, + __gen_e_acsl_initialized_36); + __gen_e_acsl_assert_data_38.blocking = 1; + __gen_e_acsl_assert_data_38.kind = "Assertion"; + __gen_e_acsl_assert_data_38.pred_txt = "!\\initialized(q + 5)"; + __gen_e_acsl_assert_data_38.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_38.fct = "main"; + __gen_e_acsl_assert_data_38.line = 95; + __e_acsl_assert(! __gen_e_acsl_initialized_36, + & __gen_e_acsl_assert_data_38); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38); } - /*@ assert ¬\initialized(q + 5); */ ; + /*@ assert !\initialized(q + 5); */ ; free((void *)q); __e_acsl_full_init((void *)(& q)); q = (int *)calloc((unsigned long)7,sizeof(int)); @@ -386,15 +963,37 @@ int main(void) int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_initialized_37; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"sizeof(int)", + 0,4); __gen_e_acsl_size_3 = 4 * ((6 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_initialized_37 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_3); - __e_acsl_assert(__gen_e_acsl_initialized_37,1,"Assertion","main", - "\\initialized(q + (0 .. 6))", - "tests/memory/initialized.c",98); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39, + "\\initialized(q + (0 .. 6))",0, + __gen_e_acsl_initialized_37); + __gen_e_acsl_assert_data_39.blocking = 1; + __gen_e_acsl_assert_data_39.kind = "Assertion"; + __gen_e_acsl_assert_data_39.pred_txt = "\\initialized(q + (0 .. 6))"; + __gen_e_acsl_assert_data_39.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_39.fct = "main"; + __gen_e_acsl_assert_data_39.line = 98; + __e_acsl_assert(__gen_e_acsl_initialized_37, + & __gen_e_acsl_assert_data_39); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39); } /*@ assert \initialized(q + (0 .. 6)); */ ; __e_acsl_full_init((void *)(& q)); @@ -403,66 +1002,170 @@ int main(void) int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_initialized_38; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_40 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_40,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"sizeof(int)", + 0,4); __gen_e_acsl_size_4 = 4 * ((6 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_initialized_38 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_initialized_38,1,"Assertion","main", - "\\initialized(q + (0 .. 6))", - "tests/memory/initialized.c",100); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40, + "\\initialized(q + (0 .. 6))",0, + __gen_e_acsl_initialized_38); + __gen_e_acsl_assert_data_40.blocking = 1; + __gen_e_acsl_assert_data_40.kind = "Assertion"; + __gen_e_acsl_assert_data_40.pred_txt = "\\initialized(q + (0 .. 6))"; + __gen_e_acsl_assert_data_40.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_40.fct = "main"; + __gen_e_acsl_assert_data_40.line = 100; + __e_acsl_assert(__gen_e_acsl_initialized_38, + & __gen_e_acsl_assert_data_40); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_40); } /*@ assert \initialized(q + (0 .. 6)); */ ; { int __gen_e_acsl_initialized_39; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_41 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_41, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_39 = __e_acsl_initialized((void *)(q + 7), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_39,1,"Assertion","main", - "!\\initialized(q + 7)","tests/memory/initialized.c",101); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "\\initialized(q + 7)",0, + __gen_e_acsl_initialized_39); + __gen_e_acsl_assert_data_41.blocking = 1; + __gen_e_acsl_assert_data_41.kind = "Assertion"; + __gen_e_acsl_assert_data_41.pred_txt = "!\\initialized(q + 7)"; + __gen_e_acsl_assert_data_41.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_41.fct = "main"; + __gen_e_acsl_assert_data_41.line = 101; + __e_acsl_assert(! __gen_e_acsl_initialized_39, + & __gen_e_acsl_assert_data_41); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_41); } - /*@ assert ¬\initialized(q + 7); */ ; + /*@ assert !\initialized(q + 7); */ ; __e_acsl_full_init((void *)(& q)); q = (int *)realloc((void *)q,(unsigned long)10 * sizeof(int)); { int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_initialized_40; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_42 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_42,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"sizeof(int)", + 0,4); __gen_e_acsl_size_5 = 4 * ((6 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_initialized_40 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_5); - __e_acsl_assert(__gen_e_acsl_initialized_40,1,"Assertion","main", - "\\initialized(q + (0 .. 6))", - "tests/memory/initialized.c",103); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42, + "\\initialized(q + (0 .. 6))",0, + __gen_e_acsl_initialized_40); + __gen_e_acsl_assert_data_42.blocking = 1; + __gen_e_acsl_assert_data_42.kind = "Assertion"; + __gen_e_acsl_assert_data_42.pred_txt = "\\initialized(q + (0 .. 6))"; + __gen_e_acsl_assert_data_42.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_42.fct = "main"; + __gen_e_acsl_assert_data_42.line = 103; + __e_acsl_assert(__gen_e_acsl_initialized_40, + & __gen_e_acsl_assert_data_42); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_42); } /*@ assert \initialized(q + (0 .. 6)); */ ; { int __gen_e_acsl_initialized_41; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_43 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_43,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_43, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_41 = __e_acsl_initialized((void *)(q + 7), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_41,1,"Assertion","main", - "!\\initialized(q + 7)","tests/memory/initialized.c",104); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43, + "\\initialized(q + 7)",0, + __gen_e_acsl_initialized_41); + __gen_e_acsl_assert_data_43.blocking = 1; + __gen_e_acsl_assert_data_43.kind = "Assertion"; + __gen_e_acsl_assert_data_43.pred_txt = "!\\initialized(q + 7)"; + __gen_e_acsl_assert_data_43.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_43.fct = "main"; + __gen_e_acsl_assert_data_43.line = 104; + __e_acsl_assert(! __gen_e_acsl_initialized_41, + & __gen_e_acsl_assert_data_43); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_43); } - /*@ assert ¬\initialized(q + 7); */ ; + /*@ assert !\initialized(q + 7); */ ; { int __gen_e_acsl_initialized_42; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_44 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_44, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_42 = __e_acsl_initialized((void *)(q + 8), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_42,1,"Assertion","main", - "!\\initialized(q + 8)","tests/memory/initialized.c",105); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "\\initialized(q + 8)",0, + __gen_e_acsl_initialized_42); + __gen_e_acsl_assert_data_44.blocking = 1; + __gen_e_acsl_assert_data_44.kind = "Assertion"; + __gen_e_acsl_assert_data_44.pred_txt = "!\\initialized(q + 8)"; + __gen_e_acsl_assert_data_44.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_44.fct = "main"; + __gen_e_acsl_assert_data_44.line = 105; + __e_acsl_assert(! __gen_e_acsl_initialized_42, + & __gen_e_acsl_assert_data_44); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_44); } - /*@ assert ¬\initialized(q + 8); */ ; + /*@ assert !\initialized(q + 8); */ ; { int __gen_e_acsl_initialized_43; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_45 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_45,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_45, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_43 = __e_acsl_initialized((void *)(q + 9), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_43,1,"Assertion","main", - "!\\initialized(q + 9)","tests/memory/initialized.c",106); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45, + "\\initialized(q + 9)",0, + __gen_e_acsl_initialized_43); + __gen_e_acsl_assert_data_45.blocking = 1; + __gen_e_acsl_assert_data_45.kind = "Assertion"; + __gen_e_acsl_assert_data_45.pred_txt = "!\\initialized(q + 9)"; + __gen_e_acsl_assert_data_45.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_45.fct = "main"; + __gen_e_acsl_assert_data_45.line = 106; + __e_acsl_assert(! __gen_e_acsl_initialized_43, + & __gen_e_acsl_assert_data_45); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_45); } - /*@ assert ¬\initialized(q + 9); */ ; + /*@ assert !\initialized(q + 9); */ ; free((void *)q); __e_acsl_full_init((void *)(& q)); q = (int *)calloc((unsigned long)2,sizeof(int)); @@ -470,15 +1173,37 @@ int main(void) int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_initialized_44; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_46 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_46,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"sizeof(int)", + 0,4); __gen_e_acsl_size_6 = 4 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_initialized_44 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_6); - __e_acsl_assert(__gen_e_acsl_initialized_44,1,"Assertion","main", - "\\initialized(q + (0 .. 1))", - "tests/memory/initialized.c",109); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46, + "\\initialized(q + (0 .. 1))",0, + __gen_e_acsl_initialized_44); + __gen_e_acsl_assert_data_46.blocking = 1; + __gen_e_acsl_assert_data_46.kind = "Assertion"; + __gen_e_acsl_assert_data_46.pred_txt = "\\initialized(q + (0 .. 1))"; + __gen_e_acsl_assert_data_46.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_46.fct = "main"; + __gen_e_acsl_assert_data_46.line = 109; + __e_acsl_assert(__gen_e_acsl_initialized_44, + & __gen_e_acsl_assert_data_46); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_46); } /*@ assert \initialized(q + (0 .. 1)); */ ; __e_acsl_full_init((void *)(& q)); @@ -487,33 +1212,85 @@ int main(void) int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_initialized_45; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_47 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"sizeof(int)", + 0,4); __gen_e_acsl_size_7 = 4 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_initialized_45 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_7); - __e_acsl_assert(__gen_e_acsl_initialized_45,1,"Assertion","main", - "\\initialized(q + (0 .. 1))", - "tests/memory/initialized.c",111); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47, + "\\initialized(q + (0 .. 1))",0, + __gen_e_acsl_initialized_45); + __gen_e_acsl_assert_data_47.blocking = 1; + __gen_e_acsl_assert_data_47.kind = "Assertion"; + __gen_e_acsl_assert_data_47.pred_txt = "\\initialized(q + (0 .. 1))"; + __gen_e_acsl_assert_data_47.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_47.fct = "main"; + __gen_e_acsl_assert_data_47.line = 111; + __e_acsl_assert(__gen_e_acsl_initialized_45, + & __gen_e_acsl_assert_data_47); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_47); } /*@ assert \initialized(q + (0 .. 1)); */ ; { int __gen_e_acsl_initialized_46; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_48 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_48,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_48, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_46 = __e_acsl_initialized((void *)(q + 2), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_46,1,"Assertion","main", - "!\\initialized(q + 2)","tests/memory/initialized.c",112); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_48, + "\\initialized(q + 2)",0, + __gen_e_acsl_initialized_46); + __gen_e_acsl_assert_data_48.blocking = 1; + __gen_e_acsl_assert_data_48.kind = "Assertion"; + __gen_e_acsl_assert_data_48.pred_txt = "!\\initialized(q + 2)"; + __gen_e_acsl_assert_data_48.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_48.fct = "main"; + __gen_e_acsl_assert_data_48.line = 112; + __e_acsl_assert(! __gen_e_acsl_initialized_46, + & __gen_e_acsl_assert_data_48); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_48); } - /*@ assert ¬\initialized(q + 2); */ ; + /*@ assert !\initialized(q + 2); */ ; { int __gen_e_acsl_initialized_47; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_49 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_49,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_49, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_47 = __e_acsl_initialized((void *)(q + 3), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_47,1,"Assertion","main", - "!\\initialized(q + 3)","tests/memory/initialized.c",113); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_49, + "\\initialized(q + 3)",0, + __gen_e_acsl_initialized_47); + __gen_e_acsl_assert_data_49.blocking = 1; + __gen_e_acsl_assert_data_49.kind = "Assertion"; + __gen_e_acsl_assert_data_49.pred_txt = "!\\initialized(q + 3)"; + __gen_e_acsl_assert_data_49.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_49.fct = "main"; + __gen_e_acsl_assert_data_49.line = 113; + __e_acsl_assert(! __gen_e_acsl_initialized_47, + & __gen_e_acsl_assert_data_49); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_49); } - /*@ assert ¬\initialized(q + 3); */ ; + /*@ assert !\initialized(q + 3); */ ; free((void *)q); __e_acsl_full_init((void *)(& q)); q = (int *)calloc((unsigned long)6,sizeof(int)); @@ -521,15 +1298,37 @@ int main(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_initialized_48; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_50 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"sizeof(int)", + 0,4); __gen_e_acsl_size_8 = 4 * ((5 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_initialized_48 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_8); - __e_acsl_assert(__gen_e_acsl_initialized_48,1,"Assertion","main", - "\\initialized(q + (0 .. 5))", - "tests/memory/initialized.c",116); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "\\initialized(q + (0 .. 5))",0, + __gen_e_acsl_initialized_48); + __gen_e_acsl_assert_data_50.blocking = 1; + __gen_e_acsl_assert_data_50.kind = "Assertion"; + __gen_e_acsl_assert_data_50.pred_txt = "\\initialized(q + (0 .. 5))"; + __gen_e_acsl_assert_data_50.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_50.fct = "main"; + __gen_e_acsl_assert_data_50.line = 116; + __e_acsl_assert(__gen_e_acsl_initialized_48, + & __gen_e_acsl_assert_data_50); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_50); } /*@ assert \initialized(q + (0 .. 5)); */ ; __e_acsl_full_init((void *)(& q)); @@ -538,15 +1337,37 @@ int main(void) int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_49; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_51 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_51,"q",(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"sizeof(int)", + 0,4); __gen_e_acsl_size_9 = 4 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_initialized_49 = __e_acsl_initialized((void *)((char *)q + 4 * 0), (size_t)__gen_e_acsl_if_9); - __e_acsl_assert(__gen_e_acsl_initialized_49,1,"Assertion","main", - "\\initialized(q + (0 .. 2))", - "tests/memory/initialized.c",118); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51, + "\\initialized(q + (0 .. 2))",0, + __gen_e_acsl_initialized_49); + __gen_e_acsl_assert_data_51.blocking = 1; + __gen_e_acsl_assert_data_51.kind = "Assertion"; + __gen_e_acsl_assert_data_51.pred_txt = "\\initialized(q + (0 .. 2))"; + __gen_e_acsl_assert_data_51.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_51.fct = "main"; + __gen_e_acsl_assert_data_51.line = 118; + __e_acsl_assert(__gen_e_acsl_initialized_49, + & __gen_e_acsl_assert_data_51); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_51); } /*@ assert \initialized(q + (0 .. 2)); */ ; free((void *)q); @@ -554,78 +1375,213 @@ int main(void) q = (int *)malloc((unsigned long)6 * sizeof(int)); { int __gen_e_acsl_initialized_50; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_52 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_52,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_52, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_50 = __e_acsl_initialized((void *)(q + 0), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_50,1,"Assertion","main", - "!\\initialized(q + 0)","tests/memory/initialized.c",121); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52, + "\\initialized(q + 0)",0, + __gen_e_acsl_initialized_50); + __gen_e_acsl_assert_data_52.blocking = 1; + __gen_e_acsl_assert_data_52.kind = "Assertion"; + __gen_e_acsl_assert_data_52.pred_txt = "!\\initialized(q + 0)"; + __gen_e_acsl_assert_data_52.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_52.fct = "main"; + __gen_e_acsl_assert_data_52.line = 121; + __e_acsl_assert(! __gen_e_acsl_initialized_50, + & __gen_e_acsl_assert_data_52); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_52); } - /*@ assert ¬\initialized(q + 0); */ ; + /*@ assert !\initialized(q + 0); */ ; { int __gen_e_acsl_initialized_51; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_53 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_53, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_51 = __e_acsl_initialized((void *)(q + 1), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_51,1,"Assertion","main", - "!\\initialized(q + 1)","tests/memory/initialized.c",122); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "\\initialized(q + 1)",0, + __gen_e_acsl_initialized_51); + __gen_e_acsl_assert_data_53.blocking = 1; + __gen_e_acsl_assert_data_53.kind = "Assertion"; + __gen_e_acsl_assert_data_53.pred_txt = "!\\initialized(q + 1)"; + __gen_e_acsl_assert_data_53.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_53.fct = "main"; + __gen_e_acsl_assert_data_53.line = 122; + __e_acsl_assert(! __gen_e_acsl_initialized_51, + & __gen_e_acsl_assert_data_53); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_53); } - /*@ assert ¬\initialized(q + 1); */ ; + /*@ assert !\initialized(q + 1); */ ; { int __gen_e_acsl_initialized_52; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_54 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_54,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_54, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_52 = __e_acsl_initialized((void *)(q + 2), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_52,1,"Assertion","main", - "!\\initialized(q + 2)","tests/memory/initialized.c",123); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54, + "\\initialized(q + 2)",0, + __gen_e_acsl_initialized_52); + __gen_e_acsl_assert_data_54.blocking = 1; + __gen_e_acsl_assert_data_54.kind = "Assertion"; + __gen_e_acsl_assert_data_54.pred_txt = "!\\initialized(q + 2)"; + __gen_e_acsl_assert_data_54.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_54.fct = "main"; + __gen_e_acsl_assert_data_54.line = 123; + __e_acsl_assert(! __gen_e_acsl_initialized_52, + & __gen_e_acsl_assert_data_54); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_54); } - /*@ assert ¬\initialized(q + 2); */ ; + /*@ assert !\initialized(q + 2); */ ; { int __gen_e_acsl_initialized_53; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_55 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_55,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_55, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_53 = __e_acsl_initialized((void *)(q + 3), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_53,1,"Assertion","main", - "!\\initialized(q + 3)","tests/memory/initialized.c",124); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55, + "\\initialized(q + 3)",0, + __gen_e_acsl_initialized_53); + __gen_e_acsl_assert_data_55.blocking = 1; + __gen_e_acsl_assert_data_55.kind = "Assertion"; + __gen_e_acsl_assert_data_55.pred_txt = "!\\initialized(q + 3)"; + __gen_e_acsl_assert_data_55.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_55.fct = "main"; + __gen_e_acsl_assert_data_55.line = 124; + __e_acsl_assert(! __gen_e_acsl_initialized_53, + & __gen_e_acsl_assert_data_55); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_55); } - /*@ assert ¬\initialized(q + 3); */ ; + /*@ assert !\initialized(q + 3); */ ; { int __gen_e_acsl_initialized_54; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_56 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_56, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_54 = __e_acsl_initialized((void *)(q + 4), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_54,1,"Assertion","main", - "!\\initialized(q + 4)","tests/memory/initialized.c",125); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "\\initialized(q + 4)",0, + __gen_e_acsl_initialized_54); + __gen_e_acsl_assert_data_56.blocking = 1; + __gen_e_acsl_assert_data_56.kind = "Assertion"; + __gen_e_acsl_assert_data_56.pred_txt = "!\\initialized(q + 4)"; + __gen_e_acsl_assert_data_56.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_56.fct = "main"; + __gen_e_acsl_assert_data_56.line = 125; + __e_acsl_assert(! __gen_e_acsl_initialized_54, + & __gen_e_acsl_assert_data_56); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_56); } - /*@ assert ¬\initialized(q + 4); */ ; + /*@ assert !\initialized(q + 4); */ ; { int __gen_e_acsl_initialized_55; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_57 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_57,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_57, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_55 = __e_acsl_initialized((void *)(q + 5), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_55,1,"Assertion","main", - "!\\initialized(q + 5)","tests/memory/initialized.c",126); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57, + "\\initialized(q + 5)",0, + __gen_e_acsl_initialized_55); + __gen_e_acsl_assert_data_57.blocking = 1; + __gen_e_acsl_assert_data_57.kind = "Assertion"; + __gen_e_acsl_assert_data_57.pred_txt = "!\\initialized(q + 5)"; + __gen_e_acsl_assert_data_57.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_57.fct = "main"; + __gen_e_acsl_assert_data_57.line = 126; + __e_acsl_assert(! __gen_e_acsl_initialized_55, + & __gen_e_acsl_assert_data_57); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_57); } - /*@ assert ¬\initialized(q + 5); */ ; + /*@ assert !\initialized(q + 5); */ ; __e_acsl_full_init((void *)(& q)); q = (int *)realloc((void *)q,(unsigned long)3 * sizeof(int)); { int __gen_e_acsl_initialized_56; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_58 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_58,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_58, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_56 = __e_acsl_initialized((void *)(q + 0), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_56,1,"Assertion","main", - "!\\initialized(q + 0)","tests/memory/initialized.c",128); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58, + "\\initialized(q + 0)",0, + __gen_e_acsl_initialized_56); + __gen_e_acsl_assert_data_58.blocking = 1; + __gen_e_acsl_assert_data_58.kind = "Assertion"; + __gen_e_acsl_assert_data_58.pred_txt = "!\\initialized(q + 0)"; + __gen_e_acsl_assert_data_58.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_58.fct = "main"; + __gen_e_acsl_assert_data_58.line = 128; + __e_acsl_assert(! __gen_e_acsl_initialized_56, + & __gen_e_acsl_assert_data_58); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_58); } - /*@ assert ¬\initialized(q + 0); */ ; + /*@ assert !\initialized(q + 0); */ ; { int __gen_e_acsl_initialized_57; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_59 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_59,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_59, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_57 = __e_acsl_initialized((void *)(q + 1), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_57,1,"Assertion","main", - "!\\initialized(q + 1)","tests/memory/initialized.c",129); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59, + "\\initialized(q + 1)",0, + __gen_e_acsl_initialized_57); + __gen_e_acsl_assert_data_59.blocking = 1; + __gen_e_acsl_assert_data_59.kind = "Assertion"; + __gen_e_acsl_assert_data_59.pred_txt = "!\\initialized(q + 1)"; + __gen_e_acsl_assert_data_59.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_59.fct = "main"; + __gen_e_acsl_assert_data_59.line = 129; + __e_acsl_assert(! __gen_e_acsl_initialized_57, + & __gen_e_acsl_assert_data_59); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_59); } - /*@ assert ¬\initialized(q + 1); */ ; + /*@ assert !\initialized(q + 1); */ ; { int __gen_e_acsl_initialized_58; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_60 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_60,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_60, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_58 = __e_acsl_initialized((void *)(q + 2), sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_58,1,"Assertion","main", - "!\\initialized(q + 2)","tests/memory/initialized.c",130); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_60, + "\\initialized(q + 2)",0, + __gen_e_acsl_initialized_58); + __gen_e_acsl_assert_data_60.blocking = 1; + __gen_e_acsl_assert_data_60.kind = "Assertion"; + __gen_e_acsl_assert_data_60.pred_txt = "!\\initialized(q + 2)"; + __gen_e_acsl_assert_data_60.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_60.fct = "main"; + __gen_e_acsl_assert_data_60.line = 130; + __e_acsl_assert(! __gen_e_acsl_initialized_58, + & __gen_e_acsl_assert_data_60); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_60); } - /*@ assert ¬\initialized(q + 2); */ ; + /*@ assert !\initialized(q + 2); */ ; free((void *)q); __e_acsl_full_init((void *)(& q)); q = (int *)(& q - 1024 * 5); @@ -633,20 +1589,50 @@ int main(void) q = (int *)128; { int __gen_e_acsl_initialized_59; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_61 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_61,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_61, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_59 = __e_acsl_initialized((void *)q,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_59,1,"Assertion","main", - "!\\initialized(q)","tests/memory/initialized.c",139); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_61, + "\\initialized(q)",0, + __gen_e_acsl_initialized_59); + __gen_e_acsl_assert_data_61.blocking = 1; + __gen_e_acsl_assert_data_61.kind = "Assertion"; + __gen_e_acsl_assert_data_61.pred_txt = "!\\initialized(q)"; + __gen_e_acsl_assert_data_61.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_61.fct = "main"; + __gen_e_acsl_assert_data_61.line = 139; + __e_acsl_assert(! __gen_e_acsl_initialized_59, + & __gen_e_acsl_assert_data_61); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_61); } - /*@ assert ¬\initialized(q); */ ; + /*@ assert !\initialized(q); */ ; __e_acsl_full_init((void *)(& p)); p = (int *)0; { int __gen_e_acsl_initialized_60; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_62 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_62,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_62, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_60 = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_initialized_60,1,"Assertion","main", - "!\\initialized(p)","tests/memory/initialized.c",142); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_62, + "\\initialized(p)",0, + __gen_e_acsl_initialized_60); + __gen_e_acsl_assert_data_62.blocking = 1; + __gen_e_acsl_assert_data_62.kind = "Assertion"; + __gen_e_acsl_assert_data_62.pred_txt = "!\\initialized(p)"; + __gen_e_acsl_assert_data_62.file = "tests/memory/initialized.c"; + __gen_e_acsl_assert_data_62.fct = "main"; + __gen_e_acsl_assert_data_62.line = 142; + __e_acsl_assert(! __gen_e_acsl_initialized_60, + & __gen_e_acsl_assert_data_62); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_62); } - /*@ assert ¬\initialized(p); */ ; + /*@ assert !\initialized(p); */ ; int size = 100; char *partsc = malloc((unsigned long)size * sizeof(char)); char *partsi = malloc((unsigned long)size * sizeof(int)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c b/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c index 6162260111829a4c53f7ab287aeb99ef1ed8f4c9..2b8c57520a6f1bfa9e2eec9f1e7ae1a21180f5c4 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_6; char *__gen_e_acsl_literal_string_5; @@ -18,16 +18,36 @@ void f(void) { { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data,"*(T + G)",0, + *(T + G)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"T",(void *)T); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"G",0,G); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(T + G), sizeof(char),(void *)T, (void *)(& T)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(T + G)", - "tests/memory/literal_string.i",11); - __e_acsl_assert((int)*(T + G) == 98,1,"Assertion","f", - "*(T + G) == \'b\'","tests/memory/literal_string.i",11); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(T + G)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "*(T + G) == \'b\'"; + __gen_e_acsl_assert_data.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert((int)*(T + G) == 98,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert *(T + G) ≡ 'b'; */ ; + /*@ assert *(T + G) == 'b'; */ ; G ++; return; } @@ -105,48 +125,118 @@ int main(void) __e_acsl_full_init((void *)(& SS)); { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_char(& __gen_e_acsl_assert_data,"*(S + G2)",0, + *(S + G2)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"S",(void *)S); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"G2",0,G2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(S + G2), sizeof(char),(void *)S, (void *)(& S)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(S + G2)", - "tests/memory/literal_string.i",25); - __e_acsl_assert((int)*(S + G2) == 111,1,"Assertion","main", - "*(S + G2) == \'o\'","tests/memory/literal_string.i",25); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(S + G2)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 25; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "*(S + G2) == \'o\'"; + __gen_e_acsl_assert_data.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 25; + __e_acsl_assert((int)*(S + G2) == 111,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert *(S + G2) ≡ 'o'; */ ; + /*@ assert *(S + G2) == 'o'; */ ; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"S",(void *)S); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)S,sizeof(char)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(S)","tests/memory/literal_string.i",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(S)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(S)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 26; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(S); */ ; { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"S2", + (void *)S2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)S2,sizeof(char), (void *)S2, (void *)(& S2)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"Assertion","main", - "\\valid_read(S2)","tests/memory/literal_string.i",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid_read(S2)",0, + __gen_e_acsl_valid_read_2); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(S2)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 27; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid_read(S2); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&SS", + (void *)(& SS)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& SS), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&SS)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"SS", + (void *)SS); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)SS,sizeof(char),(void *)SS, (void *)(& SS)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(SS)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(SS)", - "tests/memory/literal_string.i",28); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(SS)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/literal_string.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 28; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(SS); */ ; + /*@ assert !\valid(SS); */ ; f(); s_str ++; l_str ++; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c index f97ada7719a74ec02de07195c48e725a2a1dd268..32d7fc1b5f869d725b12a3452111ad97f0040ef6 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_2; char *__gen_e_acsl_literal_string_3; @@ -54,10 +55,24 @@ int main(int argc, char const **argv) a = 1; { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int), (void *)(& a),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&a)", - "tests/memory/local_goto.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)"; + __gen_e_acsl_assert_data.file = "tests/memory/local_goto.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 23; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&a); */ ; if (t == 2) { @@ -72,10 +87,24 @@ int main(int argc, char const **argv) __e_acsl_full_init((void *)(& b)); { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int), (void *)(& b),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main", - "\\valid(&b)","tests/memory/local_goto.c",34); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&b)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/local_goto.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 34; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(&b); */ ; printf(__gen_e_acsl_literal_string_2,t, diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c index 0eb3cefd4a8d80047a7020844f4ddd8d4ed066ef..e4fcabd2ea5912c918a6765eb6b26604a116c0d2 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c index c28e90044db2844a13012bd4948d0e7c90d57b17..d376379553f1eb17dcf8425f5657ceb8776b4fbf 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -18,17 +19,39 @@ struct list *add(struct list *l, int i) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&new", + (void *)(& new)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(struct list *)",0, + sizeof(struct list *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& new), sizeof(struct list *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&new)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"new", + (void *)new); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(struct list)",0, + sizeof(struct list)); __gen_e_acsl_valid = __e_acsl_valid((void *)new,sizeof(struct list), (void *)new,(void *)(& new)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(new)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","add","\\valid(new)", - "tests/memory/local_var.c",15); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(new)"; + __gen_e_acsl_assert_data.file = "tests/memory/local_var.c"; + __gen_e_acsl_assert_data.fct = "add"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(new); */ ; __e_acsl_initialize((void *)(& new->element),sizeof(int)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c b/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c index 61c8808202551d230a623137e95c4c4d451bbc86..7f6eb9e282d9672202c8078789279102117b24b9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c @@ -1,11 +1,12 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "string.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires valid_string_s: valid_read_string(s); - ensures acsl_c_equiv: \result ≡ strlen(\old(s)); + ensures acsl_c_equiv: \result == strlen(\old(s)); assigns \result; assigns \result \from (indirect: *(s + (0 ..))); */ @@ -23,6 +24,7 @@ int __gen_e_acsl_main(int argc, char **argv) int __gen_e_acsl_forall; long __gen_e_acsl_k; __e_acsl_store_block((void *)(& argv),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_k = 0; while (1) { @@ -41,69 +43,152 @@ int __gen_e_acsl_main(int argc, char **argv) __gen_e_acsl_k ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main", - "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)", - "tests/memory/mainargs.c",12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)"; + __gen_e_acsl_assert_data.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ∀ int k; 0 ≤ k ≤ argc ⇒ \valid(argv + k); */ ; + /*@ assert \forall int k; 0 <= k <= argc ==> \valid(argv + k); */ ; { unsigned long __gen_e_acsl_block_length; __e_acsl_mpz_t __gen_e_acsl_block_length_2; __e_acsl_mpz_t __gen_e_acsl_; int __gen_e_acsl_eq; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"argv", + (void *)argv); __gen_e_acsl_block_length = __e_acsl_block_length((void *)argv); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "\\block_length(argv)",0, + __gen_e_acsl_block_length); __gmpz_init_set_ui(__gen_e_acsl_block_length_2,__gen_e_acsl_block_length); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"argc",0,argc); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,8); __gmpz_init_set_si(__gen_e_acsl_,(argc + 1L) * 8); __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_block_length_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); - __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main", - "\\block_length(argv) == (argc + 1) * sizeof(char *)", - "tests/memory/mainargs.c",13); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(argv) == (argc + 1) * sizeof(char *)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gmpz_clear(__gen_e_acsl_block_length_2); __gmpz_clear(__gen_e_acsl_); } - /*@ assert \block_length(argv) ≡ (argc + 1) * sizeof(char *); */ ; + /*@ assert \block_length(argv) == (argc + 1) * sizeof(char *); */ ; { int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + /*@ assert Eva: mem_access: \valid_read(argv + argc); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "*(argv + argc)",(void *)*(argv + argc)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"argv", + (void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"argc",0,argc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(argv + argc), sizeof(char *), (void *)argv, (void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(argv + argc)", - "tests/memory/mainargs.c",15); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(argv + argc)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "*(argv + argc) == \\null"; + __gen_e_acsl_assert_data_3.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; /*@ assert Eva: mem_access: \valid_read(argv + argc); */ - __e_acsl_assert(*(argv + argc) == (char *)0,1,"Assertion","main", - "*(argv + argc) == \\null","tests/memory/mainargs.c",15); + __e_acsl_assert(*(argv + argc) == (char *)0,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert *(argv + argc) ≡ \null; */ ; + /*@ assert *(argv + argc) == \null; */ ; { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"argv", + (void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"argc",0,argc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(argv + argc), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(argv + argc)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read_2; int __gen_e_acsl_valid_2; + /*@ assert Eva: mem_access: \valid_read(argv + argc); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "*(argv + argc)",(void *)*(argv + argc)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"argv", + (void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"argc",0, + argc); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(argv + argc), sizeof(char *), (void *)argv, (void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "mem_access: \\valid_read(argv + argc)", - "tests/memory/mainargs.c",16); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(argv + argc)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 16; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); /*@ assert Eva: mem_access: \valid_read(argv + argc); */ __gen_e_acsl_valid_2 = __e_acsl_valid((void *)*(argv + argc), sizeof(char), (void *)*(argv + argc), (void *)(argv + argc)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(*(argv + argc))",0, + __gen_e_acsl_valid_2); __gen_e_acsl_and = __gen_e_acsl_valid_2; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main", - "!\\valid(*(argv + argc))","tests/memory/mainargs.c",16); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(*(argv + argc))"; + __gen_e_acsl_assert_data_5.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 16; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(*(argv + argc)); */ ; + /*@ assert !\valid(*(argv + argc)); */ ; i = 0; while (i < argc) { { @@ -113,32 +198,70 @@ int __gen_e_acsl_main(int argc, char **argv) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"argv", + (void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(argv + i), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(argv + i)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_3; int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "*(argv + i)",(void *)*(argv + i)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"argv", + (void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(argv + i), sizeof(char *), (void *)argv, (void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main", - "mem_access: \\valid_read(argv + i)", - "tests/memory/mainargs.c",19); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(argv + i)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 19; + __e_acsl_assert(__gen_e_acsl_valid_read_3, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*(argv + i), sizeof(char), (void *)*(argv + i), (void *)(argv + i)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid(*(argv + i))",0, + __gen_e_acsl_valid_3); __gen_e_acsl_and_2 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main", - "\\valid(*(argv + i))","tests/memory/mainargs.c",19); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid(*(argv + i))"; + __gen_e_acsl_assert_data_7.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 19; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid(*(argv + i)); */ ; { int __gen_e_acsl_forall_2; long __gen_e_acsl_k_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_k_2 = 0; while (1) { @@ -146,14 +269,28 @@ int __gen_e_acsl_main(int argc, char **argv) { int __gen_e_acsl_valid_read_4; int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "argv",(void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"i",0, + i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)( argv + i), sizeof(char *), (void *)argv, (void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main", - "mem_access: \\valid_read(argv + i)", - "tests/memory/mainargs.c",20); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(argv + i)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 20; + __e_acsl_assert(__gen_e_acsl_valid_read_4, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(*(argv + i) + __gen_e_acsl_k_2), sizeof(char), (void *)*(argv + i), @@ -167,11 +304,20 @@ int __gen_e_acsl_main(int argc, char **argv) __gen_e_acsl_k_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main", - "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)", - "tests/memory/mainargs.c",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)", + 0,__gen_e_acsl_forall_2); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 20; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ∀ int k; 0 ≤ k ≤ len ⇒ \valid(*(argv + i) + k); */ ; + /*@ assert \forall int k; 0 <= k <= len ==> \valid(*(argv + i) + k); */ + ; } i ++; } @@ -189,14 +335,41 @@ int main(int argc, char **argv) { int __gen_e_acsl_valid; int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&argc", + (void *)(& argc)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& argc),sizeof(int), (void *)(& argc),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","main", - "\\valid(&argc)","tests/memory/mainargs.c",7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&argc)", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&argc)"; + __gen_e_acsl_assert_data.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&argv", + (void *)(& argv)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& argv),sizeof(char **), (void *)(& argv),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","main", - "\\valid(&argv)","tests/memory/mainargs.c",8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(&argv)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&argv)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/mainargs.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __retres = __gen_e_acsl_main(argc,argv); __e_acsl_delete_block((void *)(& argv)); @@ -205,7 +378,7 @@ int main(int argc, char **argv) } /*@ requires valid_string_s: valid_read_string(s); - ensures acsl_c_equiv: \result ≡ strlen(\old(s)); + ensures acsl_c_equiv: \result == strlen(\old(s)); assigns \result; assigns \result \from (indirect: *(s + (0 ..))); */ diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c b/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c index 2f9c48d8a945ad526d97dbb871b9689e4d534d93..5f7af3b7bba37ab7bd1cd38fed9282c60850b7ea 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -7,8 +8,8 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires valid_memptr: \valid(memptr); requires alignment_is_a_suitable_power_of_two: - alignment ≥ sizeof(void *) ∧ - ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; + alignment >= sizeof(void *) && + ((size_t)alignment & ((size_t)alignment - 1)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: alignment), size, __fc_heap_status; @@ -20,7 +21,7 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; behavior allocation: assumes can_allocate: is_allocable(size); ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size)); - ensures result_zero: \result ≡ 0; + ensures result_zero: \result == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: alignment), size, __fc_heap_status; @@ -29,8 +30,8 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(size); - ensures result_non_zero: \result < 0 ∨ \result > 0; + assumes cannot_allocate: !is_allocable(size); + ensures result_non_zero: \result < 0 || \result > 0; assigns \result; assigns \result \from (indirect: alignment); allocates \nothing; @@ -66,118 +67,291 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(char),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/memory/memalign.c",15); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; { unsigned long __gen_e_acsl_block_length; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); __gen_e_acsl_block_length = __e_acsl_block_length((void *)p); - __e_acsl_assert(__gen_e_acsl_block_length == 15UL,1,"Assertion","main", - "\\block_length(p) == 15","tests/memory/memalign.c",16); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "\\block_length(p)",0, + __gen_e_acsl_block_length); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(p) == 15"; + __gen_e_acsl_assert_data_2.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(__gen_e_acsl_block_length == 15UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \block_length(p) ≡ 15; */ ; + /*@ assert \block_length(p) == 15; */ ; { int __gen_e_acsl_freeable; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p); __gen_e_acsl_freeable = __e_acsl_freeable((void *)p); - __e_acsl_assert(__gen_e_acsl_freeable,1,"Assertion","main", - "\\freeable(p)","tests/memory/memalign.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\freeable(p)",0,__gen_e_acsl_freeable); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\freeable(p)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 17; + __e_acsl_assert(__gen_e_acsl_freeable,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \freeable(p); */ ; free((void *)p); { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(char),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(p)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(p)", - "tests/memory/memalign.c",19); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 19; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; __e_acsl_full_init((void *)(& a)); a = (char *)aligned_alloc((unsigned long)256,(unsigned long)12); - __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null", - "tests/memory/memalign.c",23); - /*@ assert a ≡ \null; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a",(void *)a); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "a == \\null"; + __gen_e_acsl_assert_data_5.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 23; + __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert a == \null; */ ; __e_acsl_full_init((void *)(& a)); a = (char *)aligned_alloc((unsigned long)255,(unsigned long)512); - __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null", - "tests/memory/memalign.c",26); - /*@ assert a ≡ \null; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"a",(void *)a); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "a == \\null"; + __gen_e_acsl_assert_data_6.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 26; + __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert a == \null; */ ; __e_acsl_full_init((void *)(& a)); a = (char *)aligned_alloc((unsigned long)0,(unsigned long)512); - __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null", - "tests/memory/memalign.c",29); - /*@ assert a ≡ \null; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"a",(void *)a); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "a == \\null"; + __gen_e_acsl_assert_data_7.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 29; + __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert a == \null; */ ; __e_acsl_full_init((void *)(& a)); a = (char *)aligned_alloc((unsigned long)256,(unsigned long)512); - __e_acsl_assert(a != (char *)0,1,"Assertion","main","a != \\null", - "tests/memory/memalign.c",32); - /*@ assert a ≢ \null; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"a",(void *)a); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "a != \\null"; + __gen_e_acsl_assert_data_8.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 32; + __e_acsl_assert(a != (char *)0,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert a != \null; */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)a,sizeof(char),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"\\valid(a)", + 0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(a)", - "tests/memory/memalign.c",33); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\valid(a)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 33; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \valid(a); */ ; { unsigned long __gen_e_acsl_block_length_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"a",(void *)a); __gen_e_acsl_block_length_2 = __e_acsl_block_length((void *)a); - __e_acsl_assert(__gen_e_acsl_block_length_2 == 512UL,1,"Assertion", - "main","\\block_length(a) == 512", - "tests/memory/memalign.c",34); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "\\block_length(a)",0, + __gen_e_acsl_block_length_2); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\block_length(a) == 512"; + __gen_e_acsl_assert_data_10.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 34; + __e_acsl_assert(__gen_e_acsl_block_length_2 == 512UL, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert \block_length(a) ≡ 512; */ ; + /*@ assert \block_length(a) == 512; */ ; { int __gen_e_acsl_freeable_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"a",(void *)a); __gen_e_acsl_freeable_2 = __e_acsl_freeable((void *)a); - __e_acsl_assert(__gen_e_acsl_freeable_2,1,"Assertion","main", - "\\freeable(a)","tests/memory/memalign.c",35); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\freeable(a)",0,__gen_e_acsl_freeable_2); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\freeable(a)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 35; + __e_acsl_assert(__gen_e_acsl_freeable_2,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \freeable(a); */ ; free((void *)a); { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& a), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)a,sizeof(char),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\valid(a)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","main","!\\valid(a)", - "tests/memory/memalign.c",38); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\valid(a)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/memalign.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 38; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\valid(a); */ ; + /*@ assert !\valid(a); */ ; __retres = 0; __e_acsl_delete_block((void *)(& a)); __e_acsl_delete_block((void *)(& p)); @@ -189,8 +363,8 @@ int main(int argc, char const **argv) /*@ requires valid_memptr: \valid(memptr); requires alignment_is_a_suitable_power_of_two: - alignment ≥ sizeof(void *) ∧ - ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0; + alignment >= sizeof(void *) && + ((size_t)alignment & ((size_t)alignment - 1)) == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: alignment), size, __fc_heap_status; @@ -202,7 +376,7 @@ int main(int argc, char const **argv) behavior allocation: assumes can_allocate: is_allocable(size); ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size)); - ensures result_zero: \result ≡ 0; + ensures result_zero: \result == 0; assigns __fc_heap_status, \result; assigns __fc_heap_status \from (indirect: alignment), size, __fc_heap_status; @@ -211,8 +385,8 @@ int main(int argc, char const **argv) (indirect: __fc_heap_status); behavior no_allocation: - assumes cannot_allocate: ¬is_allocable(size); - ensures result_non_zero: \result < 0 ∨ \result > 0; + assumes cannot_allocate: !is_allocable(size); + ensures result_non_zero: \result < 0 || \result > 0; assigns \result; assigns \result \from (indirect: alignment); allocates \nothing; @@ -229,18 +403,40 @@ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size) int __gen_e_acsl_and; __e_acsl_store_block((void *)(& memptr),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"memptr", + (void *)memptr); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(void *)",0,sizeof(void *)); __gen_e_acsl_valid = __e_acsl_valid((void *)memptr,sizeof(void *), (void *)memptr,(void *)(& memptr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","posix_memalign", - "valid_memptr: \\valid(memptr)", - "FRAMAC_SHARE/libc/stdlib.h",666); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(memptr)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "valid_memptr: \\valid(memptr)"; + __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data.fct = "posix_memalign"; + __gen_e_acsl_assert_data.line = 666; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"alignment", + 0,alignment); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "sizeof(void *)",0,8); if (alignment >= 8UL) { __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl__2; __e_acsl_mpz_t __gen_e_acsl_sub; __e_acsl_mpz_t __gen_e_acsl_band; unsigned long __gen_e_acsl__3; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "alignment",0,alignment); __gmpz_init_set_ui(__gen_e_acsl_,alignment); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "alignment",0,alignment); __gmpz_init_set_si(__gen_e_acsl__2,1L); __gmpz_init(__gen_e_acsl_sub); __gmpz_sub(__gen_e_acsl_sub, @@ -258,30 +454,56 @@ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size) __gmpz_clear(__gen_e_acsl_band); } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Precondition","posix_memalign", - "alignment_is_a_suitable_power_of_two:\n alignment >= sizeof(void *) &&\n ((size_t)alignment & ((size_t)alignment - 1)) == 0", - "FRAMAC_SHARE/libc/stdlib.h",668); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "alignment_is_a_suitable_power_of_two:\n alignment >= sizeof(void *) &&\n ((size_t)alignment & ((size_t)alignment - 1)) == 0"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data_2.fct = "posix_memalign"; + __gen_e_acsl_assert_data_2.line = 668; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } __retres = posix_memalign(memptr,alignment,size); { int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1, - "Postcondition", - "posix_memalign", - "allocation: result_zero: \\result == 0", - "FRAMAC_SHARE/libc/stdlib.h", - 680); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0, + __retres); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "allocation: result_zero: \\result == 0"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data_4.fct = "posix_memalign"; + __gen_e_acsl_assert_data_4.line = 680; + __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_or; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result",0, + __retres); if (__retres < 0) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = __retres > 0; - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","posix_memalign", - "no_allocation: result_non_zero: \\result < 0 || \\result > 0", - "FRAMAC_SHARE/libc/stdlib.h",685); + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result", + 0,__retres); + __gen_e_acsl_or = __retres > 0; + } + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Postcondition"; + __gen_e_acsl_assert_data_5.pred_txt = "no_allocation: result_non_zero: \\result < 0 || \\result > 0"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data_5.fct = "posix_memalign"; + __gen_e_acsl_assert_data_5.line = 685; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& memptr)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c b/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c index df3a77b8d7a83dbe3650e8f9cfe3704ad8bdd2c5..629f702f9c0518be631e935f67614cf143bc1f79 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,76 +12,264 @@ int main(int argc, char **argv) int __retres; __e_acsl_memory_init(& argc,& argv,(size_t)8); char *a = malloc((unsigned long)7); - __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 7", - "tests/memory/memsize.c",15); - /*@ assert __e_acsl_heap_allocation_size ≡ 7; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "__e_acsl_heap_allocation_size == 7"; + __gen_e_acsl_assert_data.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert __e_acsl_heap_allocation_size == 7; */ ; char *b = malloc((unsigned long)14); - __e_acsl_assert(__e_acsl_heap_allocation_size == 21UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 21", - "tests/memory/memsize.c",17); - /*@ assert __e_acsl_heap_allocation_size ≡ 21; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "__e_acsl_heap_allocation_size == 21"; + __gen_e_acsl_assert_data_2.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 17; + __e_acsl_assert(__e_acsl_heap_allocation_size == 21UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } + /*@ assert __e_acsl_heap_allocation_size == 21; */ ; free((void *)a); - __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 14", - "tests/memory/memsize.c",21); - /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "__e_acsl_heap_allocation_size == 14"; + __gen_e_acsl_assert_data_3.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 21; + __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert __e_acsl_heap_allocation_size == 14; */ ; a = (char *)0; free((void *)a); - __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 14", - "tests/memory/memsize.c",26); - /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "__e_acsl_heap_allocation_size == 14"; + __gen_e_acsl_assert_data_4.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert __e_acsl_heap_allocation_size == 14; */ ; b = (char *)realloc((void *)b,(unsigned long)9); - __e_acsl_assert(__e_acsl_heap_allocation_size == 9UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 9", - "tests/memory/memsize.c",30); - /*@ assert __e_acsl_heap_allocation_size ≡ 9; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "__e_acsl_heap_allocation_size == 9"; + __gen_e_acsl_assert_data_5.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 30; + __e_acsl_assert(__e_acsl_heap_allocation_size == 9UL, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert __e_acsl_heap_allocation_size == 9; */ ; b = (char *)realloc((void *)b,(unsigned long)18); - __e_acsl_assert(__e_acsl_heap_allocation_size == 18UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 18", - "tests/memory/memsize.c",34); - /*@ assert __e_acsl_heap_allocation_size ≡ 18; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "__e_acsl_heap_allocation_size == 18"; + __gen_e_acsl_assert_data_6.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 34; + __e_acsl_assert(__e_acsl_heap_allocation_size == 18UL, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert __e_acsl_heap_allocation_size == 18; */ ; b = (char *)realloc((void *)b,(unsigned long)0); b = (char *)0; - __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 0", - "tests/memory/memsize.c",39); - /*@ assert __e_acsl_heap_allocation_size ≡ 0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "__e_acsl_heap_allocation_size == 0"; + __gen_e_acsl_assert_data_7.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 39; + __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + } + /*@ assert __e_acsl_heap_allocation_size == 0; */ ; b = (char *)realloc((void *)b,(unsigned long)8); - __e_acsl_assert(__e_acsl_heap_allocation_size == 8UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 8", - "tests/memory/memsize.c",43); - /*@ assert __e_acsl_heap_allocation_size ≡ 8; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "__e_acsl_heap_allocation_size == 8"; + __gen_e_acsl_assert_data_8.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 43; + __e_acsl_assert(__e_acsl_heap_allocation_size == 8UL, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + } + /*@ assert __e_acsl_heap_allocation_size == 8; */ ; b = (char *)realloc((void *)0,(unsigned long)8); - __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",47); - /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "__e_acsl_heap_allocation_size == 16"; + __gen_e_acsl_assert_data_9.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 47; + __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } + /*@ assert __e_acsl_heap_allocation_size == 16; */ ; b = (char *)realloc((void *)0,18446744073709551615UL); - __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",51); - /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; - __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",52); - /*@ assert b ≡ (char *)0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "__e_acsl_heap_allocation_size == 16"; + __gen_e_acsl_assert_data_10.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 51; + __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + } + /*@ assert __e_acsl_heap_allocation_size == 16; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"b",(void *)b); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "b == (char *)0"; + __gen_e_acsl_assert_data_11.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 52; + __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + } + /*@ assert b == (char *)0; */ ; b = (char *)calloc(18446744073709551615UL,18446744073709551615UL); - __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",56); - /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; - __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",57); - /*@ assert b ≡ (char *)0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "__e_acsl_heap_allocation_size == 16"; + __gen_e_acsl_assert_data_12.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 56; + __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + } + /*@ assert __e_acsl_heap_allocation_size == 16; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"b",(void *)b); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "b == (char *)0"; + __gen_e_acsl_assert_data_13.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 57; + __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + } + /*@ assert b == (char *)0; */ ; b = (char *)malloc(18446744073709551615UL); - __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main", - "__e_acsl_heap_allocation_size == 16", - "tests/memory/memsize.c",61); - /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ; - __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0", - "tests/memory/memsize.c",62); - /*@ assert b ≡ (char *)0; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "__e_acsl_heap_allocation_size",0, + __e_acsl_heap_allocation_size); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "__e_acsl_heap_allocation_size == 16"; + __gen_e_acsl_assert_data_14.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 61; + __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + } + /*@ assert __e_acsl_heap_allocation_size == 16; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"b",(void *)b); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "b == (char *)0"; + __gen_e_acsl_assert_data_15.file = "tests/memory/memsize.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 62; + __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + } + /*@ assert b == (char *)0; */ ; __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_null.c b/src/plugins/e-acsl/tests/memory/oracle/gen_null.c index 375f0da012931441d10f4a33032c16acccb5d7a7..5dae464f751b6e999f5e629e4f4a5c1ee343680b 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_null.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_null.c @@ -1,16 +1,26 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; - __e_acsl_assert((void *)0 == (void *)0,1,"Assertion","main", - "\\null == (void *)0","tests/memory/null.i",6); - /*@ assert \null ≡ (void *)0; */ ; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\null == (void *)0"; + __gen_e_acsl_assert_data.file = "tests/memory/null.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert((void *)0 == (void *)0,& __gen_e_acsl_assert_data); + } + /*@ assert \null == (void *)0; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c b/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c index b6b52a83efa197495cd28c47be378cd2ca9ef3cf..417fcdd7fc368b0f300b53dd25309a6dfe16c73c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -34,57 +35,149 @@ int main(void) PA = (int *)(& A); { unsigned long __gen_e_acsl_offset; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)A", + (void *)(A)); __gen_e_acsl_offset = __e_acsl_offset((void *)(A)); - __e_acsl_assert(__gen_e_acsl_offset == 0UL,1,"Assertion","main", - "\\offset((int *)A) == 0","tests/memory/offset.c",13); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "\\offset((int *)A)",0, + __gen_e_acsl_offset); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\offset((int *)A) == 0"; + __gen_e_acsl_assert_data.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_offset == 0UL,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \offset((int *)A) ≡ 0; */ ; + /*@ assert \offset((int *)A) == 0; */ ; { unsigned long __gen_e_acsl_offset_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&A[3]", + (void *)(& A[3])); __gen_e_acsl_offset_2 = __e_acsl_offset((void *)(& A[3])); - __e_acsl_assert(__gen_e_acsl_offset_2 == 12UL,1,"Assertion","main", - "\\offset(&A[3]) == 12","tests/memory/offset.c",14); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "\\offset(&A[3])",0,__gen_e_acsl_offset_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\offset(&A[3]) == 12"; + __gen_e_acsl_assert_data_2.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_offset_2 == 12UL, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \offset(&A[3]) ≡ 12; */ ; + /*@ assert \offset(&A[3]) == 12; */ ; { unsigned long __gen_e_acsl_offset_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"PA", + (void *)PA); __gen_e_acsl_offset_3 = __e_acsl_offset((void *)PA); - __e_acsl_assert(__gen_e_acsl_offset_3 == 0UL,1,"Assertion","main", - "\\offset(PA) == 0","tests/memory/offset.c",15); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "\\offset(PA)",0,__gen_e_acsl_offset_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\offset(PA) == 0"; + __gen_e_acsl_assert_data_3.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_offset_3 == 0UL, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \offset(PA) ≡ 0; */ ; + /*@ assert \offset(PA) == 0; */ ; PA ++; { unsigned long __gen_e_acsl_offset_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"PA", + (void *)PA); __gen_e_acsl_offset_4 = __e_acsl_offset((void *)(PA + 1)); - __e_acsl_assert(__gen_e_acsl_offset_4 == 8UL,1,"Assertion","main", - "\\offset(PA + 1) == 8","tests/memory/offset.c",17); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "\\offset(PA + 1)",0, + __gen_e_acsl_offset_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\offset(PA + 1) == 8"; + __gen_e_acsl_assert_data_4.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 17; + __e_acsl_assert(__gen_e_acsl_offset_4 == 8UL, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \offset(PA + 1) ≡ 8; */ ; + /*@ assert \offset(PA + 1) == 8; */ ; int a[4] = {1, 2, 3, 4}; __e_acsl_store_block((void *)(a),(size_t)16); __e_acsl_full_init((void *)(& a)); { unsigned long __gen_e_acsl_offset_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int *)a", + (void *)(a)); __gen_e_acsl_offset_5 = __e_acsl_offset((void *)(a)); - __e_acsl_assert(__gen_e_acsl_offset_5 == 0UL,1,"Assertion","main", - "\\offset((int *)a) == 0","tests/memory/offset.c",21); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "\\offset((int *)a)",0, + __gen_e_acsl_offset_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\offset((int *)a) == 0"; + __gen_e_acsl_assert_data_5.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 21; + __e_acsl_assert(__gen_e_acsl_offset_5 == 0UL, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert \offset((int *)a) ≡ 0; */ ; + /*@ assert \offset((int *)a) == 0; */ ; { unsigned long __gen_e_acsl_offset_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a[1]", + (void *)(& a[1])); __gen_e_acsl_offset_6 = __e_acsl_offset((void *)(& a[1])); - __e_acsl_assert(__gen_e_acsl_offset_6 == 4UL,1,"Assertion","main", - "\\offset(&a[1]) == 4","tests/memory/offset.c",22); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "\\offset(&a[1])",0,__gen_e_acsl_offset_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\offset(&a[1]) == 4"; + __gen_e_acsl_assert_data_6.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 22; + __e_acsl_assert(__gen_e_acsl_offset_6 == 4UL, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert \offset(&a[1]) ≡ 4; */ ; + /*@ assert \offset(&a[1]) == 4; */ ; { unsigned long __gen_e_acsl_offset_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&a[3]", + (void *)(& a[3])); __gen_e_acsl_offset_7 = __e_acsl_offset((void *)(& a[3])); - __e_acsl_assert(__gen_e_acsl_offset_7 == 12UL,1,"Assertion","main", - "\\offset(&a[3]) == 12","tests/memory/offset.c",23); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "\\offset(&a[3])",0,__gen_e_acsl_offset_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\offset(&a[3]) == 12"; + __gen_e_acsl_assert_data_7.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 23; + __e_acsl_assert(__gen_e_acsl_offset_7 == 12UL, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert \offset(&a[3]) ≡ 12; */ ; + /*@ assert \offset(&a[3]) == 12; */ ; long l = (long)4; __e_acsl_store_block((void *)(& l),(size_t)8); __e_acsl_full_init((void *)(& l)); @@ -93,130 +186,326 @@ int main(void) __e_acsl_full_init((void *)(& pl)); { unsigned long __gen_e_acsl_offset_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&l", + (void *)(& l)); __gen_e_acsl_offset_8 = __e_acsl_offset((void *)(& l)); - __e_acsl_assert(__gen_e_acsl_offset_8 == 0UL,1,"Assertion","main", - "\\offset(&l) == 0","tests/memory/offset.c",28); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "\\offset(&l)",0,__gen_e_acsl_offset_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\offset(&l) == 0"; + __gen_e_acsl_assert_data_8.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 28; + __e_acsl_assert(__gen_e_acsl_offset_8 == 0UL, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert \offset(&l) ≡ 0; */ ; + /*@ assert \offset(&l) == 0; */ ; { unsigned long __gen_e_acsl_offset_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"pl", + (void *)pl); __gen_e_acsl_offset_9 = __e_acsl_offset((void *)pl); - __e_acsl_assert(__gen_e_acsl_offset_9 == 0UL,1,"Assertion","main", - "\\offset(pl) == 0","tests/memory/offset.c",29); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "\\offset(pl)",0,__gen_e_acsl_offset_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\offset(pl) == 0"; + __gen_e_acsl_assert_data_9.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 29; + __e_acsl_assert(__gen_e_acsl_offset_9 == 0UL, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert \offset(pl) ≡ 0; */ ; + /*@ assert \offset(pl) == 0; */ ; { unsigned long __gen_e_acsl_offset_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"pl", + (void *)pl); __gen_e_acsl_offset_10 = __e_acsl_offset((void *)(pl + 1)); - __e_acsl_assert(__gen_e_acsl_offset_10 == 1UL,1,"Assertion","main", - "\\offset(pl + 1) == 1","tests/memory/offset.c",30); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "\\offset(pl + 1)",0, + __gen_e_acsl_offset_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\offset(pl + 1) == 1"; + __gen_e_acsl_assert_data_10.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 30; + __e_acsl_assert(__gen_e_acsl_offset_10 == 1UL, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert \offset(pl + 1) ≡ 1; */ ; + /*@ assert \offset(pl + 1) == 1; */ ; { unsigned long __gen_e_acsl_offset_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"pl", + (void *)pl); __gen_e_acsl_offset_11 = __e_acsl_offset((void *)(pl + 7)); - __e_acsl_assert(__gen_e_acsl_offset_11 == 7UL,1,"Assertion","main", - "\\offset(pl + 7) == 7","tests/memory/offset.c",31); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "\\offset(pl + 7)",0, + __gen_e_acsl_offset_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\offset(pl + 7) == 7"; + __gen_e_acsl_assert_data_11.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 31; + __e_acsl_assert(__gen_e_acsl_offset_11 == 7UL, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert \offset(pl + 7) ≡ 7; */ ; + /*@ assert \offset(pl + 7) == 7; */ ; int *pi = (int *)(& l); __e_acsl_store_block((void *)(& pi),(size_t)8); __e_acsl_full_init((void *)(& pi)); { unsigned long __gen_e_acsl_offset_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"pi", + (void *)pi); __gen_e_acsl_offset_12 = __e_acsl_offset((void *)pi); - __e_acsl_assert(__gen_e_acsl_offset_12 == 0UL,1,"Assertion","main", - "\\offset(pi) == 0","tests/memory/offset.c",33); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "\\offset(pi)",0,__gen_e_acsl_offset_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\offset(pi) == 0"; + __gen_e_acsl_assert_data_12.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 33; + __e_acsl_assert(__gen_e_acsl_offset_12 == 0UL, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert \offset(pi) ≡ 0; */ ; + /*@ assert \offset(pi) == 0; */ ; __e_acsl_full_init((void *)(& pi)); pi ++; { unsigned long __gen_e_acsl_offset_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"pi", + (void *)pi); __gen_e_acsl_offset_13 = __e_acsl_offset((void *)pi); - __e_acsl_assert(__gen_e_acsl_offset_13 == 4UL,1,"Assertion","main", - "\\offset(pi) == 4","tests/memory/offset.c",35); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "\\offset(pi)",0,__gen_e_acsl_offset_13); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\offset(pi) == 4"; + __gen_e_acsl_assert_data_13.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 35; + __e_acsl_assert(__gen_e_acsl_offset_13 == 4UL, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert \offset(pi) ≡ 4; */ ; + /*@ assert \offset(pi) == 4; */ ; char *p = malloc((unsigned long)12); __e_acsl_store_block((void *)(& p),(size_t)8); __e_acsl_full_init((void *)(& p)); { unsigned long __gen_e_acsl_offset_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"p",(void *)p); __gen_e_acsl_offset_14 = __e_acsl_offset((void *)p); - __e_acsl_assert(__gen_e_acsl_offset_14 == 0UL,1,"Assertion","main", - "\\offset(p) == 0","tests/memory/offset.c",39); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "\\offset(p)",0,__gen_e_acsl_offset_14); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\offset(p) == 0"; + __gen_e_acsl_assert_data_14.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 39; + __e_acsl_assert(__gen_e_acsl_offset_14 == 0UL, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert \offset(p) ≡ 0; */ ; + /*@ assert \offset(p) == 0; */ ; { unsigned long __gen_e_acsl_offset_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p",(void *)p); __gen_e_acsl_offset_15 = __e_acsl_offset((void *)(p + 1)); - __e_acsl_assert(__gen_e_acsl_offset_15 == 1UL,1,"Assertion","main", - "\\offset(p + 1) == 1","tests/memory/offset.c",40); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "\\offset(p + 1)",0, + __gen_e_acsl_offset_15); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\offset(p + 1) == 1"; + __gen_e_acsl_assert_data_15.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 40; + __e_acsl_assert(__gen_e_acsl_offset_15 == 1UL, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } - /*@ assert \offset(p + 1) ≡ 1; */ ; + /*@ assert \offset(p + 1) == 1; */ ; { unsigned long __gen_e_acsl_offset_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p); __gen_e_acsl_offset_16 = __e_acsl_offset((void *)(p + 11)); - __e_acsl_assert(__gen_e_acsl_offset_16 == 11UL,1,"Assertion","main", - "\\offset(p + 11) == 11","tests/memory/offset.c",41); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "\\offset(p + 11)",0, + __gen_e_acsl_offset_16); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "\\offset(p + 11) == 11"; + __gen_e_acsl_assert_data_16.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 41; + __e_acsl_assert(__gen_e_acsl_offset_16 == 11UL, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert \offset(p + 11) ≡ 11; */ ; + /*@ assert \offset(p + 11) == 11; */ ; __e_acsl_full_init((void *)(& p)); p += 5; { unsigned long __gen_e_acsl_offset_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"p",(void *)p); __gen_e_acsl_offset_17 = __e_acsl_offset((void *)(p + 5)); - __e_acsl_assert(__gen_e_acsl_offset_17 == 10UL,1,"Assertion","main", - "\\offset(p + 5) == 10","tests/memory/offset.c",43); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "\\offset(p + 5)",0, + __gen_e_acsl_offset_17); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\offset(p + 5) == 10"; + __gen_e_acsl_assert_data_17.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 43; + __e_acsl_assert(__gen_e_acsl_offset_17 == 10UL, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } - /*@ assert \offset(p + 5) ≡ 10; */ ; + /*@ assert \offset(p + 5) == 10; */ ; { unsigned long __gen_e_acsl_offset_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"p",(void *)p); __gen_e_acsl_offset_18 = __e_acsl_offset((void *)(p - 5)); - __e_acsl_assert(__gen_e_acsl_offset_18 == 0UL,1,"Assertion","main", - "\\offset(p - 5) == 0","tests/memory/offset.c",44); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "\\offset(p - 5)",0, + __gen_e_acsl_offset_18); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "Assertion"; + __gen_e_acsl_assert_data_18.pred_txt = "\\offset(p - 5) == 0"; + __gen_e_acsl_assert_data_18.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 44; + __e_acsl_assert(__gen_e_acsl_offset_18 == 0UL, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); } - /*@ assert \offset(p - 5) ≡ 0; */ ; + /*@ assert \offset(p - 5) == 0; */ ; long *q = malloc((unsigned long)30 * sizeof(long)); __e_acsl_store_block((void *)(& q),(size_t)8); __e_acsl_full_init((void *)(& q)); { unsigned long __gen_e_acsl_offset_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"q",(void *)q); __gen_e_acsl_offset_19 = __e_acsl_offset((void *)q); - __e_acsl_assert(__gen_e_acsl_offset_19 == 0UL,1,"Assertion","main", - "\\offset(q) == 0","tests/memory/offset.c",49); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19, + "\\offset(q)",0,__gen_e_acsl_offset_19); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "\\offset(q) == 0"; + __gen_e_acsl_assert_data_19.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 49; + __e_acsl_assert(__gen_e_acsl_offset_19 == 0UL, + & __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } - /*@ assert \offset(q) ≡ 0; */ ; + /*@ assert \offset(q) == 0; */ ; __e_acsl_full_init((void *)(& q)); q ++; { unsigned long __gen_e_acsl_offset_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"q",(void *)q); __gen_e_acsl_offset_20 = __e_acsl_offset((void *)q); - __e_acsl_assert(__gen_e_acsl_offset_20 == 8UL,1,"Assertion","main", - "\\offset(q) == sizeof(long)","tests/memory/offset.c",51); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20, + "\\offset(q)",0,__gen_e_acsl_offset_20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "sizeof(long)",0,8); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "\\offset(q) == sizeof(long)"; + __gen_e_acsl_assert_data_20.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 51; + __e_acsl_assert(__gen_e_acsl_offset_20 == 8UL, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } - /*@ assert \offset(q) ≡ sizeof(long); */ ; + /*@ assert \offset(q) == sizeof(long); */ ; __e_acsl_full_init((void *)(& q)); q += 2; { unsigned long __gen_e_acsl_offset_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"q",(void *)q); __gen_e_acsl_offset_21 = __e_acsl_offset((void *)q); - __e_acsl_assert(__gen_e_acsl_offset_21 == 24UL,1,"Assertion","main", - "\\offset(q) == sizeof(long) * 3", - "tests/memory/offset.c",53); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21, + "\\offset(q)",0,__gen_e_acsl_offset_21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21, + "sizeof(long)",0,8); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "Assertion"; + __gen_e_acsl_assert_data_21.pred_txt = "\\offset(q) == sizeof(long) * 3"; + __gen_e_acsl_assert_data_21.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 53; + __e_acsl_assert(__gen_e_acsl_offset_21 == 24UL, + & __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); } - /*@ assert \offset(q) ≡ sizeof(long) * 3; */ ; + /*@ assert \offset(q) == sizeof(long) * 3; */ ; __e_acsl_full_init((void *)(& q)); q += 4; { unsigned long __gen_e_acsl_offset_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,"q",(void *)q); __gen_e_acsl_offset_22 = __e_acsl_offset((void *)q); - __e_acsl_assert(__gen_e_acsl_offset_22 == 56UL,1,"Assertion","main", - "\\offset(q) == sizeof(long) * 7", - "tests/memory/offset.c",55); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22, + "\\offset(q)",0,__gen_e_acsl_offset_22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "sizeof(long)",0,8); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "\\offset(q) == sizeof(long) * 7"; + __gen_e_acsl_assert_data_22.file = "tests/memory/offset.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 55; + __e_acsl_assert(__gen_e_acsl_offset_22 == 56UL, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert \offset(q) ≡ sizeof(long) * 7; */ ; + /*@ assert \offset(q) == sizeof(long) * 7; */ ; __retres = 0; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c b/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c index 7de63880550589245145a85f4f5185e7d4e9deb2..80d21f1d8ca584d36c04d3da69241ded8b09aa93 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -11,13 +11,32 @@ enum bool { int main(void) { int __retres; - __e_acsl_assert(1,1,"Assertion","main","\'c\' == \'c\'", - "tests/memory/other_constants.i",10); - /*@ assert 'c' ≡ 'c'; */ ; - __e_acsl_assert(1,1,"Assertion","main","false != true", - "tests/memory/other_constants.i",11); - /*@ assert false ≢ true; */ ; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\'c\' == \'c\'"; + __gen_e_acsl_assert_data.file = "tests/memory/other_constants.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 10; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } + /*@ assert 'c' == 'c'; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "false != true"; + __gen_e_acsl_assert_data_2.file = "tests/memory/other_constants.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 11; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_2); + } + /*@ assert false != true; */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c index 3aadcd229f8b1c88013602b610b59b8b75255ca8..33837fcacb31caf7188c02f2d3f573143a5f1ee9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -20,63 +20,207 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*p",0,*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(int), (void *)p,(void *)(& p)); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main", - "mem_access: \\valid_read(p)","tests/memory/ptr.i",12); - __e_acsl_assert(*p == 1,1,"Assertion","main","*p == 1", - "tests/memory/ptr.i",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "*p == 1"; + __gen_e_acsl_assert_data.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(*p == 1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert *p ≡ 1; */ ; - __e_acsl_assert(t[0] == 2,1,"Assertion","main","t[0] == 2", - "tests/memory/ptr.i",13); - /*@ assert t[0] ≡ 2; */ ; - __e_acsl_assert(t[2] == 4,1,"Assertion","main","t[2] == 4", - "tests/memory/ptr.i",14); - /*@ assert t[2] ≡ 4; */ ; - __e_acsl_assert(t[2] == 4,1,"Assertion","main", - "t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4", - "tests/memory/ptr.i",15); - /*@ assert t[(2 * sizeof(int)) / sizeof((int)0x0)] ≡ 4; */ ; + /*@ assert *p == 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"t[0]",0,t[0]); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "t[0] == 2"; + __gen_e_acsl_assert_data_3.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 13; + __e_acsl_assert(t[0] == 2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } + /*@ assert t[0] == 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"t[2]",0,t[2]); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "t[2] == 4"; + __gen_e_acsl_assert_data_4.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(t[2] == 4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert t[2] == 4; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "t[(2 * sizeof(int)) / sizeof((int)0x0)]",0, + t[(2 * 4) / 4]); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4"; + __gen_e_acsl_assert_data_5.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(t[2] == 4,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } + /*@ assert t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4; */ ; { int i = 0; while (i < 2) { - __e_acsl_assert(i < 3,1,"RTE","main","index_bound: i < 3", - "tests/memory/ptr.i",18); - __e_acsl_assert(0 <= i,1,"RTE","main","index_bound: 0 <= i", - "tests/memory/ptr.i",18); - __e_acsl_assert((long)t[i] == i + 2L,1,"Assertion","main", - "t[i] == i + 2","tests/memory/ptr.i",18); - /*@ assert t[i] ≡ i + 2; */ ; - __e_acsl_assert(2L - i < 3L,1,"RTE","main", - "index_bound: (long)(2 - i) < 3","tests/memory/ptr.i", - 19); - __e_acsl_assert(0L <= 2L - i,1,"RTE","main", - "index_bound: 0 <= (long)(2 - i)","tests/memory/ptr.i", - 19); - __e_acsl_assert((long)t[2L - i] == 4L - i,1,"Assertion","main", - "t[2 - i] == 4 - i","tests/memory/ptr.i",19); - /*@ assert t[2 - i] ≡ 4 - i; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"t[i]",0, + t[i]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"i",0,i); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"i",0,i); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "index_bound: i < 3"; + __gen_e_acsl_assert_data_7.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 18; + __e_acsl_assert(i < 3,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"i",0,i); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "index_bound: 0 <= i"; + __gen_e_acsl_assert_data_8.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 18; + __e_acsl_assert(0 <= i,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "t[i] == i + 2"; + __gen_e_acsl_assert_data_6.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 18; + __e_acsl_assert((long)t[i] == i + 2L,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + } + /*@ assert t[i] == i + 2; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"t[2 - i]", + 0,t[2L - i]); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"i",0,i); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"i",0,i); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "index_bound: (long)(2 - i) < 3"; + __gen_e_acsl_assert_data_10.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 19; + __e_acsl_assert(2L - i < 3L,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"i",0,i); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "index_bound: 0 <= (long)(2 - i)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 19; + __e_acsl_assert(0L <= 2L - i,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "t[2 - i] == 4 - i"; + __gen_e_acsl_assert_data_9.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 19; + __e_acsl_assert((long)t[2L - i] == 4L - i, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + } + /*@ assert t[2 - i] == 4 - i; */ ; { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "*(&t[2] - i)",0,*(& t[2] - i)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"i",0,i); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&t[2]", + (void *)(& t[2])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& t[2] - i), sizeof(int), (void *)(t), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "mem_access: \\valid_read(&t[2] - i)", - "tests/memory/ptr.i",20); - __e_acsl_assert((long)*(& t[2] - i) == 4L - i,1,"Assertion","main", - "*(&t[2] - i) == 4 - i","tests/memory/ptr.i",20); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "RTE"; + __gen_e_acsl_assert_data_13.pred_txt = "mem_access: \\valid_read(&t[2] - i)"; + __gen_e_acsl_assert_data_13.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 20; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "*(&t[2] - i) == 4 - i"; + __gen_e_acsl_assert_data_12.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 20; + __e_acsl_assert((long)*(& t[2] - i) == 4L - i, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert *(&t[2] - i) ≡ 4 - i; */ ; + /*@ assert *(&t[2] - i) == 4 - i; */ ; i ++; } } @@ -87,35 +231,81 @@ int main(void) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"*p",0,*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(int *)); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)p,sizeof(int), (void *)p, (void *)(& p)); __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main", - "mem_access: \\valid_read(p)","tests/memory/ptr.i",26); - __e_acsl_assert(*p == 5,1,"Assertion","main","*p == 5", - "tests/memory/ptr.i",26); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_15.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 26; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "*p == 5"; + __gen_e_acsl_assert_data_14.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 26; + __e_acsl_assert(*p == 5,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } - /*@ assert *p ≡ 5; */ ; + /*@ assert *p == 5; */ ; int k = -1; { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"*(p + k)",0, + *(p + k)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"p",(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"k",0,k); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + k), sizeof(int),(void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main", - "mem_access: \\valid_read(p + k)","tests/memory/ptr.i", - 28); - __e_acsl_assert(*(p + k) == 3,1,"Assertion","main","*(p + k) == 3", - "tests/memory/ptr.i",28); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "RTE"; + __gen_e_acsl_assert_data_17.pred_txt = "mem_access: \\valid_read(p + k)"; + __gen_e_acsl_assert_data_17.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 28; + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "*(p + k) == 3"; + __gen_e_acsl_assert_data_16.file = "tests/memory/ptr.i"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 28; + __e_acsl_assert(*(p + k) == 3,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert *(p + k) ≡ 3; */ ; + /*@ assert *(p + k) == 3; */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); __e_acsl_delete_block((void *)(t)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c index 20fe5e2aa706b69157afcddc19cad5cedbf77c10..2215dc6a5c27095d9c0802ea9ee4920536756086 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -14,9 +15,17 @@ void f(void) void g(int *C, int *D) { - __e_acsl_store_block((void *)(& C),(size_t)8); - __e_acsl_assert(1,1,"Assertion","g","\\initialized(&C)", - "tests/memory/ptr_init.c",16); + { + __e_acsl_store_block((void *)(& C),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&C)"; + __gen_e_acsl_assert_data.file = "tests/memory/ptr_init.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 16; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } /*@ assert \initialized(&C); */ ; __e_acsl_delete_block((void *)(& C)); return; @@ -57,15 +66,38 @@ int main(void) __e_acsl_full_init((void *)(& x)); x = y; f(); - __e_acsl_assert(1,1,"Assertion","main","\\initialized(&A)", - "tests/memory/ptr_init.c",25); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&A)"; + __gen_e_acsl_assert_data.file = "tests/memory/ptr_init.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 25; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + } /*@ assert \initialized(&A); */ ; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&x", + (void *)(& x)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& x), sizeof(int *)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&x)","tests/memory/ptr_init.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&x)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&x)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/ptr_init.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 26; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&x); */ ; g(x,y); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c index 044b08b27b4463f0fc2398a233064e949ad5a7b8..8918efa1bdbc171df36cf0f64518a69ca84d97d1 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -9,7 +10,7 @@ struct S { float *b ; float *c ; }; -/*@ requires ¬\valid(s + (3 .. n + 1000)); */ +/*@ requires !\valid(s + (3 .. n + 1000)); */ void __gen_e_acsl_f(char *s, long n); void f(char *s, long n) @@ -18,7 +19,7 @@ void f(char *s, long n) } /*@ requires \valid(ptr + (0 .. size - 1)); - ensures ¬\valid(\old(ptr) + (0 .. \old(size) + 1)); + ensures !\valid(\old(ptr) + (0 .. \old(size) + 1)); */ void __gen_e_acsl_g(long *ptr, size_t size); @@ -54,15 +55,35 @@ int main(void) int __gen_e_acsl_size; int __gen_e_acsl_if; int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0, + 4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0, + 4); __gen_e_acsl_size = 4 * ((4 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)a + 4 * 0), (size_t)__gen_e_acsl_if,(void *)a, (void *)(& a)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid(a + (0 .. 4))", - "tests/memory/ranges_in_builtins.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(a + (0 .. 4))",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(a + (0 .. 4))"; + __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 24; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(a + (0 .. 4)); */ ; int j = 2; @@ -70,32 +91,75 @@ int main(void) long __gen_e_acsl_size_2; long __gen_e_acsl_if_2; int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a",(void *)a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"j",0,j); __gen_e_acsl_size_2 = 4L * (((7L + j) - 4L) + 1L); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0L) __gen_e_acsl_if_2 = 0L; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)a + 4 * 4), (size_t)__gen_e_acsl_if_2, (void *)a,(void *)(& a)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main", - "\\valid(a + (4 .. 7 + j))", - "tests/memory/ranges_in_builtins.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(a + (4 .. 7 + j))",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a + (4 .. 7 + j))"; + __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(a + (4 .. 7 + j)); */ ; { int __gen_e_acsl_size_3; int __gen_e_acsl_if_3; int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"a",(void *)a); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(int)", + 0,4); __gen_e_acsl_size_3 = 4 * ((11 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } __gen_e_acsl_valid_3 = __e_acsl_valid((void *)((char *)a + 4 * 10), (size_t)__gen_e_acsl_if_3, (void *)a,(void *)(& a)); - __e_acsl_assert(! __gen_e_acsl_valid_3,1,"Assertion","main", - "!\\valid(a + (10 .. 11))", - "tests/memory/ranges_in_builtins.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(a + (10 .. 11))",0, + __gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(a + (10 .. 11))"; + __gen_e_acsl_assert_data_3.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 27; + __e_acsl_assert(! __gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(a + (10 .. 11)); */ ; + /*@ assert !\valid(a + (10 .. 11)); */ ; free((void *)a); __e_acsl_full_init((void *)(& b)); b = (char *)malloc((unsigned long)10 * sizeof(char)); @@ -103,32 +167,74 @@ int main(void) int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_valid_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b",(void *)b); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); __gen_e_acsl_size_4 = 1 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(b + 1 * 0), (size_t)__gen_e_acsl_if_4, (void *)b,(void *)(& b)); - __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main", - "\\valid(b + (0 .. 9))", - "tests/memory/ranges_in_builtins.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(b + (0 .. 9))",0, + __gen_e_acsl_valid_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(b + (0 .. 9))"; + __gen_e_acsl_assert_data_4.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 32; + __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(b + (0 .. 9)); */ ; { int __gen_e_acsl_size_5; int __gen_e_acsl_if_5; int __gen_e_acsl_valid_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b",(void *)b); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); __gen_e_acsl_size_5 = 1 * ((15 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(b + 1 * 10), (size_t)__gen_e_acsl_if_5, (void *)b,(void *)(& b)); - __e_acsl_assert(! __gen_e_acsl_valid_5,1,"Assertion","main", - "!\\valid(b + (10 .. 15))", - "tests/memory/ranges_in_builtins.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(b + (10 .. 15))",0, + __gen_e_acsl_valid_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(b + (10 .. 15))"; + __gen_e_acsl_assert_data_5.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 33; + __e_acsl_assert(! __gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(b + (10 .. 15)); */ ; + /*@ assert !\valid(b + (10 .. 15)); */ ; long t[3] = {7l, 8l, 9l}; __e_acsl_store_block((void *)(t),(size_t)24); __e_acsl_full_init((void *)(& t)); @@ -136,32 +242,76 @@ int main(void) int __gen_e_acsl_size_6; int __gen_e_acsl_if_6; int __gen_e_acsl_valid_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(long *)t", + (void *)(t)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(long)", + 0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(long)", + 0,8); __gen_e_acsl_size_6 = 8 * ((2 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_valid_6 = __e_acsl_valid((void *)((char *)(t) + 8 * 0), (size_t)__gen_e_acsl_if_6, (void *)(t),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_6,1,"Assertion","main", - "\\valid(&t[0 .. 2])", - "tests/memory/ranges_in_builtins.c",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(&t[0 .. 2])",0, + __gen_e_acsl_valid_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(&t[0 .. 2])"; + __gen_e_acsl_assert_data_6.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 36; + __e_acsl_assert(__gen_e_acsl_valid_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(&t[0 .. 2]); */ ; { int __gen_e_acsl_size_7; int __gen_e_acsl_if_7; int __gen_e_acsl_valid_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"(long *)t", + (void *)(t)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(long)", + 0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(long)", + 0,8); __gen_e_acsl_size_7 = 8 * ((5 - 3) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } __gen_e_acsl_valid_7 = __e_acsl_valid((void *)((char *)(t) + 8 * 3), (size_t)__gen_e_acsl_if_7, (void *)(t),(void *)0); - __e_acsl_assert(! __gen_e_acsl_valid_7,1,"Assertion","main", - "!\\valid(&t[3 .. 5])", - "tests/memory/ranges_in_builtins.c",37); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid(&t[3 .. 5])",0, + __gen_e_acsl_valid_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(&t[3 .. 5])"; + __gen_e_acsl_assert_data_7.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 37; + __e_acsl_assert(! __gen_e_acsl_valid_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\valid(&t[3 .. 5]); */ ; + /*@ assert !\valid(&t[3 .. 5]); */ ; __gen_e_acsl_g(t,(unsigned long)3); __e_acsl_initialize((void *)(t2),sizeof(double)); t2[0] = 0.5; @@ -171,51 +321,120 @@ int main(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(double *)t2", + (void *)(t2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "sizeof(double)",0,8); __gen_e_acsl_size_8 = 8 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)(t2) + 8 * 0), (size_t)__gen_e_acsl_if_8); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&t2[0 .. 1])", - "tests/memory/ranges_in_builtins.c",43); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&t2[0 .. 1])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&t2[0 .. 1])"; + __gen_e_acsl_assert_data_8.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 43; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \initialized(&t2[0 .. 1]); */ ; { int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(double *)t2", + (void *)(t2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "sizeof(double)",0,8); __gen_e_acsl_size_9 = 8 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)((char *)(t2) + 8 * 2), (size_t)__gen_e_acsl_if_9); - __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main", - "!\\initialized(&t2[2 .. 3])", - "tests/memory/ranges_in_builtins.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&t2[2 .. 3])",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&t2[2 .. 3])"; + __gen_e_acsl_assert_data_9.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 44; + __e_acsl_assert(! __gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ¬\initialized(&t2[2 .. 3]); */ ; + /*@ assert !\initialized(&t2[2 .. 3]); */ ; { int __gen_e_acsl_size_10; int __gen_e_acsl_if_10; int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"b",(void *)b); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(char)",0,1); __gen_e_acsl_size_10 = 1 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_10); if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; - else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_10); + __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + } __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(b + 1 * 0), (size_t)__gen_e_acsl_if_10); - __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main", - "!\\initialized(b + (0 .. 9))", - "tests/memory/ranges_in_builtins.c",46); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(b + (0 .. 9))",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(b + (0 .. 9))"; + __gen_e_acsl_assert_data_10.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 46; + __e_acsl_assert(! __gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(b + (0 .. 9)); */ ; + /*@ assert !\initialized(b + (0 .. 9)); */ ; free((void *)b); int n = 2; { int __gen_e_acsl_forall; int __gen_e_acsl_range_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_range_2 = 0; while (1) { @@ -249,31 +468,66 @@ int main(void) __gen_e_acsl_range_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(! __gen_e_acsl_forall,1,"Assertion","main", - "!\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])", - "tests/memory/ranges_in_builtins.c",51); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\forall integer range_2;\n 0 <= range_2 <= 1 ==>\n (\\forall integer range;\n n - 1 <= range <= n + 2 ==> \\initialized(&t3[range][1][range_2]))", + 0,__gen_e_acsl_forall); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])", + 0,__gen_e_acsl_forall); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "!\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])"; + __gen_e_acsl_assert_data_11.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 51; + __e_acsl_assert(! __gen_e_acsl_forall,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert ¬\initialized(&t3[n - 1 .. n + 2][1][0 .. 1]); */ ; + /*@ assert !\initialized(&t3[n - 1 .. n + 2][1][0 .. 1]); */ ; { int __gen_e_acsl_size_11; int __gen_e_acsl_if_11; int __gen_e_acsl_valid_read; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "&t3[6][1][0]",(void *)(& t3[6][1][0])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(float)",0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(float)",0,4); __gen_e_acsl_size_11 = 4 * ((10 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_11); if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; - else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_11); + __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + } __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)(& t3[6][1][0]) + 4 * 2), (size_t)__gen_e_acsl_if_11, (void *)(& t3[0][0][0]), (void *)0); - __e_acsl_assert(! __gen_e_acsl_valid_read,1,"Assertion","main", - "!\\valid_read(&t3[6][1][0] + (2 .. 10))", - "tests/memory/ranges_in_builtins.c",53); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\valid_read(&t3[6][1][0] + (2 .. 10))",0, + __gen_e_acsl_valid_read); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "!\\valid_read(&t3[6][1][0] + (2 .. 10))"; + __gen_e_acsl_assert_data_12.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 53; + __e_acsl_assert(! __gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } - /*@ assert ¬\valid_read(&t3[6][1][0] + (2 .. 10)); */ ; + /*@ assert !\valid_read(&t3[6][1][0] + (2 .. 10)); */ ; { int __gen_e_acsl_forall_3; long __gen_e_acsl_range_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; __gen_e_acsl_forall_3 = 1; __gen_e_acsl_range_3 = n - 1L; while (1) { @@ -293,15 +547,28 @@ int main(void) __gen_e_acsl_range_3 ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall_3,1,"Assertion","main", - "\\valid_read(&t3[n - 1 .. n + 2][1])", - "tests/memory/ranges_in_builtins.c",54); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\forall integer range_3;\n n - 1 <= range_3 <= n + 2 ==> \\valid_read(&t3[range_3][1])", + 0,__gen_e_acsl_forall_3); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\valid_read(&t3[n - 1 .. n + 2][1])",0, + __gen_e_acsl_forall_3); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "\\valid_read(&t3[n - 1 .. n + 2][1])"; + __gen_e_acsl_assert_data_13.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 54; + __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } /*@ assert \valid_read(&t3[n - 1 .. n + 2][1]); */ ; { int __gen_e_acsl_x; int __gen_e_acsl_forall_4; int __gen_e_acsl_range_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; __gen_e_acsl_x = 5; __gen_e_acsl_forall_4 = 1; __gen_e_acsl_range_4 = 0; @@ -322,9 +589,20 @@ int main(void) __gen_e_acsl_range_4 ++; } e_acsl_end_loop4: ; - __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main", - "\\let x = 5; \\valid(&t4[4][0 .. x][2])", - "tests/memory/ranges_in_builtins.c",57); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "\\forall integer range_4; 0 <= range_4 <= x ==> \\valid(&t4[4][range_4][2])", + 0,__gen_e_acsl_forall_4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "\\valid(&t4[4][0 .. x][2])",0, + __gen_e_acsl_forall_4); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\let x = 5; \\valid(&t4[4][0 .. x][2])"; + __gen_e_acsl_assert_data_14.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 57; + __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } /*@ assert \let x = 5; \valid(&t4[4][0 .. x][2]); */ ; __e_acsl_initialize((void *)(& s.a[0]),sizeof(int)); @@ -335,33 +613,78 @@ int main(void) int __gen_e_acsl_size_12; int __gen_e_acsl_if_12; int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&s.a[0]", + (void *)(& s.a[0])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"sizeof(int)", + 0,4); __gen_e_acsl_size_12 = 4 * ((1 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_12); if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; - else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_12); + __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + } __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)((char *)(& s.a[0]) + 4 * 1), (size_t)__gen_e_acsl_if_12); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(&s.a[0] + (1 .. 1))", - "tests/memory/ranges_in_builtins.c",62); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\initialized(&s.a[0] + (1 .. 1))",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\initialized(&s.a[0] + (1 .. 1))"; + __gen_e_acsl_assert_data_15.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 62; + __e_acsl_assert(__gen_e_acsl_initialized_5,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } /*@ assert \initialized(&s.a[0] + (1 .. 1)); */ ; { int __gen_e_acsl_size_13; int __gen_e_acsl_if_13; int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + /*@ assert Eva: initialization: \initialized(&s.b); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"s.b", + (void *)s.b); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(float)",0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(float)",0,4); __gen_e_acsl_size_13 = 4 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_13); if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0; - else __gen_e_acsl_if_13 = __gen_e_acsl_size_13; - /*@ assert Eva: initialization: \initialized(&s.b); */ + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_13); + __gen_e_acsl_if_13 = __gen_e_acsl_size_13; + } __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)((char *)s.b + 4 * 0), (size_t)__gen_e_acsl_if_13); - __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main", - "!\\initialized(s.b + (0 .. 1))", - "tests/memory/ranges_in_builtins.c",63); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "\\initialized(s.b + (0 .. 1))",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "!\\initialized(s.b + (0 .. 1))"; + __gen_e_acsl_assert_data_16.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 63; + __e_acsl_assert(! __gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert ¬\initialized(s.b + (0 .. 1)); */ ; + /*@ assert !\initialized(s.b + (0 .. 1)); */ ; int size1 = 5; int size2 = 9; __e_acsl_full_init((void *)(& multi_dynamic)); @@ -378,24 +701,58 @@ int main(void) int __gen_e_acsl_size_14; int __gen_e_acsl_if_14; int __gen_e_acsl_valid_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "*(multi_dynamic + 4)", + (void *)*(multi_dynamic + 4)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"sizeof(int)", + 0,4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "multi_dynamic",(void *)multi_dynamic); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(multi_dynamic + 4), sizeof(int *), (void *)multi_dynamic, (void *)(& multi_dynamic)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main", - "mem_access: \\valid_read(multi_dynamic + 4)", - "tests/memory/ranges_in_builtins.c",72); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "RTE"; + __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(multi_dynamic + 4)"; + __gen_e_acsl_assert_data_18.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 72; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"sizeof(int)", + 0,4); __gen_e_acsl_size_14 = 4 * ((7 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0, + __gen_e_acsl_size_14); if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0; - else __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0, + __gen_e_acsl_size_14); + __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + } __gen_e_acsl_valid_9 = __e_acsl_valid((void *)((char *)*(multi_dynamic + 4) + 4 * 1), (size_t)__gen_e_acsl_if_14, (void *)*(multi_dynamic + 4), (void *)(multi_dynamic + 4)); - __e_acsl_assert(__gen_e_acsl_valid_9,1,"Assertion","main", - "\\valid(*(multi_dynamic + 4) + (1 .. 7))", - "tests/memory/ranges_in_builtins.c",72); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "\\valid(*(multi_dynamic + 4) + (1 .. 7))", + 0,__gen_e_acsl_valid_9); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\valid(*(multi_dynamic + 4) + (1 .. 7))"; + __gen_e_acsl_assert_data_17.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 72; + __e_acsl_assert(__gen_e_acsl_valid_9,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } /*@ assert \valid(*(multi_dynamic + 4) + (1 .. 7)); */ ; /*@ assert \valid(*(multi_dynamic + (2 .. 4)) + (1 .. 7)); */ ; @@ -416,15 +773,37 @@ int main(void) int __gen_e_acsl_size_15; int __gen_e_acsl_if_15; int __gen_e_acsl_valid_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"(char *)t5", + (void *)(t5)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "sizeof(char)",0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "sizeof(char)",0,1); __gen_e_acsl_size_15 = 1 * ((3 - 2) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0, + __gen_e_acsl_size_15); if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0; - else __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0, + __gen_e_acsl_size_15); + __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + } __gen_e_acsl_valid_10 = __e_acsl_valid((void *)(t5 + 1 * 2), (size_t)__gen_e_acsl_if_15, (void *)(t5),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_10,1,"Assertion","main", - "\\valid(&t5[2 .. 3])", - "tests/memory/ranges_in_builtins.c",84); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20, + "\\valid(&t5[2 .. 3])",0, + __gen_e_acsl_valid_10); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "Assertion"; + __gen_e_acsl_assert_data_20.pred_txt = "\\valid(&t5[2 .. 3])"; + __gen_e_acsl_assert_data_20.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 84; + __e_acsl_assert(__gen_e_acsl_valid_10,& __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); } /*@ assert \valid(&t5[2 .. 3]); */ ; __retres = 0; @@ -443,7 +822,7 @@ int main(void) } /*@ requires \valid(ptr + (0 .. size - 1)); - ensures ¬\valid(\old(ptr) + (0 .. \old(size) + 1)); + ensures !\valid(\old(ptr) + (0 .. \old(size) + 1)); */ void __gen_e_acsl_g(long *ptr, size_t size) { @@ -466,7 +845,15 @@ void __gen_e_acsl_g(long *ptr, size_t size) unsigned long __gen_e_acsl_size_3; int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& ptr),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr", + (void *)ptr); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(long)",0, + 8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(long)",0, + 8); __gmpz_init_set_si(__gen_e_acsl_sizeof,8L); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size); __gmpz_init_set_ui(__gen_e_acsl_size_2,size); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -488,6 +875,8 @@ void __gen_e_acsl_g(long *ptr, size_t size) (__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gmpz_init_set(__gen_e_acsl_size, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); if (__gen_e_acsl_le <= 0) { @@ -497,21 +886,46 @@ void __gen_e_acsl_g(long *ptr, size_t size) (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_clear(__gen_e_acsl__3); } - else __gmpz_init_set(__gen_e_acsl_if, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL); __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","g", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(long) * (((size - 1) - 0) + 1); size <= 0? 0: size) <=\n 18446744073709551615", - "tests/memory/ranges_in_builtins.c",8); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(long) * (((size - 1) - 0) + 1); size <= 0? 0: size) <=\n 18446744073709551615"; + __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 8; + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 8 * 0), __gen_e_acsl_size_3,(void *)ptr, (void *)(& ptr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","g", - "\\valid(ptr + (0 .. size - 1))", - "tests/memory/ranges_in_builtins.c",8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(ptr + (0 .. size - 1))",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(ptr + (0 .. size - 1))"; + __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_size_2); @@ -548,7 +962,18 @@ void __gen_e_acsl_g(long *ptr, size_t size) int __gen_e_acsl_le_4; unsigned long __gen_e_acsl_size_6; int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(ptr)", + (void *)__gen_e_acsl_at); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(long)", + 0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(long)", + 0,8); __gmpz_init_set_si(__gen_e_acsl_sizeof_2,8L); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"\\old(size)", + 0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2)); __gmpz_init_set_si(__gen_e_acsl__5,1L); __gmpz_init(__gen_e_acsl_add_2); __gmpz_add(__gen_e_acsl_add_2, @@ -569,6 +994,8 @@ void __gen_e_acsl_g(long *ptr, size_t size) (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3)); __gmpz_init_set(__gen_e_acsl_size_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4)); __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4), (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); if (__gen_e_acsl_le_3 <= 0) { @@ -578,23 +1005,48 @@ void __gen_e_acsl_g(long *ptr, size_t size) (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); __gmpz_clear(__gen_e_acsl__7); } - else __gmpz_init_set(__gen_e_acsl_if_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4)); + __gmpz_init_set(__gen_e_acsl_if_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gmpz_init_set_ui(__gen_e_acsl__8,18446744073709551615UL); __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __e_acsl_assert(__gen_e_acsl_le_4 <= 0,1,"RTE","g", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(long) * (((\\old(size) + 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615", - "tests/memory/ranges_in_builtins.c",9); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3, + "__gen_e_acsl_if_2",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(long) * (((\\old(size) + 1) - 0) + 1);\n size <= 0? 0: size)\n <= 18446744073709551615"; + __gen_e_acsl_assert_data_4.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_4.fct = "g"; + __gen_e_acsl_assert_data_4.line = 9; + __e_acsl_assert(__gen_e_acsl_le_4 <= 0,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gen_e_acsl_size_6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)__gen_e_acsl_at + 8 * 0), __gen_e_acsl_size_6, (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Postcondition","g", - "!\\valid(\\old(ptr) + (0 .. \\old(size) + 1))", - "tests/memory/ranges_in_builtins.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(\\old(ptr) + (0 .. \\old(size) + 1))", + 0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(\\old(ptr) + (0 .. \\old(size) + 1))"; + __gen_e_acsl_assert_data_3.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_3.fct = "g"; + __gen_e_acsl_assert_data_3.line = 9; + __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_delete_block((void *)(& ptr)); __gmpz_clear(__gen_e_acsl_size_4); __gmpz_clear(__gen_e_acsl_sizeof_2); @@ -611,7 +1063,7 @@ void __gen_e_acsl_g(long *ptr, size_t size) } } -/*@ requires ¬\valid(s + (3 .. n + 1000)); */ +/*@ requires !\valid(s + (3 .. n + 1000)); */ void __gen_e_acsl_f(char *s, long n) { { @@ -633,7 +1085,14 @@ void __gen_e_acsl_f(char *s, long n) unsigned long __gen_e_acsl_size_2; int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& s),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s",(void *)s); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0, + 1); __gmpz_init_set_si(__gen_e_acsl_sizeof,1L); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"n",0,n); __gmpz_init_set_si(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1000L); __gmpz_init(__gen_e_acsl_add); @@ -656,6 +1115,8 @@ void __gen_e_acsl_f(char *s, long n) (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); __gmpz_init_set(__gen_e_acsl_size, (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); __gmpz_init_set_si(__gen_e_acsl__4,0L); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); @@ -666,21 +1127,46 @@ void __gen_e_acsl_f(char *s, long n) (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gmpz_clear(__gen_e_acsl__5); } - else __gmpz_init_set(__gen_e_acsl_if, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + else { + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL); __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); - __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","f", - "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((n + 1000) - 3) + 1); size <= 0? 0: size) <=\n 18446744073709551615", - "tests/memory/ranges_in_builtins.c",6); + __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data, + "__gen_e_acsl_if",0, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n (\\let size = sizeof(char) * (((n + 1000) - 3) + 1); size <= 0? 0: size) <=\n 18446744073709551615"; + __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 6; + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __gen_e_acsl_size_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)(s + 1 * 3), __gen_e_acsl_size_2,(void *)s, (void *)(& s)); - __e_acsl_assert(! __gen_e_acsl_valid,1,"Precondition","f", - "!\\valid(s + (3 .. n + 1000))", - "tests/memory/ranges_in_builtins.c",6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(s + (3 .. n + 1000))",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(s + (3 .. n + 1000))"; + __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gmpz_clear(__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_n); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c b/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c index d1ab26cc2eb68711e15231c8fd9dab0201e112c5..6ebe0a31aadb63676121017081494f3d2259292e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -29,32 +30,87 @@ int main(void) int __gen_e_acsl_valid_read_2; int __gen_e_acsl_valid_read_3; int __gen_e_acsl_separated; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& a), sizeof(int), (void *)(& a),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "separated_guard: \\valid_read(&a)", - "tests/memory/separated.c",14); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "separated_guard: \\valid_read(&a)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& b), sizeof(int), (void *)(& b), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "separated_guard: \\valid_read(&b)", - "tests/memory/separated.c",14); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "separated_guard: \\valid_read(&b)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& c), sizeof(int), (void *)(& c), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main", - "separated_guard: \\valid_read(&c)", - "tests/memory/separated.c",14); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(&c)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_separated = __e_acsl_separated((size_t)3,& a,sizeof(int), & b,sizeof(int),& c, sizeof(int)); - __e_acsl_assert(__gen_e_acsl_separated,1,"Assertion","main", - "\\separated(&a, &b, &c)","tests/memory/separated.c", - 14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\separated(&a, &b, &c)",0, + __gen_e_acsl_separated); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\separated(&a, &b, &c)"; + __gen_e_acsl_assert_data.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \separated(&a, &b, &c); */ ; { @@ -64,31 +120,76 @@ int main(void) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_separated_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& a), sizeof(int), (void *)(& a), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main", - "separated_guard: \\valid_read(&a)", - "tests/memory/separated.c",15); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "separated_guard: \\valid_read(&a)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& b), sizeof(int), (void *)(& b), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","main", - "separated_guard: \\valid_read(&b)", - "tests/memory/separated.c",15); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "separated_guard: \\valid_read(&b)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(& c), sizeof(int), (void *)(& c), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main", - "separated_guard: \\valid_read(&c)", - "tests/memory/separated.c",15); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "separated_guard: \\valid_read(&c)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& d), sizeof(int *)); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)d, sizeof(int), (void *)d, @@ -96,19 +197,49 @@ int main(void) __gen_e_acsl_and = __gen_e_acsl_valid_read_7; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main", - "separated_guard: \\valid_read(d)", - "tests/memory/separated.c",15); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "separated_guard: \\valid_read(d)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_separated_2 = __e_acsl_separated((size_t)4,& a, sizeof(int),& b, sizeof(int),& c, sizeof(int),d, sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_separated_2,1,"Assertion","main", - "!\\separated(&a, &b, &c, d)", - "tests/memory/separated.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\separated(&a, &b, &c, d)",0, + __gen_e_acsl_separated_2); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\separated(&a, &b, &c, d)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 15; + __e_acsl_assert(! __gen_e_acsl_separated_2, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\separated(&a, &b, &c, d); */ ; + /*@ assert !\separated(&a, &b, &c, d); */ ; __e_acsl_delete_block((void *)(& d)); __e_acsl_delete_block((void *)(& c)); __e_acsl_delete_block((void *)(& b)); @@ -130,42 +261,116 @@ int main(void) int __gen_e_acsl_size_4; int __gen_e_acsl_if_4; int __gen_e_acsl_separated_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "sizeof(double)",0,8); __gen_e_acsl_size = 8 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 9])", - "tests/memory/separated.c",21); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "separated_guard: \\valid_read(&array[0 .. 9])"; + __gen_e_acsl_assert_data_11.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 21; + __e_acsl_assert(__gen_e_acsl_valid_read_8, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "sizeof(double)",0,8); __gen_e_acsl_size_2 = 8 * ((19 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 10), (size_t)__gen_e_acsl_if_2, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_9,1,"RTE","main", - "separated_guard: \\valid_read(&array[10 .. 19])", - "tests/memory/separated.c",21); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "separated_guard: \\valid_read(&array[10 .. 19])"; + __gen_e_acsl_assert_data_12.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 21; + __e_acsl_assert(__gen_e_acsl_valid_read_9, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(double)",0,8); __gen_e_acsl_size_3 = 8 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "sizeof(double)",0,8); __gen_e_acsl_size_4 = 8 * ((19 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_separated_3 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 0, __gen_e_acsl_if_3, (char *)(array) + 8 * 10, __gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_separated_3,1,"Assertion","main", - "\\separated(&array[0 .. 9], &array[10 .. 19])", - "tests/memory/separated.c",21); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\separated(&array[0 .. 9], &array[10 .. 19])", + 0,__gen_e_acsl_separated_3); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\separated(&array[0 .. 9], &array[10 .. 19])"; + __gen_e_acsl_assert_data_10.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 21; + __e_acsl_assert(__gen_e_acsl_separated_3,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \separated(&array[0 .. 9], &array[10 .. 19]); */ ; { @@ -180,44 +385,119 @@ int main(void) int __gen_e_acsl_size_8; int __gen_e_acsl_if_8; int __gen_e_acsl_separated_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14, + "sizeof(double)",0,8); __gen_e_acsl_size_5 = 8 * ((10 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_5); if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; - else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0, + __gen_e_acsl_size_5); + __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + } __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_5, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_10,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 10])", - "tests/memory/separated.c",22); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "RTE"; + __gen_e_acsl_assert_data_14.pred_txt = "separated_guard: \\valid_read(&array[0 .. 10])"; + __gen_e_acsl_assert_data_14.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 22; + __e_acsl_assert(__gen_e_acsl_valid_read_10, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "sizeof(double)",0,8); __gen_e_acsl_size_6 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_6); if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; - else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0, + __gen_e_acsl_size_6); + __gen_e_acsl_if_6 = __gen_e_acsl_size_6; + } __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 5), (size_t)__gen_e_acsl_if_6, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_11,1,"RTE","main", - "separated_guard: \\valid_read(&array[5 .. 15])", - "tests/memory/separated.c",22); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "RTE"; + __gen_e_acsl_assert_data_15.pred_txt = "separated_guard: \\valid_read(&array[5 .. 15])"; + __gen_e_acsl_assert_data_15.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 22; + __e_acsl_assert(__gen_e_acsl_valid_read_11, + & __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(double)",0,8); __gen_e_acsl_size_7 = 8 * ((10 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_7); if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; - else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_7); + __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "sizeof(double)",0,8); __gen_e_acsl_size_8 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_8); if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; - else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0, + __gen_e_acsl_size_8); + __gen_e_acsl_if_8 = __gen_e_acsl_size_8; + } __gen_e_acsl_separated_4 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 0, __gen_e_acsl_if_7, (char *)(array) + 8 * 5, __gen_e_acsl_if_8); - __e_acsl_assert(! __gen_e_acsl_separated_4,1,"Assertion","main", - "!\\separated(&array[0 .. 10], &array[5 .. 15])", - "tests/memory/separated.c",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\separated(&array[0 .. 10], &array[5 .. 15])", + 0,__gen_e_acsl_separated_4); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "!\\separated(&array[0 .. 10], &array[5 .. 15])"; + __gen_e_acsl_assert_data_13.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 22; + __e_acsl_assert(! __gen_e_acsl_separated_4, + & __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert ¬\separated(&array[0 .. 10], &array[5 .. 15]); */ ; + /*@ assert !\separated(&array[0 .. 10], &array[5 .. 15]); */ ; { int __gen_e_acsl_size_9; int __gen_e_acsl_if_9; @@ -230,69 +510,186 @@ int main(void) int __gen_e_acsl_size_12; int __gen_e_acsl_if_12; int __gen_e_acsl_separated_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "sizeof(double)",0,8); __gen_e_acsl_size_9 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0, + __gen_e_acsl_size_9); if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; - else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0, + __gen_e_acsl_size_9); + __gen_e_acsl_if_9 = __gen_e_acsl_size_9; + } __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_9, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_12,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 19])", - "tests/memory/separated.c",23); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "RTE"; + __gen_e_acsl_assert_data_17.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])"; + __gen_e_acsl_assert_data_17.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 23; + __e_acsl_assert(__gen_e_acsl_valid_read_12, + & __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18, + "sizeof(double)",0,8); __gen_e_acsl_size_10 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0, + __gen_e_acsl_size_10); if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; - else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0, + __gen_e_acsl_size_10); + __gen_e_acsl_if_10 = __gen_e_acsl_size_10; + } __gen_e_acsl_valid_read_13 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 5), (size_t)__gen_e_acsl_if_10, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_13,1,"RTE","main", - "separated_guard: \\valid_read(&array[5 .. 15])", - "tests/memory/separated.c",23); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "RTE"; + __gen_e_acsl_assert_data_18.pred_txt = "separated_guard: \\valid_read(&array[5 .. 15])"; + __gen_e_acsl_assert_data_18.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 23; + __e_acsl_assert(__gen_e_acsl_valid_read_13, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(double)",0,8); __gen_e_acsl_size_11 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_11); if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; - else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_11); + __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "sizeof(double)",0,8); __gen_e_acsl_size_12 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_12); if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; - else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0, + __gen_e_acsl_size_12); + __gen_e_acsl_if_12 = __gen_e_acsl_size_12; + } __gen_e_acsl_separated_5 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 0, __gen_e_acsl_if_11, (char *)(array) + 8 * 5, __gen_e_acsl_if_12); - __e_acsl_assert(! __gen_e_acsl_separated_5,1,"Assertion","main", - "!\\separated(&array[0 .. 19], &array[5 .. 15])", - "tests/memory/separated.c",23); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16, + "\\separated(&array[0 .. 19], &array[5 .. 15])", + 0,__gen_e_acsl_separated_5); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "Assertion"; + __gen_e_acsl_assert_data_16.pred_txt = "!\\separated(&array[0 .. 19], &array[5 .. 15])"; + __gen_e_acsl_assert_data_16.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 23; + __e_acsl_assert(! __gen_e_acsl_separated_5, + & __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); } - /*@ assert ¬\separated(&array[0 .. 19], &array[5 .. 15]); */ ; + /*@ assert !\separated(&array[0 .. 19], &array[5 .. 15]); */ ; { int __gen_e_acsl_valid_read_14; int __gen_e_acsl_valid_read_15; int __gen_e_acsl_separated_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read_14 = __e_acsl_valid_read((void *)(array), sizeof(double), (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_14,1,"RTE","main", - "separated_guard: \\valid_read((double *)array)", - "tests/memory/separated.c",24); + __gen_e_acsl_assert_data_20.blocking = 1; + __gen_e_acsl_assert_data_20.kind = "RTE"; + __gen_e_acsl_assert_data_20.pred_txt = "separated_guard: \\valid_read((double *)array)"; + __gen_e_acsl_assert_data_20.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_20.fct = "main"; + __gen_e_acsl_assert_data_20.line = 24; + __e_acsl_assert(__gen_e_acsl_valid_read_14, + & __gen_e_acsl_assert_data_20); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"&array[1]", + (void *)(& array[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read_15 = __e_acsl_valid_read((void *)(& array[1]), sizeof(double), (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_15,1,"RTE","main", - "separated_guard: \\valid_read(&array[1])", - "tests/memory/separated.c",24); + __gen_e_acsl_assert_data_21.blocking = 1; + __gen_e_acsl_assert_data_21.kind = "RTE"; + __gen_e_acsl_assert_data_21.pred_txt = "separated_guard: \\valid_read(&array[1])"; + __gen_e_acsl_assert_data_21.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_21.fct = "main"; + __gen_e_acsl_assert_data_21.line = 24; + __e_acsl_assert(__gen_e_acsl_valid_read_15, + & __gen_e_acsl_assert_data_21); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19, + "sizeof(double)",0,sizeof(double)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"&array[1]", + (void *)(& array[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_separated_6 = __e_acsl_separated((size_t)2,array, sizeof(double), & array[1], sizeof(double)); - __e_acsl_assert(__gen_e_acsl_separated_6,1,"Assertion","main", - "\\separated((double *)array, &array[1])", - "tests/memory/separated.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19, + "\\separated((double *)array, &array[1])", + 0,__gen_e_acsl_separated_6); + __gen_e_acsl_assert_data_19.blocking = 1; + __gen_e_acsl_assert_data_19.kind = "Assertion"; + __gen_e_acsl_assert_data_19.pred_txt = "\\separated((double *)array, &array[1])"; + __gen_e_acsl_assert_data_19.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_19.fct = "main"; + __gen_e_acsl_assert_data_19.line = 24; + __e_acsl_assert(__gen_e_acsl_separated_6,& __gen_e_acsl_assert_data_19); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19); } /*@ assert \separated((double *)array, &array[1]); */ ; { @@ -307,44 +704,119 @@ int main(void) int __gen_e_acsl_size_16; int __gen_e_acsl_if_16; int __gen_e_acsl_separated_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23, + "sizeof(double)",0,8); __gen_e_acsl_size_13 = 8 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0, + __gen_e_acsl_size_13); if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0; - else __gen_e_acsl_if_13 = __gen_e_acsl_size_13; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0, + __gen_e_acsl_size_13); + __gen_e_acsl_if_13 = __gen_e_acsl_size_13; + } __gen_e_acsl_valid_read_16 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_13, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_16,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 1])", - "tests/memory/separated.c",25); + __gen_e_acsl_assert_data_23.blocking = 1; + __gen_e_acsl_assert_data_23.kind = "RTE"; + __gen_e_acsl_assert_data_23.pred_txt = "separated_guard: \\valid_read(&array[0 .. 1])"; + __gen_e_acsl_assert_data_23.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_23.fct = "main"; + __gen_e_acsl_assert_data_23.line = 25; + __e_acsl_assert(__gen_e_acsl_valid_read_16, + & __gen_e_acsl_assert_data_23); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24, + "sizeof(double)",0,8); __gen_e_acsl_size_14 = 8 * ((2 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0, + __gen_e_acsl_size_14); if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0; - else __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0, + __gen_e_acsl_size_14); + __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + } __gen_e_acsl_valid_read_17 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 1), (size_t)__gen_e_acsl_if_14, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_17,1,"RTE","main", - "separated_guard: \\valid_read(&array[1 .. 2])", - "tests/memory/separated.c",25); + __gen_e_acsl_assert_data_24.blocking = 1; + __gen_e_acsl_assert_data_24.kind = "RTE"; + __gen_e_acsl_assert_data_24.pred_txt = "separated_guard: \\valid_read(&array[1 .. 2])"; + __gen_e_acsl_assert_data_24.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_24.fct = "main"; + __gen_e_acsl_assert_data_24.line = 25; + __e_acsl_assert(__gen_e_acsl_valid_read_17, + & __gen_e_acsl_assert_data_24); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "sizeof(double)",0,8); __gen_e_acsl_size_15 = 8 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0, + __gen_e_acsl_size_15); if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0; - else __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0, + __gen_e_acsl_size_15); + __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "sizeof(double)",0,8); __gen_e_acsl_size_16 = 8 * ((2 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0, + __gen_e_acsl_size_16); if (__gen_e_acsl_size_16 <= 0) __gen_e_acsl_if_16 = 0; - else __gen_e_acsl_if_16 = __gen_e_acsl_size_16; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0, + __gen_e_acsl_size_16); + __gen_e_acsl_if_16 = __gen_e_acsl_size_16; + } __gen_e_acsl_separated_7 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 0, __gen_e_acsl_if_15, (char *)(array) + 8 * 1, __gen_e_acsl_if_16); - __e_acsl_assert(! __gen_e_acsl_separated_7,1,"Assertion","main", - "!\\separated(&array[0 .. 1], &array[1 .. 2])", - "tests/memory/separated.c",25); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22, + "\\separated(&array[0 .. 1], &array[1 .. 2])", + 0,__gen_e_acsl_separated_7); + __gen_e_acsl_assert_data_22.blocking = 1; + __gen_e_acsl_assert_data_22.kind = "Assertion"; + __gen_e_acsl_assert_data_22.pred_txt = "!\\separated(&array[0 .. 1], &array[1 .. 2])"; + __gen_e_acsl_assert_data_22.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_22.fct = "main"; + __gen_e_acsl_assert_data_22.line = 25; + __e_acsl_assert(! __gen_e_acsl_separated_7, + & __gen_e_acsl_assert_data_22); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22); } - /*@ assert ¬\separated(&array[0 .. 1], &array[1 .. 2]); */ ; + /*@ assert !\separated(&array[0 .. 1], &array[1 .. 2]); */ ; { int __gen_e_acsl_size_17; int __gen_e_acsl_if_17; @@ -357,42 +829,116 @@ int main(void) int __gen_e_acsl_size_20; int __gen_e_acsl_if_20; int __gen_e_acsl_separated_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26, + "sizeof(double)",0,8); __gen_e_acsl_size_17 = 8 * ((5 - 15) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0, + __gen_e_acsl_size_17); if (__gen_e_acsl_size_17 <= 0) __gen_e_acsl_if_17 = 0; - else __gen_e_acsl_if_17 = __gen_e_acsl_size_17; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0, + __gen_e_acsl_size_17); + __gen_e_acsl_if_17 = __gen_e_acsl_size_17; + } __gen_e_acsl_valid_read_18 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 15), (size_t)__gen_e_acsl_if_17, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_18,1,"RTE","main", - "separated_guard: \\valid_read(&array[15 .. 5])", - "tests/memory/separated.c",26); + __gen_e_acsl_assert_data_26.blocking = 1; + __gen_e_acsl_assert_data_26.kind = "RTE"; + __gen_e_acsl_assert_data_26.pred_txt = "separated_guard: \\valid_read(&array[15 .. 5])"; + __gen_e_acsl_assert_data_26.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_26.fct = "main"; + __gen_e_acsl_assert_data_26.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read_18, + & __gen_e_acsl_assert_data_26); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27, + "sizeof(double)",0,8); __gen_e_acsl_size_18 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"size",0, + __gen_e_acsl_size_18); if (__gen_e_acsl_size_18 <= 0) __gen_e_acsl_if_18 = 0; - else __gen_e_acsl_if_18 = __gen_e_acsl_size_18; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"size",0, + __gen_e_acsl_size_18); + __gen_e_acsl_if_18 = __gen_e_acsl_size_18; + } __gen_e_acsl_valid_read_19 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_18, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_19,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 19])", - "tests/memory/separated.c",26); + __gen_e_acsl_assert_data_27.blocking = 1; + __gen_e_acsl_assert_data_27.kind = "RTE"; + __gen_e_acsl_assert_data_27.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])"; + __gen_e_acsl_assert_data_27.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_27.fct = "main"; + __gen_e_acsl_assert_data_27.line = 26; + __e_acsl_assert(__gen_e_acsl_valid_read_19, + & __gen_e_acsl_assert_data_27); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(double)",0,8); __gen_e_acsl_size_19 = 8 * ((5 - 15) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_19); if (__gen_e_acsl_size_19 <= 0) __gen_e_acsl_if_19 = 0; - else __gen_e_acsl_if_19 = __gen_e_acsl_size_19; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_19); + __gen_e_acsl_if_19 = __gen_e_acsl_size_19; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "sizeof(double)",0,8); __gen_e_acsl_size_20 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_20); if (__gen_e_acsl_size_20 <= 0) __gen_e_acsl_if_20 = 0; - else __gen_e_acsl_if_20 = __gen_e_acsl_size_20; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0, + __gen_e_acsl_size_20); + __gen_e_acsl_if_20 = __gen_e_acsl_size_20; + } __gen_e_acsl_separated_8 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 15, __gen_e_acsl_if_19, (char *)(array) + 8 * 0, __gen_e_acsl_if_20); - __e_acsl_assert(__gen_e_acsl_separated_8,1,"Assertion","main", - "\\separated(&array[15 .. 5], &array[0 .. 19])", - "tests/memory/separated.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25, + "\\separated(&array[15 .. 5], &array[0 .. 19])", + 0,__gen_e_acsl_separated_8); + __gen_e_acsl_assert_data_25.blocking = 1; + __gen_e_acsl_assert_data_25.kind = "Assertion"; + __gen_e_acsl_assert_data_25.pred_txt = "\\separated(&array[15 .. 5], &array[0 .. 19])"; + __gen_e_acsl_assert_data_25.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_25.fct = "main"; + __gen_e_acsl_assert_data_25.line = 26; + __e_acsl_assert(__gen_e_acsl_separated_8,& __gen_e_acsl_assert_data_25); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25); } /*@ assert \separated(&array[15 .. 5], &array[0 .. 19]); */ ; { @@ -407,42 +953,116 @@ int main(void) int __gen_e_acsl_size_24; int __gen_e_acsl_if_24; int __gen_e_acsl_separated_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_29, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29, + "sizeof(double)",0,8); __gen_e_acsl_size_21 = 8 * ((-3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"size",0, + __gen_e_acsl_size_21); if (__gen_e_acsl_size_21 <= 0) __gen_e_acsl_if_21 = 0; - else __gen_e_acsl_if_21 = __gen_e_acsl_size_21; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"size",0, + __gen_e_acsl_size_21); + __gen_e_acsl_if_21 = __gen_e_acsl_size_21; + } __gen_e_acsl_valid_read_20 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_21, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_20,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. -3])", - "tests/memory/separated.c",27); + __gen_e_acsl_assert_data_29.blocking = 1; + __gen_e_acsl_assert_data_29.kind = "RTE"; + __gen_e_acsl_assert_data_29.pred_txt = "separated_guard: \\valid_read(&array[0 .. -3])"; + __gen_e_acsl_assert_data_29.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_29.fct = "main"; + __gen_e_acsl_assert_data_29.line = 27; + __e_acsl_assert(__gen_e_acsl_valid_read_20, + & __gen_e_acsl_assert_data_29); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_30, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30, + "sizeof(double)",0,8); __gen_e_acsl_size_22 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,"size",0, + __gen_e_acsl_size_22); if (__gen_e_acsl_size_22 <= 0) __gen_e_acsl_if_22 = 0; - else __gen_e_acsl_if_22 = __gen_e_acsl_size_22; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,"size",0, + __gen_e_acsl_size_22); + __gen_e_acsl_if_22 = __gen_e_acsl_size_22; + } __gen_e_acsl_valid_read_21 = __e_acsl_valid_read((void *)((char *)(array) + 8 * 0), (size_t)__gen_e_acsl_if_22, (void *)(array), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_21,1,"RTE","main", - "separated_guard: \\valid_read(&array[0 .. 19])", - "tests/memory/separated.c",27); + __gen_e_acsl_assert_data_30.blocking = 1; + __gen_e_acsl_assert_data_30.kind = "RTE"; + __gen_e_acsl_assert_data_30.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])"; + __gen_e_acsl_assert_data_30.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_30.fct = "main"; + __gen_e_acsl_assert_data_30.line = 27; + __e_acsl_assert(__gen_e_acsl_valid_read_21, + & __gen_e_acsl_assert_data_30); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "sizeof(double)",0,8); __gen_e_acsl_size_23 = 8 * ((-3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0, + __gen_e_acsl_size_23); if (__gen_e_acsl_size_23 <= 0) __gen_e_acsl_if_23 = 0; - else __gen_e_acsl_if_23 = __gen_e_acsl_size_23; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0, + __gen_e_acsl_size_23); + __gen_e_acsl_if_23 = __gen_e_acsl_size_23; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28, + "(double *)array",(void *)(array)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "sizeof(double)",0,8); __gen_e_acsl_size_24 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0, + __gen_e_acsl_size_24); if (__gen_e_acsl_size_24 <= 0) __gen_e_acsl_if_24 = 0; - else __gen_e_acsl_if_24 = __gen_e_acsl_size_24; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0, + __gen_e_acsl_size_24); + __gen_e_acsl_if_24 = __gen_e_acsl_size_24; + } __gen_e_acsl_separated_9 = __e_acsl_separated((size_t)2, (char *)(array) + 8 * 0, __gen_e_acsl_if_23, (char *)(array) + 8 * 0, __gen_e_acsl_if_24); - __e_acsl_assert(__gen_e_acsl_separated_9,1,"Assertion","main", - "\\separated(&array[0 .. -3], &array[0 .. 19])", - "tests/memory/separated.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28, + "\\separated(&array[0 .. -3], &array[0 .. 19])", + 0,__gen_e_acsl_separated_9); + __gen_e_acsl_assert_data_28.blocking = 1; + __gen_e_acsl_assert_data_28.kind = "Assertion"; + __gen_e_acsl_assert_data_28.pred_txt = "\\separated(&array[0 .. -3], &array[0 .. 19])"; + __gen_e_acsl_assert_data_28.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_28.fct = "main"; + __gen_e_acsl_assert_data_28.line = 27; + __e_acsl_assert(__gen_e_acsl_separated_9,& __gen_e_acsl_assert_data_28); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28); } /*@ assert \separated(&array[0 .. -3], &array[0 .. 19]); */ ; __e_acsl_delete_block((void *)(array)); @@ -463,10 +1083,22 @@ int main(void) int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; int __gen_e_acsl_separated_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"&a_0", + (void *)(& a_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& a_0), sizeof(int *)); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_22; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"a_0", + (void *)a_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_22 = __e_acsl_valid_read((void *)a_0, sizeof(int), (void *)a_0, @@ -474,13 +1106,28 @@ int main(void) __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_22; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main", - "separated_guard: \\valid_read(a_0)", - "tests/memory/separated.c",36); + __gen_e_acsl_assert_data_32.blocking = 1; + __gen_e_acsl_assert_data_32.kind = "RTE"; + __gen_e_acsl_assert_data_32.pred_txt = "separated_guard: \\valid_read(a_0)"; + __gen_e_acsl_assert_data_32.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_32.fct = "main"; + __gen_e_acsl_assert_data_32.line = 36; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_32); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"&b_0", + (void *)(& b_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& b_0), sizeof(int *)); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_read_23; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"b_0", + (void *)b_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_23 = __e_acsl_valid_read((void *)b_0, sizeof(int), (void *)b_0, @@ -488,14 +1135,37 @@ int main(void) __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_23; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"RTE","main", - "separated_guard: \\valid_read(b_0)", - "tests/memory/separated.c",36); + __gen_e_acsl_assert_data_33.blocking = 1; + __gen_e_acsl_assert_data_33.kind = "RTE"; + __gen_e_acsl_assert_data_33.pred_txt = "separated_guard: \\valid_read(b_0)"; + __gen_e_acsl_assert_data_33.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_33.fct = "main"; + __gen_e_acsl_assert_data_33.line = 36; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_33); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"a_0", + (void *)a_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"b_0", + (void *)b_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_separated_10 = __e_acsl_separated((size_t)2,a_0, sizeof(int),b_0, sizeof(int)); - __e_acsl_assert(__gen_e_acsl_separated_10,1,"Assertion","main", - "\\separated(a_0, b_0)","tests/memory/separated.c",36); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_31, + "\\separated(a_0, b_0)",0, + __gen_e_acsl_separated_10); + __gen_e_acsl_assert_data_31.blocking = 1; + __gen_e_acsl_assert_data_31.kind = "Assertion"; + __gen_e_acsl_assert_data_31.pred_txt = "\\separated(a_0, b_0)"; + __gen_e_acsl_assert_data_31.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_31.fct = "main"; + __gen_e_acsl_assert_data_31.line = 36; + __e_acsl_assert(__gen_e_acsl_separated_10, + & __gen_e_acsl_assert_data_31); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31); } /*@ assert \separated(a_0, b_0); */ ; { @@ -506,10 +1176,22 @@ int main(void) int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; int __gen_e_acsl_separated_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"&a_0", + (void *)(& a_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& a_0), sizeof(int *)); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_read_24; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"a_0", + (void *)a_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_24 = __e_acsl_valid_read((void *)a_0, sizeof(int), (void *)a_0, @@ -517,13 +1199,28 @@ int main(void) __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_24; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"RTE","main", - "separated_guard: \\valid_read(a_0)", - "tests/memory/separated.c",37); + __gen_e_acsl_assert_data_35.blocking = 1; + __gen_e_acsl_assert_data_35.kind = "RTE"; + __gen_e_acsl_assert_data_35.pred_txt = "separated_guard: \\valid_read(a_0)"; + __gen_e_acsl_assert_data_35.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_35.fct = "main"; + __gen_e_acsl_assert_data_35.line = 37; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_35); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"&b_0", + (void *)(& b_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b_0), sizeof(int *)); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_read_25; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"b_0", + (void *)b_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_25 = __e_acsl_valid_read((void *)b_0, sizeof(int), (void *)b_0, @@ -531,13 +1228,28 @@ int main(void) __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_25; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(__gen_e_acsl_and_5,1,"RTE","main", - "separated_guard: \\valid_read(b_0)", - "tests/memory/separated.c",37); + __gen_e_acsl_assert_data_36.blocking = 1; + __gen_e_acsl_assert_data_36.kind = "RTE"; + __gen_e_acsl_assert_data_36.pred_txt = "separated_guard: \\valid_read(b_0)"; + __gen_e_acsl_assert_data_36.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_36.fct = "main"; + __gen_e_acsl_assert_data_36.line = 37; + __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_36); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"&c_0", + (void *)(& c_0)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& c_0), sizeof(int *)); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_read_26; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"c_0", + (void *)c_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_26 = __e_acsl_valid_read((void *)c_0, sizeof(int), (void *)c_0, @@ -545,18 +1257,44 @@ int main(void) __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_26; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"RTE","main", - "separated_guard: \\valid_read(c_0)", - "tests/memory/separated.c",37); + __gen_e_acsl_assert_data_37.blocking = 1; + __gen_e_acsl_assert_data_37.kind = "RTE"; + __gen_e_acsl_assert_data_37.pred_txt = "separated_guard: \\valid_read(c_0)"; + __gen_e_acsl_assert_data_37.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_37.fct = "main"; + __gen_e_acsl_assert_data_37.line = 37; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_37); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"a_0", + (void *)a_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"b_0", + (void *)b_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34, + "sizeof(int)",0,sizeof(int)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"c_0", + (void *)c_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_separated_11 = __e_acsl_separated((size_t)3,a_0, sizeof(int),b_0, sizeof(int),c_0, sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_separated_11,1,"Assertion","main", - "!\\separated(a_0, b_0, c_0)", - "tests/memory/separated.c",37); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34, + "\\separated(a_0, b_0, c_0)",0, + __gen_e_acsl_separated_11); + __gen_e_acsl_assert_data_34.blocking = 1; + __gen_e_acsl_assert_data_34.kind = "Assertion"; + __gen_e_acsl_assert_data_34.pred_txt = "!\\separated(a_0, b_0, c_0)"; + __gen_e_acsl_assert_data_34.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_34.fct = "main"; + __gen_e_acsl_assert_data_34.line = 37; + __e_acsl_assert(! __gen_e_acsl_separated_11, + & __gen_e_acsl_assert_data_34); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34); } - /*@ assert ¬\separated(a_0, b_0, c_0); */ ; + /*@ assert !\separated(a_0, b_0, c_0); */ ; free((void *)a_0); free((void *)b_0); __e_acsl_delete_block((void *)(& c_0)); @@ -579,42 +1317,117 @@ int main(void) int __gen_e_acsl_size_28; int __gen_e_acsl_if_28; int __gen_e_acsl_separated_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39, + "sizeof(double)",0,8); __gen_e_acsl_size_25 = 8 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0, + __gen_e_acsl_size_25); if (__gen_e_acsl_size_25 <= 0) __gen_e_acsl_if_25 = 0; - else __gen_e_acsl_if_25 = __gen_e_acsl_size_25; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0, + __gen_e_acsl_size_25); + __gen_e_acsl_if_25 = __gen_e_acsl_size_25; + } __gen_e_acsl_valid_read_27 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_25, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_27,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 9))", - "tests/memory/separated.c",46); + __gen_e_acsl_assert_data_39.blocking = 1; + __gen_e_acsl_assert_data_39.kind = "RTE"; + __gen_e_acsl_assert_data_39.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 9))"; + __gen_e_acsl_assert_data_39.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_39.fct = "main"; + __gen_e_acsl_assert_data_39.line = 46; + __e_acsl_assert(__gen_e_acsl_valid_read_27, + & __gen_e_acsl_assert_data_39); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_40 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_40,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40, + "sizeof(double)",0,8); __gen_e_acsl_size_26 = 8 * ((19 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0, + __gen_e_acsl_size_26); if (__gen_e_acsl_size_26 <= 0) __gen_e_acsl_if_26 = 0; - else __gen_e_acsl_if_26 = __gen_e_acsl_size_26; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0, + __gen_e_acsl_size_26); + __gen_e_acsl_if_26 = __gen_e_acsl_size_26; + } __gen_e_acsl_valid_read_28 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 10), (size_t)__gen_e_acsl_if_26, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_28,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (10 .. 19))", - "tests/memory/separated.c",46); + __gen_e_acsl_assert_data_40.blocking = 1; + __gen_e_acsl_assert_data_40.kind = "RTE"; + __gen_e_acsl_assert_data_40.pred_txt = "separated_guard: \\valid_read(array_0 + (10 .. 19))"; + __gen_e_acsl_assert_data_40.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_40.fct = "main"; + __gen_e_acsl_assert_data_40.line = 46; + __e_acsl_assert(__gen_e_acsl_valid_read_28, + & __gen_e_acsl_assert_data_40); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_40); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "sizeof(double)",0,8); __gen_e_acsl_size_27 = 8 * ((9 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0, + __gen_e_acsl_size_27); if (__gen_e_acsl_size_27 <= 0) __gen_e_acsl_if_27 = 0; - else __gen_e_acsl_if_27 = __gen_e_acsl_size_27; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0, + __gen_e_acsl_size_27); + __gen_e_acsl_if_27 = __gen_e_acsl_size_27; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "sizeof(double)",0,8); __gen_e_acsl_size_28 = 8 * ((19 - 10) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0, + __gen_e_acsl_size_28); if (__gen_e_acsl_size_28 <= 0) __gen_e_acsl_if_28 = 0; - else __gen_e_acsl_if_28 = __gen_e_acsl_size_28; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0, + __gen_e_acsl_size_28); + __gen_e_acsl_if_28 = __gen_e_acsl_size_28; + } __gen_e_acsl_separated_12 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 0, __gen_e_acsl_if_27, (char *)array_0 + 8 * 10, __gen_e_acsl_if_28); - __e_acsl_assert(__gen_e_acsl_separated_12,1,"Assertion","main", - "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))", - "tests/memory/separated.c",46); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38, + "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))", + 0,__gen_e_acsl_separated_12); + __gen_e_acsl_assert_data_38.blocking = 1; + __gen_e_acsl_assert_data_38.kind = "Assertion"; + __gen_e_acsl_assert_data_38.pred_txt = "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))"; + __gen_e_acsl_assert_data_38.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_38.fct = "main"; + __gen_e_acsl_assert_data_38.line = 46; + __e_acsl_assert(__gen_e_acsl_separated_12, + & __gen_e_acsl_assert_data_38); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38); } /*@ assert \separated(array_0 + (0 .. 9), array_0 + (10 .. 19)); */ ; { @@ -629,44 +1442,119 @@ int main(void) int __gen_e_acsl_size_32; int __gen_e_acsl_if_32; int __gen_e_acsl_separated_13; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_41 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_42 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_42,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42, + "sizeof(double)",0,8); __gen_e_acsl_size_29 = 8 * ((10 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0, + __gen_e_acsl_size_29); if (__gen_e_acsl_size_29 <= 0) __gen_e_acsl_if_29 = 0; - else __gen_e_acsl_if_29 = __gen_e_acsl_size_29; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0, + __gen_e_acsl_size_29); + __gen_e_acsl_if_29 = __gen_e_acsl_size_29; + } __gen_e_acsl_valid_read_29 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_29, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_29,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 10))", - "tests/memory/separated.c",47); + __gen_e_acsl_assert_data_42.blocking = 1; + __gen_e_acsl_assert_data_42.kind = "RTE"; + __gen_e_acsl_assert_data_42.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 10))"; + __gen_e_acsl_assert_data_42.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_42.fct = "main"; + __gen_e_acsl_assert_data_42.line = 47; + __e_acsl_assert(__gen_e_acsl_valid_read_29, + & __gen_e_acsl_assert_data_42); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_42); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_43 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_43,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43, + "sizeof(double)",0,8); __gen_e_acsl_size_30 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,"size",0, + __gen_e_acsl_size_30); if (__gen_e_acsl_size_30 <= 0) __gen_e_acsl_if_30 = 0; - else __gen_e_acsl_if_30 = __gen_e_acsl_size_30; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,"size",0, + __gen_e_acsl_size_30); + __gen_e_acsl_if_30 = __gen_e_acsl_size_30; + } __gen_e_acsl_valid_read_30 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 5), (size_t)__gen_e_acsl_if_30, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_30,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (5 .. 15))", - "tests/memory/separated.c",47); + __gen_e_acsl_assert_data_43.blocking = 1; + __gen_e_acsl_assert_data_43.kind = "RTE"; + __gen_e_acsl_assert_data_43.pred_txt = "separated_guard: \\valid_read(array_0 + (5 .. 15))"; + __gen_e_acsl_assert_data_43.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_43.fct = "main"; + __gen_e_acsl_assert_data_43.line = 47; + __e_acsl_assert(__gen_e_acsl_valid_read_30, + & __gen_e_acsl_assert_data_43); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_43); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "sizeof(double)",0,8); __gen_e_acsl_size_31 = 8 * ((10 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0, + __gen_e_acsl_size_31); if (__gen_e_acsl_size_31 <= 0) __gen_e_acsl_if_31 = 0; - else __gen_e_acsl_if_31 = __gen_e_acsl_size_31; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0, + __gen_e_acsl_size_31); + __gen_e_acsl_if_31 = __gen_e_acsl_size_31; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "sizeof(double)",0,8); __gen_e_acsl_size_32 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0, + __gen_e_acsl_size_32); if (__gen_e_acsl_size_32 <= 0) __gen_e_acsl_if_32 = 0; - else __gen_e_acsl_if_32 = __gen_e_acsl_size_32; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0, + __gen_e_acsl_size_32); + __gen_e_acsl_if_32 = __gen_e_acsl_size_32; + } __gen_e_acsl_separated_13 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 0, __gen_e_acsl_if_31, (char *)array_0 + 8 * 5, __gen_e_acsl_if_32); - __e_acsl_assert(! __gen_e_acsl_separated_13,1,"Assertion","main", - "!\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))", - "tests/memory/separated.c",47); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41, + "\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))", + 0,__gen_e_acsl_separated_13); + __gen_e_acsl_assert_data_41.blocking = 1; + __gen_e_acsl_assert_data_41.kind = "Assertion"; + __gen_e_acsl_assert_data_41.pred_txt = "!\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))"; + __gen_e_acsl_assert_data_41.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_41.fct = "main"; + __gen_e_acsl_assert_data_41.line = 47; + __e_acsl_assert(! __gen_e_acsl_separated_13, + & __gen_e_acsl_assert_data_41); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_41); } - /*@ assert ¬\separated(array_0 + (0 .. 10), array_0 + (5 .. 15)); */ ; + /*@ assert !\separated(array_0 + (0 .. 10), array_0 + (5 .. 15)); */ ; { int __gen_e_acsl_size_33; int __gen_e_acsl_if_33; @@ -679,69 +1567,187 @@ int main(void) int __gen_e_acsl_size_36; int __gen_e_acsl_if_36; int __gen_e_acsl_separated_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_44 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_45 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_45,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45, + "sizeof(double)",0,8); __gen_e_acsl_size_33 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,"size",0, + __gen_e_acsl_size_33); if (__gen_e_acsl_size_33 <= 0) __gen_e_acsl_if_33 = 0; - else __gen_e_acsl_if_33 = __gen_e_acsl_size_33; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,"size",0, + __gen_e_acsl_size_33); + __gen_e_acsl_if_33 = __gen_e_acsl_size_33; + } __gen_e_acsl_valid_read_31 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_33, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_31,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 19))", - "tests/memory/separated.c",48); + __gen_e_acsl_assert_data_45.blocking = 1; + __gen_e_acsl_assert_data_45.kind = "RTE"; + __gen_e_acsl_assert_data_45.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))"; + __gen_e_acsl_assert_data_45.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_45.fct = "main"; + __gen_e_acsl_assert_data_45.line = 48; + __e_acsl_assert(__gen_e_acsl_valid_read_31, + & __gen_e_acsl_assert_data_45); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_45); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_46 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_46,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46, + "sizeof(double)",0,8); __gen_e_acsl_size_34 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0, + __gen_e_acsl_size_34); if (__gen_e_acsl_size_34 <= 0) __gen_e_acsl_if_34 = 0; - else __gen_e_acsl_if_34 = __gen_e_acsl_size_34; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0, + __gen_e_acsl_size_34); + __gen_e_acsl_if_34 = __gen_e_acsl_size_34; + } __gen_e_acsl_valid_read_32 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 5), (size_t)__gen_e_acsl_if_34, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_32,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (5 .. 15))", - "tests/memory/separated.c",48); + __gen_e_acsl_assert_data_46.blocking = 1; + __gen_e_acsl_assert_data_46.kind = "RTE"; + __gen_e_acsl_assert_data_46.pred_txt = "separated_guard: \\valid_read(array_0 + (5 .. 15))"; + __gen_e_acsl_assert_data_46.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_46.fct = "main"; + __gen_e_acsl_assert_data_46.line = 48; + __e_acsl_assert(__gen_e_acsl_valid_read_32, + & __gen_e_acsl_assert_data_46); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_46); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "sizeof(double)",0,8); __gen_e_acsl_size_35 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0, + __gen_e_acsl_size_35); if (__gen_e_acsl_size_35 <= 0) __gen_e_acsl_if_35 = 0; - else __gen_e_acsl_if_35 = __gen_e_acsl_size_35; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0, + __gen_e_acsl_size_35); + __gen_e_acsl_if_35 = __gen_e_acsl_size_35; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "sizeof(double)",0,8); __gen_e_acsl_size_36 = 8 * ((15 - 5) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0, + __gen_e_acsl_size_36); if (__gen_e_acsl_size_36 <= 0) __gen_e_acsl_if_36 = 0; - else __gen_e_acsl_if_36 = __gen_e_acsl_size_36; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0, + __gen_e_acsl_size_36); + __gen_e_acsl_if_36 = __gen_e_acsl_size_36; + } __gen_e_acsl_separated_14 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 0, __gen_e_acsl_if_35, (char *)array_0 + 8 * 5, __gen_e_acsl_if_36); - __e_acsl_assert(! __gen_e_acsl_separated_14,1,"Assertion","main", - "!\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))", - "tests/memory/separated.c",48); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44, + "\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))", + 0,__gen_e_acsl_separated_14); + __gen_e_acsl_assert_data_44.blocking = 1; + __gen_e_acsl_assert_data_44.kind = "Assertion"; + __gen_e_acsl_assert_data_44.pred_txt = "!\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))"; + __gen_e_acsl_assert_data_44.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_44.fct = "main"; + __gen_e_acsl_assert_data_44.line = 48; + __e_acsl_assert(! __gen_e_acsl_separated_14, + & __gen_e_acsl_assert_data_44); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_44); } - /*@ assert ¬\separated(array_0 + (0 .. 19), array_0 + (5 .. 15)); */ ; + /*@ assert !\separated(array_0 + (0 .. 19), array_0 + (5 .. 15)); */ ; { int __gen_e_acsl_valid_read_33; int __gen_e_acsl_valid_read_34; int __gen_e_acsl_separated_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_47 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_48 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_48,"array_0", + (void *)array_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_48, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read_33 = __e_acsl_valid_read((void *)(array_0 + 0), sizeof(double), (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_33,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + 0)", - "tests/memory/separated.c",49); + __gen_e_acsl_assert_data_48.blocking = 1; + __gen_e_acsl_assert_data_48.kind = "RTE"; + __gen_e_acsl_assert_data_48.pred_txt = "separated_guard: \\valid_read(array_0 + 0)"; + __gen_e_acsl_assert_data_48.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_48.fct = "main"; + __gen_e_acsl_assert_data_48.line = 49; + __e_acsl_assert(__gen_e_acsl_valid_read_33, + & __gen_e_acsl_assert_data_48); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_48); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_49 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_49,"array_0", + (void *)array_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_49, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read_34 = __e_acsl_valid_read((void *)(array_0 + 1), sizeof(double), (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_34,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + 1)", - "tests/memory/separated.c",49); + __gen_e_acsl_assert_data_49.blocking = 1; + __gen_e_acsl_assert_data_49.kind = "RTE"; + __gen_e_acsl_assert_data_49.pred_txt = "separated_guard: \\valid_read(array_0 + 1)"; + __gen_e_acsl_assert_data_49.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_49.fct = "main"; + __gen_e_acsl_assert_data_49.line = 49; + __e_acsl_assert(__gen_e_acsl_valid_read_34, + & __gen_e_acsl_assert_data_49); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_49); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"array_0", + (void *)array_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_47, + "sizeof(double)",0,sizeof(double)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"array_0", + (void *)array_0); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_47, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_separated_15 = __e_acsl_separated((size_t)2,array_0 + 0, sizeof(double), array_0 + 1, sizeof(double)); - __e_acsl_assert(__gen_e_acsl_separated_15,1,"Assertion","main", - "\\separated(array_0 + 0, array_0 + 1)", - "tests/memory/separated.c",49); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47, + "\\separated(array_0 + 0, array_0 + 1)",0, + __gen_e_acsl_separated_15); + __gen_e_acsl_assert_data_47.blocking = 1; + __gen_e_acsl_assert_data_47.kind = "Assertion"; + __gen_e_acsl_assert_data_47.pred_txt = "\\separated(array_0 + 0, array_0 + 1)"; + __gen_e_acsl_assert_data_47.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_47.fct = "main"; + __gen_e_acsl_assert_data_47.line = 49; + __e_acsl_assert(__gen_e_acsl_separated_15, + & __gen_e_acsl_assert_data_47); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_47); } /*@ assert \separated(array_0 + 0, array_0 + 1); */ ; { @@ -756,44 +1762,119 @@ int main(void) int __gen_e_acsl_size_40; int __gen_e_acsl_if_40; int __gen_e_acsl_separated_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_50 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_51 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_51,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51, + "sizeof(double)",0,8); __gen_e_acsl_size_37 = 8 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0, + __gen_e_acsl_size_37); if (__gen_e_acsl_size_37 <= 0) __gen_e_acsl_if_37 = 0; - else __gen_e_acsl_if_37 = __gen_e_acsl_size_37; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0, + __gen_e_acsl_size_37); + __gen_e_acsl_if_37 = __gen_e_acsl_size_37; + } __gen_e_acsl_valid_read_35 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_37, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_35,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 1))", - "tests/memory/separated.c",50); + __gen_e_acsl_assert_data_51.blocking = 1; + __gen_e_acsl_assert_data_51.kind = "RTE"; + __gen_e_acsl_assert_data_51.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 1))"; + __gen_e_acsl_assert_data_51.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_51.fct = "main"; + __gen_e_acsl_assert_data_51.line = 50; + __e_acsl_assert(__gen_e_acsl_valid_read_35, + & __gen_e_acsl_assert_data_51); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_51); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_52 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_52,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52, + "sizeof(double)",0,8); __gen_e_acsl_size_38 = 8 * ((2 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,"size",0, + __gen_e_acsl_size_38); if (__gen_e_acsl_size_38 <= 0) __gen_e_acsl_if_38 = 0; - else __gen_e_acsl_if_38 = __gen_e_acsl_size_38; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,"size",0, + __gen_e_acsl_size_38); + __gen_e_acsl_if_38 = __gen_e_acsl_size_38; + } __gen_e_acsl_valid_read_36 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 1), (size_t)__gen_e_acsl_if_38, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_36,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (1 .. 2))", - "tests/memory/separated.c",50); + __gen_e_acsl_assert_data_52.blocking = 1; + __gen_e_acsl_assert_data_52.kind = "RTE"; + __gen_e_acsl_assert_data_52.pred_txt = "separated_guard: \\valid_read(array_0 + (1 .. 2))"; + __gen_e_acsl_assert_data_52.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_52.fct = "main"; + __gen_e_acsl_assert_data_52.line = 50; + __e_acsl_assert(__gen_e_acsl_valid_read_36, + & __gen_e_acsl_assert_data_52); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_52); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "sizeof(double)",0,8); __gen_e_acsl_size_39 = 8 * ((1 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_39); if (__gen_e_acsl_size_39 <= 0) __gen_e_acsl_if_39 = 0; - else __gen_e_acsl_if_39 = __gen_e_acsl_size_39; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_39); + __gen_e_acsl_if_39 = __gen_e_acsl_size_39; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "sizeof(double)",0,8); __gen_e_acsl_size_40 = 8 * ((2 - 1) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_40); if (__gen_e_acsl_size_40 <= 0) __gen_e_acsl_if_40 = 0; - else __gen_e_acsl_if_40 = __gen_e_acsl_size_40; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0, + __gen_e_acsl_size_40); + __gen_e_acsl_if_40 = __gen_e_acsl_size_40; + } __gen_e_acsl_separated_16 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 0, __gen_e_acsl_if_39, (char *)array_0 + 8 * 1, __gen_e_acsl_if_40); - __e_acsl_assert(! __gen_e_acsl_separated_16,1,"Assertion","main", - "!\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))", - "tests/memory/separated.c",50); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50, + "\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))", + 0,__gen_e_acsl_separated_16); + __gen_e_acsl_assert_data_50.blocking = 1; + __gen_e_acsl_assert_data_50.kind = "Assertion"; + __gen_e_acsl_assert_data_50.pred_txt = "!\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))"; + __gen_e_acsl_assert_data_50.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_50.fct = "main"; + __gen_e_acsl_assert_data_50.line = 50; + __e_acsl_assert(! __gen_e_acsl_separated_16, + & __gen_e_acsl_assert_data_50); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_50); } - /*@ assert ¬\separated(array_0 + (0 .. 1), array_0 + (1 .. 2)); */ ; + /*@ assert !\separated(array_0 + (0 .. 1), array_0 + (1 .. 2)); */ ; { int __gen_e_acsl_size_41; int __gen_e_acsl_if_41; @@ -806,42 +1887,117 @@ int main(void) int __gen_e_acsl_size_44; int __gen_e_acsl_if_44; int __gen_e_acsl_separated_17; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_53 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_54 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_54,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54, + "sizeof(double)",0,8); __gen_e_acsl_size_41 = 8 * ((5 - 15) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,"size",0, + __gen_e_acsl_size_41); if (__gen_e_acsl_size_41 <= 0) __gen_e_acsl_if_41 = 0; - else __gen_e_acsl_if_41 = __gen_e_acsl_size_41; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,"size",0, + __gen_e_acsl_size_41); + __gen_e_acsl_if_41 = __gen_e_acsl_size_41; + } __gen_e_acsl_valid_read_37 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 15), (size_t)__gen_e_acsl_if_41, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_37,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (15 .. 5))", - "tests/memory/separated.c",51); + __gen_e_acsl_assert_data_54.blocking = 1; + __gen_e_acsl_assert_data_54.kind = "RTE"; + __gen_e_acsl_assert_data_54.pred_txt = "separated_guard: \\valid_read(array_0 + (15 .. 5))"; + __gen_e_acsl_assert_data_54.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_54.fct = "main"; + __gen_e_acsl_assert_data_54.line = 51; + __e_acsl_assert(__gen_e_acsl_valid_read_37, + & __gen_e_acsl_assert_data_54); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_54); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_55 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_55,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55, + "sizeof(double)",0,8); __gen_e_acsl_size_42 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,"size",0, + __gen_e_acsl_size_42); if (__gen_e_acsl_size_42 <= 0) __gen_e_acsl_if_42 = 0; - else __gen_e_acsl_if_42 = __gen_e_acsl_size_42; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,"size",0, + __gen_e_acsl_size_42); + __gen_e_acsl_if_42 = __gen_e_acsl_size_42; + } __gen_e_acsl_valid_read_38 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_42, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_38,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 19))", - "tests/memory/separated.c",51); + __gen_e_acsl_assert_data_55.blocking = 1; + __gen_e_acsl_assert_data_55.kind = "RTE"; + __gen_e_acsl_assert_data_55.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))"; + __gen_e_acsl_assert_data_55.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_55.fct = "main"; + __gen_e_acsl_assert_data_55.line = 51; + __e_acsl_assert(__gen_e_acsl_valid_read_38, + & __gen_e_acsl_assert_data_55); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_55); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "sizeof(double)",0,8); __gen_e_acsl_size_43 = 8 * ((5 - 15) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0, + __gen_e_acsl_size_43); if (__gen_e_acsl_size_43 <= 0) __gen_e_acsl_if_43 = 0; - else __gen_e_acsl_if_43 = __gen_e_acsl_size_43; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0, + __gen_e_acsl_size_43); + __gen_e_acsl_if_43 = __gen_e_acsl_size_43; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "sizeof(double)",0,8); __gen_e_acsl_size_44 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0, + __gen_e_acsl_size_44); if (__gen_e_acsl_size_44 <= 0) __gen_e_acsl_if_44 = 0; - else __gen_e_acsl_if_44 = __gen_e_acsl_size_44; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0, + __gen_e_acsl_size_44); + __gen_e_acsl_if_44 = __gen_e_acsl_size_44; + } __gen_e_acsl_separated_17 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 15, __gen_e_acsl_if_43, (char *)array_0 + 8 * 0, __gen_e_acsl_if_44); - __e_acsl_assert(__gen_e_acsl_separated_17,1,"Assertion","main", - "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))", - "tests/memory/separated.c",51); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53, + "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))", + 0,__gen_e_acsl_separated_17); + __gen_e_acsl_assert_data_53.blocking = 1; + __gen_e_acsl_assert_data_53.kind = "Assertion"; + __gen_e_acsl_assert_data_53.pred_txt = "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))"; + __gen_e_acsl_assert_data_53.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_53.fct = "main"; + __gen_e_acsl_assert_data_53.line = 51; + __e_acsl_assert(__gen_e_acsl_separated_17, + & __gen_e_acsl_assert_data_53); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_53); } /*@ assert \separated(array_0 + (15 .. 5), array_0 + (0 .. 19)); */ ; { @@ -856,42 +2012,117 @@ int main(void) int __gen_e_acsl_size_48; int __gen_e_acsl_if_48; int __gen_e_acsl_separated_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_56 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_57 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_57,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57, + "sizeof(double)",0,8); __gen_e_acsl_size_45 = 8 * ((-3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,"size",0, + __gen_e_acsl_size_45); if (__gen_e_acsl_size_45 <= 0) __gen_e_acsl_if_45 = 0; - else __gen_e_acsl_if_45 = __gen_e_acsl_size_45; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,"size",0, + __gen_e_acsl_size_45); + __gen_e_acsl_if_45 = __gen_e_acsl_size_45; + } __gen_e_acsl_valid_read_39 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_45, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_39,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. -3))", - "tests/memory/separated.c",52); + __gen_e_acsl_assert_data_57.blocking = 1; + __gen_e_acsl_assert_data_57.kind = "RTE"; + __gen_e_acsl_assert_data_57.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. -3))"; + __gen_e_acsl_assert_data_57.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_57.fct = "main"; + __gen_e_acsl_assert_data_57.line = 52; + __e_acsl_assert(__gen_e_acsl_valid_read_39, + & __gen_e_acsl_assert_data_57); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_57); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_58 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_58,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58, + "sizeof(double)",0,8); __gen_e_acsl_size_46 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,"size",0, + __gen_e_acsl_size_46); if (__gen_e_acsl_size_46 <= 0) __gen_e_acsl_if_46 = 0; - else __gen_e_acsl_if_46 = __gen_e_acsl_size_46; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,"size",0, + __gen_e_acsl_size_46); + __gen_e_acsl_if_46 = __gen_e_acsl_size_46; + } __gen_e_acsl_valid_read_40 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), (size_t)__gen_e_acsl_if_46, (void *)array_0, (void *)(& array_0)); - __e_acsl_assert(__gen_e_acsl_valid_read_40,1,"RTE","main", - "separated_guard: \\valid_read(array_0 + (0 .. 19))", - "tests/memory/separated.c",52); + __gen_e_acsl_assert_data_58.blocking = 1; + __gen_e_acsl_assert_data_58.kind = "RTE"; + __gen_e_acsl_assert_data_58.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))"; + __gen_e_acsl_assert_data_58.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_58.fct = "main"; + __gen_e_acsl_assert_data_58.line = 52; + __e_acsl_assert(__gen_e_acsl_valid_read_40, + & __gen_e_acsl_assert_data_58); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_58); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "sizeof(double)",0,8); __gen_e_acsl_size_47 = 8 * ((-3 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0, + __gen_e_acsl_size_47); if (__gen_e_acsl_size_47 <= 0) __gen_e_acsl_if_47 = 0; - else __gen_e_acsl_if_47 = __gen_e_acsl_size_47; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0, + __gen_e_acsl_size_47); + __gen_e_acsl_if_47 = __gen_e_acsl_size_47; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"array_0", + (void *)array_0); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "sizeof(double)",0,8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "sizeof(double)",0,8); __gen_e_acsl_size_48 = 8 * ((19 - 0) + 1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0, + __gen_e_acsl_size_48); if (__gen_e_acsl_size_48 <= 0) __gen_e_acsl_if_48 = 0; - else __gen_e_acsl_if_48 = __gen_e_acsl_size_48; + else { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0, + __gen_e_acsl_size_48); + __gen_e_acsl_if_48 = __gen_e_acsl_size_48; + } __gen_e_acsl_separated_18 = __e_acsl_separated((size_t)2, (char *)array_0 + 8 * 0, __gen_e_acsl_if_47, (char *)array_0 + 8 * 0, __gen_e_acsl_if_48); - __e_acsl_assert(__gen_e_acsl_separated_18,1,"Assertion","main", - "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))", - "tests/memory/separated.c",52); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56, + "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))", + 0,__gen_e_acsl_separated_18); + __gen_e_acsl_assert_data_56.blocking = 1; + __gen_e_acsl_assert_data_56.kind = "Assertion"; + __gen_e_acsl_assert_data_56.pred_txt = "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))"; + __gen_e_acsl_assert_data_56.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_56.fct = "main"; + __gen_e_acsl_assert_data_56.line = 52; + __e_acsl_assert(__gen_e_acsl_separated_18, + & __gen_e_acsl_assert_data_56); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_56); } /*@ assert \separated(array_0 + (0 .. -3), array_0 + (0 .. 19)); */ ; free((void *)array_0); @@ -910,6 +2141,10 @@ int main(void) int __gen_e_acsl_range_3; int __gen_e_acsl_forall_4; int __gen_e_acsl_range_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_59 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_60 = + {.values = (void *)0}; __gen_e_acsl_forall = 1; __gen_e_acsl_range = 0; while (1) { @@ -929,9 +2164,15 @@ int main(void) __gen_e_acsl_range ++; } e_acsl_end_loop1: ; - __e_acsl_assert(__gen_e_acsl_forall,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_60.blocking = 1; + __gen_e_acsl_assert_data_60.kind = "RTE"; + __gen_e_acsl_assert_data_60.pred_txt = "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])"; + __gen_e_acsl_assert_data_60.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_60.fct = "main"; + __gen_e_acsl_assert_data_60.line = 60; + __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_60); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_61 = + {.values = (void *)0}; __gen_e_acsl_forall_2 = 1; __gen_e_acsl_range_2 = 3; while (1) { @@ -951,9 +2192,15 @@ int main(void) __gen_e_acsl_range_2 ++; } e_acsl_end_loop2: ; - __e_acsl_assert(__gen_e_acsl_forall_2,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][3 .. 5][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_61.blocking = 1; + __gen_e_acsl_assert_data_61.kind = "RTE"; + __gen_e_acsl_assert_data_61.pred_txt = "separated_guard: \\valid_read(&array_1[0][3 .. 5][0])"; + __gen_e_acsl_assert_data_61.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_61.fct = "main"; + __gen_e_acsl_assert_data_61.line = 60; + __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_61); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_62 = + {.values = (void *)0}; __gen_e_acsl_forall_3 = 1; __gen_e_acsl_range_3 = 6; while (1) { @@ -973,9 +2220,13 @@ int main(void) __gen_e_acsl_range_3 ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall_3,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][6 .. 9][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_62.blocking = 1; + __gen_e_acsl_assert_data_62.kind = "RTE"; + __gen_e_acsl_assert_data_62.pred_txt = "separated_guard: \\valid_read(&array_1[0][6 .. 9][0])"; + __gen_e_acsl_assert_data_62.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_62.fct = "main"; + __gen_e_acsl_assert_data_62.line = 60; + __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_62); __gen_e_acsl_forall_4 = 1; __gen_e_acsl_range_4 = 6; while (1) { @@ -999,27 +2250,69 @@ int main(void) int __gen_e_acsl_valid_read_45; int __gen_e_acsl_valid_read_46; int __gen_e_acsl_separated_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_63 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_63, + "&array_1[0][range_6][0]", + (void *)(& array_1[0][__gen_e_acsl_range_6][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_63, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_44 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_6][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_44,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][range_6][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_63.blocking = 1; + __gen_e_acsl_assert_data_63.kind = "RTE"; + __gen_e_acsl_assert_data_63.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_6][0])"; + __gen_e_acsl_assert_data_63.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_63.fct = "main"; + __gen_e_acsl_assert_data_63.line = 60; + __e_acsl_assert(__gen_e_acsl_valid_read_44, + & __gen_e_acsl_assert_data_63); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_63); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_64 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_64, + "&array_1[0][range_5][0]", + (void *)(& array_1[0][__gen_e_acsl_range_5][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_64, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_45 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_5][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_45,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][range_5][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_64.blocking = 1; + __gen_e_acsl_assert_data_64.kind = "RTE"; + __gen_e_acsl_assert_data_64.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_5][0])"; + __gen_e_acsl_assert_data_64.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_64.fct = "main"; + __gen_e_acsl_assert_data_64.line = 60; + __e_acsl_assert(__gen_e_acsl_valid_read_45, + & __gen_e_acsl_assert_data_64); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_64); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_65 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_65, + "&array_1[0][range_4][0]", + (void *)(& array_1[0][__gen_e_acsl_range_4][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_65, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_46 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_4][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_46,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][range_4][0])", - "tests/memory/separated.c",60); + __gen_e_acsl_assert_data_65.blocking = 1; + __gen_e_acsl_assert_data_65.kind = "RTE"; + __gen_e_acsl_assert_data_65.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_4][0])"; + __gen_e_acsl_assert_data_65.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_65.fct = "main"; + __gen_e_acsl_assert_data_65.line = 60; + __e_acsl_assert(__gen_e_acsl_valid_read_46, + & __gen_e_acsl_assert_data_65); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_65); __gen_e_acsl_separated_19 = __e_acsl_separated((size_t)3, & array_1[0][__gen_e_acsl_range_6][0], sizeof(double), @@ -1054,9 +2347,20 @@ int main(void) __gen_e_acsl_range_4 ++; } e_acsl_end_loop6: ; - __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main", - "\\separated(\n &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n )", - "tests/memory/separated.c",60); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59, + "\\forall integer range_4;\n 6 <= range_4 <= 9 ==>\n (\\forall integer range_5;\n 3 <= range_5 <= 5 ==>\n (\\forall integer range_6;\n 0 <= range_6 <= 2 ==>\n \\separated(\n &array_1[0][range_6][0], &array_1[0][range_5][0],\n &array_1[0][range_4][0]\n )))", + 0,__gen_e_acsl_forall_4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59, + "\\separated(\n &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n )", + 0,__gen_e_acsl_forall_4); + __gen_e_acsl_assert_data_59.blocking = 1; + __gen_e_acsl_assert_data_59.kind = "Assertion"; + __gen_e_acsl_assert_data_59.pred_txt = "\\separated(\n &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n )"; + __gen_e_acsl_assert_data_59.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_59.fct = "main"; + __gen_e_acsl_assert_data_59.line = 60; + __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_59); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_59); } /*@ assert @@ -1074,6 +2378,10 @@ int main(void) int __gen_e_acsl_range_9; int __gen_e_acsl_forall_10; int __gen_e_acsl_range_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_66 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_67 = + {.values = (void *)0}; __gen_e_acsl_forall_7 = 1; __gen_e_acsl_range_7 = 0; while (1) { @@ -1093,9 +2401,15 @@ int main(void) __gen_e_acsl_range_7 ++; } e_acsl_end_loop7: ; - __e_acsl_assert(__gen_e_acsl_forall_7,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_67.blocking = 1; + __gen_e_acsl_assert_data_67.kind = "RTE"; + __gen_e_acsl_assert_data_67.pred_txt = "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])"; + __gen_e_acsl_assert_data_67.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_67.fct = "main"; + __gen_e_acsl_assert_data_67.line = 61; + __e_acsl_assert(__gen_e_acsl_forall_7,& __gen_e_acsl_assert_data_67); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_68 = + {.values = (void *)0}; __gen_e_acsl_forall_8 = 1; __gen_e_acsl_range_8 = 0; while (1) { @@ -1115,9 +2429,15 @@ int main(void) __gen_e_acsl_range_8 ++; } e_acsl_end_loop8: ; - __e_acsl_assert(__gen_e_acsl_forall_8,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[1][0 .. 2][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_68.blocking = 1; + __gen_e_acsl_assert_data_68.kind = "RTE"; + __gen_e_acsl_assert_data_68.pred_txt = "separated_guard: \\valid_read(&array_1[1][0 .. 2][0])"; + __gen_e_acsl_assert_data_68.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_68.fct = "main"; + __gen_e_acsl_assert_data_68.line = 61; + __e_acsl_assert(__gen_e_acsl_forall_8,& __gen_e_acsl_assert_data_68); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_69 = + {.values = (void *)0}; __gen_e_acsl_forall_9 = 1; __gen_e_acsl_range_9 = 0; while (1) { @@ -1137,9 +2457,13 @@ int main(void) __gen_e_acsl_range_9 ++; } e_acsl_end_loop9: ; - __e_acsl_assert(__gen_e_acsl_forall_9,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[2][0 .. 2][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_69.blocking = 1; + __gen_e_acsl_assert_data_69.kind = "RTE"; + __gen_e_acsl_assert_data_69.pred_txt = "separated_guard: \\valid_read(&array_1[2][0 .. 2][0])"; + __gen_e_acsl_assert_data_69.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_69.fct = "main"; + __gen_e_acsl_assert_data_69.line = 61; + __e_acsl_assert(__gen_e_acsl_forall_9,& __gen_e_acsl_assert_data_69); __gen_e_acsl_forall_10 = 1; __gen_e_acsl_range_10 = 0; while (1) { @@ -1163,27 +2487,69 @@ int main(void) int __gen_e_acsl_valid_read_51; int __gen_e_acsl_valid_read_52; int __gen_e_acsl_separated_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_70 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_70, + "&array_1[0][range_12][0]", + (void *)(& array_1[0][__gen_e_acsl_range_12][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_70, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_50 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_12][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_50,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0][range_12][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_70.blocking = 1; + __gen_e_acsl_assert_data_70.kind = "RTE"; + __gen_e_acsl_assert_data_70.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_12][0])"; + __gen_e_acsl_assert_data_70.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_70.fct = "main"; + __gen_e_acsl_assert_data_70.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_read_50, + & __gen_e_acsl_assert_data_70); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_70); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_71 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_71, + "&array_1[1][range_11][0]", + (void *)(& array_1[1][__gen_e_acsl_range_11][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_71, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_51 = __e_acsl_valid_read((void *)(& array_1[1][__gen_e_acsl_range_11][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_51,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[1][range_11][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_71.blocking = 1; + __gen_e_acsl_assert_data_71.kind = "RTE"; + __gen_e_acsl_assert_data_71.pred_txt = "separated_guard: \\valid_read(&array_1[1][range_11][0])"; + __gen_e_acsl_assert_data_71.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_71.fct = "main"; + __gen_e_acsl_assert_data_71.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_read_51, + & __gen_e_acsl_assert_data_71); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_71); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_72 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_72, + "&array_1[2][range_10][0]", + (void *)(& array_1[2][__gen_e_acsl_range_10][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_72, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_52 = __e_acsl_valid_read((void *)(& array_1[2][__gen_e_acsl_range_10][0]), sizeof(double), (void *)(& array_1[0][0][0]), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_52,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[2][range_10][0])", - "tests/memory/separated.c",61); + __gen_e_acsl_assert_data_72.blocking = 1; + __gen_e_acsl_assert_data_72.kind = "RTE"; + __gen_e_acsl_assert_data_72.pred_txt = "separated_guard: \\valid_read(&array_1[2][range_10][0])"; + __gen_e_acsl_assert_data_72.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_72.fct = "main"; + __gen_e_acsl_assert_data_72.line = 61; + __e_acsl_assert(__gen_e_acsl_valid_read_52, + & __gen_e_acsl_assert_data_72); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_72); __gen_e_acsl_separated_20 = __e_acsl_separated((size_t)3, & array_1[0][__gen_e_acsl_range_12][0], sizeof(double), @@ -1218,9 +2584,20 @@ int main(void) __gen_e_acsl_range_10 ++; } e_acsl_end_loop12: ; - __e_acsl_assert(__gen_e_acsl_forall_10,1,"Assertion","main", - "\\separated(\n &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n )", - "tests/memory/separated.c",61); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_66, + "\\forall integer range_10;\n 0 <= range_10 <= 2 ==>\n (\\forall integer range_11;\n 0 <= range_11 <= 2 ==>\n (\\forall integer range_12;\n 0 <= range_12 <= 2 ==>\n \\separated(\n &array_1[0][range_12][0], &array_1[1][range_11][0],\n &array_1[2][range_10][0]\n )))", + 0,__gen_e_acsl_forall_10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_66, + "\\separated(\n &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n )", + 0,__gen_e_acsl_forall_10); + __gen_e_acsl_assert_data_66.blocking = 1; + __gen_e_acsl_assert_data_66.kind = "Assertion"; + __gen_e_acsl_assert_data_66.pred_txt = "\\separated(\n &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n )"; + __gen_e_acsl_assert_data_66.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_66.fct = "main"; + __gen_e_acsl_assert_data_66.line = 61; + __e_acsl_assert(__gen_e_acsl_forall_10,& __gen_e_acsl_assert_data_66); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_66); } /*@ assert @@ -1236,6 +2613,10 @@ int main(void) int __gen_e_acsl_range_16; int __gen_e_acsl_forall_17; int __gen_e_acsl_range_18; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_73 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_74 = + {.values = (void *)0}; __gen_e_acsl_forall_13 = 1; __gen_e_acsl_range_14 = 0; while (1) { @@ -1271,9 +2652,15 @@ int main(void) __gen_e_acsl_range_14 ++; } e_acsl_end_loop14: ; - __e_acsl_assert(__gen_e_acsl_forall_13,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0 .. 2][0 .. 2][0])", - "tests/memory/separated.c",62); + __gen_e_acsl_assert_data_74.blocking = 1; + __gen_e_acsl_assert_data_74.kind = "RTE"; + __gen_e_acsl_assert_data_74.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 2][0 .. 2][0])"; + __gen_e_acsl_assert_data_74.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_74.fct = "main"; + __gen_e_acsl_assert_data_74.line = 62; + __e_acsl_assert(__gen_e_acsl_forall_13,& __gen_e_acsl_assert_data_74); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_75 = + {.values = (void *)0}; __gen_e_acsl_forall_15 = 1; __gen_e_acsl_range_16 = 3; while (1) { @@ -1309,9 +2696,13 @@ int main(void) __gen_e_acsl_range_16 ++; } e_acsl_end_loop16: ; - __e_acsl_assert(__gen_e_acsl_forall_15,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0 .. 2][3 .. 5][0])", - "tests/memory/separated.c",62); + __gen_e_acsl_assert_data_75.blocking = 1; + __gen_e_acsl_assert_data_75.kind = "RTE"; + __gen_e_acsl_assert_data_75.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 2][3 .. 5][0])"; + __gen_e_acsl_assert_data_75.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_75.fct = "main"; + __gen_e_acsl_assert_data_75.line = 62; + __e_acsl_assert(__gen_e_acsl_forall_15,& __gen_e_acsl_assert_data_75); __gen_e_acsl_forall_17 = 1; __gen_e_acsl_range_18 = 3; while (1) { @@ -1341,20 +2732,46 @@ int main(void) int __gen_e_acsl_valid_read_55; int __gen_e_acsl_valid_read_56; int __gen_e_acsl_separated_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_76 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_76, + "&array_1[range_19][range_20][0]", + (void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_76, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_55 = __e_acsl_valid_read ((void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0]), sizeof(double),(void *)(& array_1[0][0][0]),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_55,1,"RTE", - "main", - "separated_guard: \\valid_read(&array_1[range_19][range_20][0])", - "tests/memory/separated.c",62); + __gen_e_acsl_assert_data_76.blocking = 1; + __gen_e_acsl_assert_data_76.kind = "RTE"; + __gen_e_acsl_assert_data_76.pred_txt = "separated_guard: \\valid_read(&array_1[range_19][range_20][0])"; + __gen_e_acsl_assert_data_76.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_76.fct = "main"; + __gen_e_acsl_assert_data_76.line = 62; + __e_acsl_assert(__gen_e_acsl_valid_read_55, + & __gen_e_acsl_assert_data_76); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_76); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_77 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_77, + "&array_1[range_17][range_18][0]", + (void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_77, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_56 = __e_acsl_valid_read ((void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0]), sizeof(double),(void *)(& array_1[0][0][0]),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_56,1,"RTE", - "main", - "separated_guard: \\valid_read(&array_1[range_17][range_18][0])", - "tests/memory/separated.c",62); + __gen_e_acsl_assert_data_77.blocking = 1; + __gen_e_acsl_assert_data_77.kind = "RTE"; + __gen_e_acsl_assert_data_77.pred_txt = "separated_guard: \\valid_read(&array_1[range_17][range_18][0])"; + __gen_e_acsl_assert_data_77.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_77.fct = "main"; + __gen_e_acsl_assert_data_77.line = 62; + __e_acsl_assert(__gen_e_acsl_valid_read_56, + & __gen_e_acsl_assert_data_77); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_77); __gen_e_acsl_separated_21 = __e_acsl_separated((size_t)2, & array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0], sizeof(double), @@ -1396,9 +2813,20 @@ int main(void) __gen_e_acsl_range_18 ++; } e_acsl_end_loop20: ; - __e_acsl_assert(__gen_e_acsl_forall_17,1,"Assertion","main", - "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])", - "tests/memory/separated.c",62); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_73, + "\\forall integer range_18;\n 3 <= range_18 <= 5 ==>\n (\\forall integer range_17;\n 0 <= range_17 <= 2 ==>\n (\\forall integer range_20;\n 0 <= range_20 <= 2 ==>\n (\\forall integer range_19;\n 0 <= range_19 <= 2 ==>\n \\separated(\n &array_1[range_19][range_20][0], &array_1[range_17][range_18][0]\n ))))", + 0,__gen_e_acsl_forall_17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_73, + "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])", + 0,__gen_e_acsl_forall_17); + __gen_e_acsl_assert_data_73.blocking = 1; + __gen_e_acsl_assert_data_73.kind = "Assertion"; + __gen_e_acsl_assert_data_73.pred_txt = "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])"; + __gen_e_acsl_assert_data_73.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_73.fct = "main"; + __gen_e_acsl_assert_data_73.line = 62; + __e_acsl_assert(__gen_e_acsl_forall_17,& __gen_e_acsl_assert_data_73); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_73); } /*@ assert @@ -1411,6 +2839,10 @@ int main(void) int __gen_e_acsl_range_24; int __gen_e_acsl_forall_25; int __gen_e_acsl_range_26; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_78 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_79 = + {.values = (void *)0}; __gen_e_acsl_forall_21 = 1; __gen_e_acsl_range_22 = 0; while (1) { @@ -1446,9 +2878,15 @@ int main(void) __gen_e_acsl_range_22 ++; } e_acsl_end_loop22: ; - __e_acsl_assert(__gen_e_acsl_forall_21,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0 .. 3][0 .. 2][0])", - "tests/memory/separated.c",63); + __gen_e_acsl_assert_data_79.blocking = 1; + __gen_e_acsl_assert_data_79.kind = "RTE"; + __gen_e_acsl_assert_data_79.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 3][0 .. 2][0])"; + __gen_e_acsl_assert_data_79.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_79.fct = "main"; + __gen_e_acsl_assert_data_79.line = 63; + __e_acsl_assert(__gen_e_acsl_forall_21,& __gen_e_acsl_assert_data_79); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_80 = + {.values = (void *)0}; __gen_e_acsl_forall_23 = 1; __gen_e_acsl_range_24 = 0; while (1) { @@ -1484,9 +2922,13 @@ int main(void) __gen_e_acsl_range_24 ++; } e_acsl_end_loop24: ; - __e_acsl_assert(__gen_e_acsl_forall_23,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])", - "tests/memory/separated.c",63); + __gen_e_acsl_assert_data_80.blocking = 1; + __gen_e_acsl_assert_data_80.kind = "RTE"; + __gen_e_acsl_assert_data_80.pred_txt = "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])"; + __gen_e_acsl_assert_data_80.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_80.fct = "main"; + __gen_e_acsl_assert_data_80.line = 63; + __e_acsl_assert(__gen_e_acsl_forall_23,& __gen_e_acsl_assert_data_80); __gen_e_acsl_forall_25 = 1; __gen_e_acsl_range_26 = 0; while (1) { @@ -1516,20 +2958,46 @@ int main(void) int __gen_e_acsl_valid_read_59; int __gen_e_acsl_valid_read_60; int __gen_e_acsl_separated_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_81 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_81, + "&array_1[range_27][range_28][0]", + (void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_81, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_59 = __e_acsl_valid_read ((void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0]), sizeof(double),(void *)(& array_1[0][0][0]),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_59,1,"RTE", - "main", - "separated_guard: \\valid_read(&array_1[range_27][range_28][0])", - "tests/memory/separated.c",63); + __gen_e_acsl_assert_data_81.blocking = 1; + __gen_e_acsl_assert_data_81.kind = "RTE"; + __gen_e_acsl_assert_data_81.pred_txt = "separated_guard: \\valid_read(&array_1[range_27][range_28][0])"; + __gen_e_acsl_assert_data_81.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_81.fct = "main"; + __gen_e_acsl_assert_data_81.line = 63; + __e_acsl_assert(__gen_e_acsl_valid_read_59, + & __gen_e_acsl_assert_data_81); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_81); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_82 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_82, + "&array_1[range_25][range_26][0]", + (void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_82, + "sizeof(double)",0, + sizeof(double)); __gen_e_acsl_valid_read_60 = __e_acsl_valid_read ((void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0]), sizeof(double),(void *)(& array_1[0][0][0]),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_60,1,"RTE", - "main", - "separated_guard: \\valid_read(&array_1[range_25][range_26][0])", - "tests/memory/separated.c",63); + __gen_e_acsl_assert_data_82.blocking = 1; + __gen_e_acsl_assert_data_82.kind = "RTE"; + __gen_e_acsl_assert_data_82.pred_txt = "separated_guard: \\valid_read(&array_1[range_25][range_26][0])"; + __gen_e_acsl_assert_data_82.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_82.fct = "main"; + __gen_e_acsl_assert_data_82.line = 63; + __e_acsl_assert(__gen_e_acsl_valid_read_60, + & __gen_e_acsl_assert_data_82); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_82); __gen_e_acsl_separated_22 = __e_acsl_separated((size_t)2, & array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0], sizeof(double), @@ -1571,23 +3039,43 @@ int main(void) __gen_e_acsl_range_26 ++; } e_acsl_end_loop28: ; - __e_acsl_assert(! __gen_e_acsl_forall_25,1,"Assertion","main", - "!\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])", - "tests/memory/separated.c",63); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_78, + "\\forall integer range_26;\n 0 <= range_26 <= 2 ==>\n (\\forall integer range_25;\n 3 <= range_25 <= 5 ==>\n (\\forall integer range_28;\n 0 <= range_28 <= 2 ==>\n (\\forall integer range_27;\n 0 <= range_27 <= 3 ==>\n \\separated(\n &array_1[range_27][range_28][0], &array_1[range_25][range_26][0]\n ))))", + 0,__gen_e_acsl_forall_25); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_78, + "\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])", + 0,__gen_e_acsl_forall_25); + __gen_e_acsl_assert_data_78.blocking = 1; + __gen_e_acsl_assert_data_78.kind = "Assertion"; + __gen_e_acsl_assert_data_78.pred_txt = "!\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])"; + __gen_e_acsl_assert_data_78.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_78.fct = "main"; + __gen_e_acsl_assert_data_78.line = 63; + __e_acsl_assert(! __gen_e_acsl_forall_25,& __gen_e_acsl_assert_data_78); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_78); } /*@ assert - ¬\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0]); - */ + !\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0]); */ ; { int __gen_e_acsl_forall_29; int __gen_e_acsl_range_32; int __gen_e_acsl_forall_31; int __gen_e_acsl_range_34; - __e_acsl_assert(1,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[0 .. 3][2 .. 0][0])", - "tests/memory/separated.c",64); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_83 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_84 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_84.blocking = 1; + __gen_e_acsl_assert_data_84.kind = "RTE"; + __gen_e_acsl_assert_data_84.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 3][2 .. 0][0])"; + __gen_e_acsl_assert_data_84.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_84.fct = "main"; + __gen_e_acsl_assert_data_84.line = 64; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_84); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_85 = + {.values = (void *)0}; __gen_e_acsl_forall_29 = 1; __gen_e_acsl_range_32 = 0; while (1) { @@ -1623,9 +3111,13 @@ int main(void) __gen_e_acsl_range_32 ++; } e_acsl_end_loop30: ; - __e_acsl_assert(__gen_e_acsl_forall_29,1,"RTE","main", - "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])", - "tests/memory/separated.c",64); + __gen_e_acsl_assert_data_85.blocking = 1; + __gen_e_acsl_assert_data_85.kind = "RTE"; + __gen_e_acsl_assert_data_85.pred_txt = "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])"; + __gen_e_acsl_assert_data_85.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_85.fct = "main"; + __gen_e_acsl_assert_data_85.line = 64; + __e_acsl_assert(__gen_e_acsl_forall_29,& __gen_e_acsl_assert_data_85); __gen_e_acsl_forall_31 = 1; __gen_e_acsl_range_34 = 0; while (1) { @@ -1654,9 +3146,20 @@ int main(void) __gen_e_acsl_range_34 ++; } e_acsl_end_loop32: ; - __e_acsl_assert(__gen_e_acsl_forall_31,1,"Assertion","main", - "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])", - "tests/memory/separated.c",64); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_83, + "\\forall integer range_34;\n 0 <= range_34 <= 2 ==>\n (\\forall integer range_33;\n 3 <= range_33 <= 5 ==>\n (\\forall integer range_36;\n 2 <= range_36 <= 0 ==>\n (\\forall integer range_35;\n 0 <= range_35 <= 3 ==>\n \\separated(\n &array_1[range_35][range_36][0], &array_1[range_33][range_34][0]\n ))))", + 0,__gen_e_acsl_forall_31); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_83, + "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])", + 0,__gen_e_acsl_forall_31); + __gen_e_acsl_assert_data_83.blocking = 1; + __gen_e_acsl_assert_data_83.kind = "Assertion"; + __gen_e_acsl_assert_data_83.pred_txt = "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])"; + __gen_e_acsl_assert_data_83.file = "tests/memory/separated.c"; + __gen_e_acsl_assert_data_83.fct = "main"; + __gen_e_acsl_assert_data_83.line = 64; + __e_acsl_assert(__gen_e_acsl_forall_31,& __gen_e_acsl_assert_data_83); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_83); } /*@ assert diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c b/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c index 04238dc3f425095bb6201e4823a9092509c6484e..c6ca292189fef3219396b13b845e3fca55febedd 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c @@ -1,18 +1,32 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int x = 0; x ++; - __e_acsl_assert(1,1,"Assertion","main","sizeof(int) == sizeof(x)", - "tests/memory/sizeof.i",8); - /*@ assert sizeof(int) ≡ sizeof(x); */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0, + 4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(x)",0,4); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "sizeof(int) == sizeof(x)"; + __gen_e_acsl_assert_data.file = "tests/memory/sizeof.i"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(1,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ assert sizeof(int) == sizeof(x); */ ; __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c b/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c index 5cf83f209365a5a2030b660c350f5e6c0880a938..884675f470922a95c6901e670637a1d06277e2f4 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -33,26 +34,69 @@ int main(void) __e_acsl_globals_init(); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"__fc_stderr", + (void *)stderr); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(FILE)", + 0,sizeof(FILE)); __gen_e_acsl_valid = __e_acsl_valid((void *)stderr,sizeof(FILE), (void *)stderr,(void *)(& stderr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid(__fc_stderr)","tests/memory/stdout.c",8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(__fc_stderr)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(__fc_stderr)"; + __gen_e_acsl_assert_data.file = "tests/memory/stdout.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(__fc_stderr); */ ; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"__fc_stdin", + (void *)stdin); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(FILE)",0,sizeof(FILE)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stdin,sizeof(FILE), (void *)stdin,(void *)(& stdin)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main", - "\\valid(__fc_stdin)","tests/memory/stdout.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(__fc_stdin)",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(__fc_stdin)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/stdout.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 9; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(__fc_stdin); */ ; { int __gen_e_acsl_valid_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"__fc_stdout", + (void *)stdout); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(FILE)",0,sizeof(FILE)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)stdout,sizeof(FILE), (void *)stdout,(void *)(& stdout)); - __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","main", - "\\valid(__fc_stdout)","tests/memory/stdout.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(__fc_stdout)",0, + __gen_e_acsl_valid_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(__fc_stdout)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/stdout.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 10; + __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(__fc_stdout); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c b/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c index cfc1ad9048e8045e97dc8923de8b2dac5b084b8b..e57586b58c153dad717e55b0e25fcdbad42d082e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c @@ -19,60 +19,155 @@ int main(void) __e_acsl_store_block((void *)(& static_pair),(size_t)8); { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "&static_pair.a", + (void *)(& static_pair.a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& static_pair.a), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main", - "!\\initialized(&static_pair.a)", - "tests/memory/struct_initialized.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&static_pair.a)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&static_pair.a)"; + __gen_e_acsl_assert_data.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\initialized(&static_pair.a); */ ; + /*@ assert !\initialized(&static_pair.a); */ ; { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "&static_pair.b", + (void *)(& static_pair.b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& static_pair.b), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main", - "!\\initialized(&static_pair.b)", - "tests/memory/struct_initialized.c",14); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&static_pair.b)",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&static_pair.b)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(! __gen_e_acsl_initialized_2, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\initialized(&static_pair.b); */ ; + /*@ assert !\initialized(&static_pair.b); */ ; __e_acsl_initialize((void *)(& static_pair.a),sizeof(int32_t)); static_pair.a = 1; { int __gen_e_acsl_initialized_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3, + "&static_pair.a", + (void *)(& static_pair.a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& static_pair.a), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main", - "\\initialized(&static_pair.a)", - "tests/memory/struct_initialized.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&static_pair.a)",0, + __gen_e_acsl_initialized_3); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&static_pair.a)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 16; + __e_acsl_assert(__gen_e_acsl_initialized_3, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(&static_pair.a); */ ; { int __gen_e_acsl_initialized_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4, + "&static_pair.b", + (void *)(& static_pair.b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& static_pair.b), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main", - "!\\initialized(&static_pair.b)", - "tests/memory/struct_initialized.c",17); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&static_pair.b)",0, + __gen_e_acsl_initialized_4); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&static_pair.b)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 17; + __e_acsl_assert(! __gen_e_acsl_initialized_4, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\initialized(&static_pair.b); */ ; + /*@ assert !\initialized(&static_pair.b); */ ; __e_acsl_initialize((void *)(& static_pair.b),sizeof(int32_t)); static_pair.b = 2; { int __gen_e_acsl_initialized_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5, + "&static_pair.a", + (void *)(& static_pair.a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& static_pair.a), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main", - "\\initialized(&static_pair.a)", - "tests/memory/struct_initialized.c",19); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&static_pair.a)",0, + __gen_e_acsl_initialized_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&static_pair.a)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 19; + __e_acsl_assert(__gen_e_acsl_initialized_5, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \initialized(&static_pair.a); */ ; { int __gen_e_acsl_initialized_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6, + "&static_pair.b", + (void *)(& static_pair.b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& static_pair.b), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main", - "\\initialized(&static_pair.b)", - "tests/memory/struct_initialized.c",20); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&static_pair.b)",0, + __gen_e_acsl_initialized_6); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&static_pair.b)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 20; + __e_acsl_assert(__gen_e_acsl_initialized_6, + & __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \initialized(&static_pair.b); */ ; __e_acsl_delete_block((void *)(& static_pair)); @@ -83,60 +178,150 @@ int main(void) __e_acsl_full_init((void *)(& heap_pair)); { int __gen_e_acsl_initialized_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7, + "&heap_pair->a",(void *)(& heap_pair->a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& heap_pair->a), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main", - "!\\initialized(&heap_pair->a)", - "tests/memory/struct_initialized.c",26); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&heap_pair->a)",0, + __gen_e_acsl_initialized_7); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&heap_pair->a)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(! __gen_e_acsl_initialized_7, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } - /*@ assert ¬\initialized(&heap_pair->a); */ ; + /*@ assert !\initialized(&heap_pair->a); */ ; { int __gen_e_acsl_initialized_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "&heap_pair->b",(void *)(& heap_pair->b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& heap_pair->b), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main", - "!\\initialized(&heap_pair->b)", - "tests/memory/struct_initialized.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&heap_pair->b)",0, + __gen_e_acsl_initialized_8); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&heap_pair->b)"; + __gen_e_acsl_assert_data_8.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 27; + __e_acsl_assert(! __gen_e_acsl_initialized_8, + & __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\initialized(&heap_pair->b); */ ; + /*@ assert !\initialized(&heap_pair->b); */ ; __e_acsl_initialize((void *)(& heap_pair->a),sizeof(int32_t)); heap_pair->a = 3; { int __gen_e_acsl_initialized_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "&heap_pair->a",(void *)(& heap_pair->a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& heap_pair->a), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main", - "\\initialized(&heap_pair->a)", - "tests/memory/struct_initialized.c",29); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&heap_pair->a)",0, + __gen_e_acsl_initialized_9); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&heap_pair->a)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 29; + __e_acsl_assert(__gen_e_acsl_initialized_9, + & __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \initialized(&heap_pair->a); */ ; { int __gen_e_acsl_initialized_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10, + "&heap_pair->b",(void *)(& heap_pair->b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& heap_pair->b), sizeof(int32_t)); - __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main", - "!\\initialized(&heap_pair->b)", - "tests/memory/struct_initialized.c",30); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&heap_pair->b)",0, + __gen_e_acsl_initialized_10); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&heap_pair->b)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 30; + __e_acsl_assert(! __gen_e_acsl_initialized_10, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } - /*@ assert ¬\initialized(&heap_pair->b); */ ; + /*@ assert !\initialized(&heap_pair->b); */ ; __e_acsl_initialize((void *)(& heap_pair->b),sizeof(int32_t)); heap_pair->b = 4; { int __gen_e_acsl_initialized_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11, + "&heap_pair->a",(void *)(& heap_pair->a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& heap_pair->a), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main", - "\\initialized(&heap_pair->a)", - "tests/memory/struct_initialized.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(&heap_pair->a)",0, + __gen_e_acsl_initialized_11); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&heap_pair->a)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 32; + __e_acsl_assert(__gen_e_acsl_initialized_11, + & __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \initialized(&heap_pair->a); */ ; { int __gen_e_acsl_initialized_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12, + "&heap_pair->b",(void *)(& heap_pair->b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int32_t)",0,sizeof(int32_t)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& heap_pair->b), sizeof(int32_t)); - __e_acsl_assert(__gen_e_acsl_initialized_12,1,"Assertion","main", - "\\initialized(&heap_pair->b)", - "tests/memory/struct_initialized.c",33); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12, + "\\initialized(&heap_pair->b)",0, + __gen_e_acsl_initialized_12); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "Assertion"; + __gen_e_acsl_assert_data_12.pred_txt = "\\initialized(&heap_pair->b)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/struct_initialized.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 33; + __e_acsl_assert(__gen_e_acsl_initialized_12, + & __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); } /*@ assert \initialized(&heap_pair->b); */ ; __e_acsl_delete_block((void *)(& heap_pair)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c index 78e7579f2309606b261436cfc0fabe82d513e995..adbf4ab8e58422b6f7025499d284945b3531f213 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -18,27 +19,59 @@ int *f(int *x) int __gen_e_acsl_initialized; int __gen_e_acsl_and; __e_acsl_store_block((void *)(& x),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&y", + (void *)(& y)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& y), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&y)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"y",(void *)y); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)y,sizeof(int),(void *)y, (void *)(& y)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(y)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","f","!\\valid(y)", - "tests/memory/valid.c",13); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(y)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(y); */ ; + /*@ assert !\valid(y); */ ; __e_acsl_full_init((void *)(& y)); y = x; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x",(void *)x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)x,sizeof(int),(void *)x, (void *)(& x)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","f","\\valid(x)", - "tests/memory/valid.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(x)",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(x)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(x); */ ; __e_acsl_delete_block((void *)(& x)); @@ -63,15 +96,34 @@ void g(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and; int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"*p", + (void *)*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(int **)); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p, sizeof(int *), (void *)p, @@ -79,16 +131,31 @@ void g(void) __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"RTE","g", - "mem_access: \\valid_read(p)","tests/memory/valid.c", - 24); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_2.fct = "g"; + __gen_e_acsl_assert_data_2.line = 24; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)*p,sizeof(int),(void *)*p, (void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(*p)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and_2 = __gen_e_acsl_valid; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","g","\\valid(*p)", - "tests/memory/valid.c",24); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(*p)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data.fct = "g"; + __gen_e_acsl_assert_data.line = 24; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(*p); */ ; __e_acsl_delete_block((void *)(& p)); @@ -106,19 +173,45 @@ int *__gen_e_acsl_f(int *x) { int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& x),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"x",(void *)x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)x,sizeof(int),(void *)x, (void *)(& x)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","f","\\valid(x)", - "tests/memory/valid.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(x)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(x)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = f(x); { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result", + (void *)__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)__retres,sizeof(int), (void *)__retres, (void *)(& __retres)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Postcondition","f", - "\\valid(\\result)","tests/memory/valid.c",10); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(\\result)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(\\result)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __e_acsl_delete_block((void *)(& x)); __e_acsl_delete_block((void *)(& __retres)); return __retres; @@ -166,24 +259,50 @@ int main(void) int __gen_e_acsl_and; int __gen_e_acsl_and_3; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&a)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(a)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(b)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; @@ -192,16 +311,26 @@ int main(void) else __gen_e_acsl_and_3 = 0; if (__gen_e_acsl_and_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"X",(void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(X)",0, + __gen_e_acsl_valid_3); __gen_e_acsl_and_4 = ! __gen_e_acsl_valid_3; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main", - "!\\valid(a) && !\\valid(b) && !\\valid(X)", - "tests/memory/valid.c",29); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(a) && !\\valid(b) && !\\valid(X)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 29; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ ; + /*@ assert !\valid(a) && !\valid(b) && !\valid(X); */ ; __e_acsl_full_init((void *)(& a)); a = (int *)malloc(sizeof(int)); { @@ -209,24 +338,52 @@ int main(void) int __gen_e_acsl_and_5; int __gen_e_acsl_and_7; int __gen_e_acsl_and_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(a)", + 0,__gen_e_acsl_valid_4); __gen_e_acsl_and_5 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_5 = 0; if (__gen_e_acsl_and_5) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(b)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_6 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_6 = 0; @@ -235,40 +392,79 @@ int main(void) else __gen_e_acsl_and_7 = 0; if (__gen_e_acsl_and_7) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"X", + (void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(X)", + 0,__gen_e_acsl_valid_6); __gen_e_acsl_and_8 = ! __gen_e_acsl_valid_6; } else __gen_e_acsl_and_8 = 0; - __e_acsl_assert(__gen_e_acsl_and_8,1,"Assertion","main", - "\\valid(a) && !\\valid(b) && !\\valid(X)", - "tests/memory/valid.c",31); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a) && !\\valid(b) && !\\valid(X)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 31; + __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ ; + /*@ assert \valid(a) && !\valid(b) && !\valid(X); */ ; X = a; { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_9; int __gen_e_acsl_and_11; int __gen_e_acsl_and_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(a)", + 0,__gen_e_acsl_valid_7); __gen_e_acsl_and_9 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_9 = 0; if (__gen_e_acsl_and_9) { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(b)",0,__gen_e_acsl_valid_8); __gen_e_acsl_and_10 = __gen_e_acsl_valid_8; } else __gen_e_acsl_and_10 = 0; @@ -277,16 +473,27 @@ int main(void) else __gen_e_acsl_and_11 = 0; if (__gen_e_acsl_and_11) { int __gen_e_acsl_valid_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"X", + (void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_9 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(X)", + 0,__gen_e_acsl_valid_9); __gen_e_acsl_and_12 = __gen_e_acsl_valid_9; } else __gen_e_acsl_and_12 = 0; - __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main", - "\\valid(a) && !\\valid(b) && \\valid(X)", - "tests/memory/valid.c",33); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(a) && !\\valid(b) && \\valid(X)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 33; + __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \valid(a) ∧ ¬\valid(b) ∧ \valid(X); */ ; + /*@ assert \valid(a) && !\valid(b) && \valid(X); */ ; __e_acsl_full_init((void *)(& b)); b = __gen_e_acsl_f(& n); { @@ -294,24 +501,52 @@ int main(void) int __gen_e_acsl_and_13; int __gen_e_acsl_and_15; int __gen_e_acsl_and_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_10 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(a)", + 0,__gen_e_acsl_valid_10); __gen_e_acsl_and_13 = __gen_e_acsl_valid_10; } else __gen_e_acsl_and_13 = 0; if (__gen_e_acsl_and_13) { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_14; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_11 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(b)",0,__gen_e_acsl_valid_11); __gen_e_acsl_and_14 = __gen_e_acsl_valid_11; } else __gen_e_acsl_and_14 = 0; @@ -320,40 +555,79 @@ int main(void) else __gen_e_acsl_and_15 = 0; if (__gen_e_acsl_and_15) { int __gen_e_acsl_valid_12; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"X", + (void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_12 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(X)", + 0,__gen_e_acsl_valid_12); __gen_e_acsl_and_16 = __gen_e_acsl_valid_12; } else __gen_e_acsl_and_16 = 0; - __e_acsl_assert(__gen_e_acsl_and_16,1,"Assertion","main", - "\\valid(a) && \\valid(b) && \\valid(X)", - "tests/memory/valid.c",35); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(a) && \\valid(b) && \\valid(X)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 35; + __e_acsl_assert(__gen_e_acsl_and_16,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ ; + /*@ assert \valid(a) && \valid(b) && \valid(X); */ ; X = b; { int __gen_e_acsl_initialized_9; int __gen_e_acsl_and_17; int __gen_e_acsl_and_19; int __gen_e_acsl_and_20; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_9); if (__gen_e_acsl_initialized_9) { int __gen_e_acsl_valid_13; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_13 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(a)", + 0,__gen_e_acsl_valid_13); __gen_e_acsl_and_17 = __gen_e_acsl_valid_13; } else __gen_e_acsl_and_17 = 0; if (__gen_e_acsl_and_17) { int __gen_e_acsl_initialized_10; int __gen_e_acsl_and_18; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_10); if (__gen_e_acsl_initialized_10) { int __gen_e_acsl_valid_14; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_14 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(b)",0,__gen_e_acsl_valid_14); __gen_e_acsl_and_18 = __gen_e_acsl_valid_14; } else __gen_e_acsl_and_18 = 0; @@ -362,16 +636,27 @@ int main(void) else __gen_e_acsl_and_19 = 0; if (__gen_e_acsl_and_19) { int __gen_e_acsl_valid_15; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"X", + (void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_15 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(X)", + 0,__gen_e_acsl_valid_15); __gen_e_acsl_and_20 = __gen_e_acsl_valid_15; } else __gen_e_acsl_and_20 = 0; - __e_acsl_assert(__gen_e_acsl_and_20,1,"Assertion","main", - "\\valid(a) && \\valid(b) && \\valid(X)", - "tests/memory/valid.c",37); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid(a) && \\valid(b) && \\valid(X)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 37; + __e_acsl_assert(__gen_e_acsl_and_20,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ ; + /*@ assert \valid(a) && \valid(b) && \valid(X); */ ; __e_acsl_full_init((void *)(& c)); c = & a; __e_acsl_full_init((void *)(& d)); @@ -379,16 +664,36 @@ int main(void) { int __gen_e_acsl_initialized_11; int __gen_e_acsl_and_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"c",(void *)c); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)c, sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(c)",0, + __gen_e_acsl_initialized_11); if (__gen_e_acsl_initialized_11) { int __gen_e_acsl_initialized_12; int __gen_e_acsl_and_21; int __gen_e_acsl_valid_16; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"*c", + (void *)*c); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&c", + (void *)(& c)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& c), sizeof(int **)); if (__gen_e_acsl_initialized_12) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"c", + (void *)c); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)c, sizeof(int *), (void *)c, @@ -396,16 +701,31 @@ int main(void) __gen_e_acsl_and_21 = __gen_e_acsl_valid_read; } else __gen_e_acsl_and_21 = 0; - __e_acsl_assert(__gen_e_acsl_and_21,1,"RTE","main", - "mem_access: \\valid_read(c)","tests/memory/valid.c", - 40); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(c)"; + __gen_e_acsl_assert_data_7.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 40; + __e_acsl_assert(__gen_e_acsl_and_21,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_16 = __e_acsl_valid((void *)*c,sizeof(int), (void *)*c,(void *)c); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(*c)",0,__gen_e_acsl_valid_16); __gen_e_acsl_and_22 = __gen_e_acsl_valid_16; } else __gen_e_acsl_and_22 = 0; - __e_acsl_assert(__gen_e_acsl_and_22,1,"Assertion","main","\\valid(*c)", - "tests/memory/valid.c",40); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "\\valid(*c)"; + __gen_e_acsl_assert_data_6.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 40; + __e_acsl_assert(__gen_e_acsl_and_22,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } /*@ assert \valid(*c); */ ; { @@ -413,10 +733,24 @@ int main(void) int __gen_e_acsl_and_23; int __gen_e_acsl_initialized_14; int __gen_e_acsl_and_27; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*d", + (void *)*d); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int ***)",0,sizeof(int ***)); __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& d), sizeof(int ***)); if (__gen_e_acsl_initialized_13) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)d, sizeof(int **), (void *)d, @@ -424,26 +758,57 @@ int main(void) __gen_e_acsl_and_23 = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and_23 = 0; - __e_acsl_assert(__gen_e_acsl_and_23,1,"RTE","main", - "mem_access: \\valid_read(d)","tests/memory/valid.c",41); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(d)"; + __gen_e_acsl_assert_data_9.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 41; + __e_acsl_assert(__gen_e_acsl_and_23,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)*d, sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(*d)",0, + __gen_e_acsl_initialized_14); if (__gen_e_acsl_initialized_14) { int __gen_e_acsl_initialized_15; int __gen_e_acsl_and_25; int __gen_e_acsl_initialized_17; int __gen_e_acsl_and_26; int __gen_e_acsl_valid_17; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*(*d)", + (void *)*(*d)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)d, sizeof(int **)); if (__gen_e_acsl_initialized_15) { int __gen_e_acsl_initialized_16; int __gen_e_acsl_and_24; int __gen_e_acsl_valid_read_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"*d", + (void *)*d); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int ***)",0,sizeof(int ***)); __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(& d), sizeof(int ***)); if (__gen_e_acsl_initialized_16) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)d, sizeof(int **), (void *)d, @@ -451,22 +816,44 @@ int main(void) __gen_e_acsl_and_24 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_24 = 0; - __e_acsl_assert(__gen_e_acsl_and_24,1,"RTE","main", - "mem_access: \\valid_read(d)","tests/memory/valid.c", - 41); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "RTE"; + __gen_e_acsl_assert_data_11.pred_txt = "mem_access: \\valid_read(d)"; + __gen_e_acsl_assert_data_11.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 41; + __e_acsl_assert(__gen_e_acsl_and_24,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)*d, sizeof(int *), (void *)*d,(void *)d); __gen_e_acsl_and_25 = __gen_e_acsl_valid_read_4; } else __gen_e_acsl_and_25 = 0; - __e_acsl_assert(__gen_e_acsl_and_25,1,"RTE","main", - "mem_access: \\valid_read(*d)","tests/memory/valid.c", - 41); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(*d)"; + __gen_e_acsl_assert_data_10.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 41; + __e_acsl_assert(__gen_e_acsl_and_25,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&d", + (void *)(& d)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int ***)",0,sizeof(int ***)); __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& d), sizeof(int ***)); if (__gen_e_acsl_initialized_17) { int __gen_e_acsl_valid_read_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"d", + (void *)d); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)d, sizeof(int **), (void *)d, @@ -474,16 +861,31 @@ int main(void) __gen_e_acsl_and_26 = __gen_e_acsl_valid_read_5; } else __gen_e_acsl_and_26 = 0; - __e_acsl_assert(__gen_e_acsl_and_26,1,"RTE","main", - "mem_access: \\valid_read(d)","tests/memory/valid.c", - 41); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(d)"; + __gen_e_acsl_assert_data_12.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 41; + __e_acsl_assert(__gen_e_acsl_and_26,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_17 = __e_acsl_valid((void *)*(*d),sizeof(int), (void *)*(*d),(void *)*d); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\valid(*(*d))",0,__gen_e_acsl_valid_17); __gen_e_acsl_and_27 = __gen_e_acsl_valid_17; } else __gen_e_acsl_and_27 = 0; - __e_acsl_assert(__gen_e_acsl_and_27,1,"Assertion","main", - "\\valid(*(*d))","tests/memory/valid.c",41); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\valid(*(*d))"; + __gen_e_acsl_assert_data_8.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 41; + __e_acsl_assert(__gen_e_acsl_and_27,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \valid(*(*d)); */ ; free((void *)a); @@ -492,25 +894,53 @@ int main(void) int __gen_e_acsl_and_28; int __gen_e_acsl_and_30; int __gen_e_acsl_and_31; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_18); if (__gen_e_acsl_initialized_18) { int __gen_e_acsl_valid_18; - /*@ assert Eva: dangling_pointer: ¬\dangling(&a); */ + /*@ assert Eva: dangling_pointer: !\dangling(&a); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_18 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\valid(a)",0,__gen_e_acsl_valid_18); __gen_e_acsl_and_28 = __gen_e_acsl_valid_18; } else __gen_e_acsl_and_28 = 0; if (! __gen_e_acsl_and_28) { int __gen_e_acsl_initialized_19; int __gen_e_acsl_and_29; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_19); if (__gen_e_acsl_initialized_19) { int __gen_e_acsl_valid_19; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_19 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\valid(b)",0,__gen_e_acsl_valid_19); __gen_e_acsl_and_29 = __gen_e_acsl_valid_19; } else __gen_e_acsl_and_29 = 0; @@ -519,22 +949,47 @@ int main(void) else __gen_e_acsl_and_30 = 0; if (__gen_e_acsl_and_30) { int __gen_e_acsl_valid_20; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"X", + (void *)X); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_20 = __e_acsl_valid((void *)X,sizeof(int),(void *)X, (void *)(& X)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\valid(X)",0,__gen_e_acsl_valid_20); __gen_e_acsl_and_31 = __gen_e_acsl_valid_20; } else __gen_e_acsl_and_31 = 0; - __e_acsl_assert(__gen_e_acsl_and_31,1,"Assertion","main", - "!\\valid(a) && \\valid(b) && \\valid(X)", - "tests/memory/valid.c",43); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "!\\valid(a) && \\valid(b) && \\valid(X)"; + __gen_e_acsl_assert_data_13.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 43; + __e_acsl_assert(__gen_e_acsl_and_31,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert ¬\valid(a) ∧ \valid(b) ∧ \valid(X); */ ; + /*@ assert !\valid(a) && \valid(b) && \valid(X); */ ; { int __gen_e_acsl_valid_21; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"&Z", + (void *)(& Z)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_21 = __e_acsl_valid((void *)(& Z),sizeof(int), (void *)(& Z),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_21,1,"Assertion","main","\\valid(&Z)", - "tests/memory/valid.c",44); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"\\valid(&Z)", + 0,__gen_e_acsl_valid_21); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "Assertion"; + __gen_e_acsl_assert_data_14.pred_txt = "\\valid(&Z)"; + __gen_e_acsl_assert_data_14.file = "tests/memory/valid.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 44; + __e_acsl_assert(__gen_e_acsl_valid_21,& __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); } /*@ assert \valid(&Z); */ ; g(); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c index bd36506b4f1487339a94a483e2eac8484eae8caf..cc017e1aac35f9c6b0ec9dbb9d45db83ff9a6614 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -17,35 +18,66 @@ int main(void) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&a)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(a)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; if (! __gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(b)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_and_3 = ! __gen_e_acsl_and_2; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "!\\valid(a) && !\\valid(b)", - "tests/memory/valid_alias.c",9); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(a) && !\\valid(b)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid_alias.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ ; + /*@ assert !\valid(a) && !\valid(b); */ ; __e_acsl_full_init((void *)(& a)); a = (int *)malloc(sizeof(int)); __e_acsl_initialize((void *)a,sizeof(int)); @@ -56,89 +88,180 @@ int main(void) int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_4; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(a)", + 0,__gen_e_acsl_valid_3); __gen_e_acsl_and_4 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_4 = 0; if (__gen_e_acsl_and_4) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(b)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_5 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_5 = 0; __gen_e_acsl_and_6 = __gen_e_acsl_and_5; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main", - "\\valid(a) && \\valid(b)","tests/memory/valid_alias.c", - 13); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a) && \\valid(b)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid_alias.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \valid(a) ∧ \valid(b); */ ; + /*@ assert \valid(a) && \valid(b); */ ; { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"*b",0,*b); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"n",0,n); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b), sizeof(int *)); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)b,sizeof(int), (void *)b,(void *)(& b)); __gen_e_acsl_and_7 = __gen_e_acsl_valid_read; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(__gen_e_acsl_and_7,1,"RTE","main", - "mem_access: \\valid_read(b)", - "tests/memory/valid_alias.c",14); - __e_acsl_assert(*b == n,1,"Assertion","main","*b == n", - "tests/memory/valid_alias.c",14); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(b)"; + __gen_e_acsl_assert_data_4.file = "tests/memory/valid_alias.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 14; + __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "*b == n"; + __gen_e_acsl_assert_data_3.file = "tests/memory/valid_alias.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(*b == n,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert *b ≡ n; */ ; + /*@ assert *b == n; */ ; free((void *)b); { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_8; int __gen_e_acsl_and_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a", + (void *)(& a)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& a), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&a)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_5; - /*@ assert Eva: dangling_pointer: ¬\dangling(&a); */ + /*@ assert Eva: dangling_pointer: !\dangling(&a); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a", + (void *)a); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)a,sizeof(int),(void *)a, (void *)(& a)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(a)", + 0,__gen_e_acsl_valid_5); __gen_e_acsl_and_8 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_8 = 0; if (! __gen_e_acsl_and_8) { int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b", + (void *)(& b)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& b), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&b)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b", + (void *)b); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)b,sizeof(int), (void *)b,(void *)(& b)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(b)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_9 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_9 = 0; __gen_e_acsl_and_10 = ! __gen_e_acsl_and_9; } else __gen_e_acsl_and_10 = 0; - __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main", - "!\\valid(a) && !\\valid(b)", - "tests/memory/valid_alias.c",16); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(a) && !\\valid(b)"; + __gen_e_acsl_assert_data_5.file = "tests/memory/valid_alias.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 16; + __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ ; + /*@ assert !\valid(a) && !\valid(b); */ ; __retres = 0; __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c index b8910535a12c93389c032a422e0f2d5df6a56e5b..2312f0f7ce7832a8236dac8e1c6c12ff7c42c99e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -9,12 +10,12 @@ struct list { struct list *next ; }; /*@ behavior B1: - assumes l ≡ \null; - ensures \result ≡ \old(l); + assumes l == \null; + ensures \result == \old(l); behavior B2: - assumes ¬\valid(l) ∨ ¬\valid(l->next); - ensures \result ≡ \old(l); + assumes !\valid(l) || !\valid(l->next); + ensures \result == \old(l); */ struct list *__gen_e_acsl_f(struct list *l); @@ -54,12 +55,12 @@ int main(void) } /*@ behavior B1: - assumes l ≡ \null; - ensures \result ≡ \old(l); + assumes l == \null; + ensures \result == \old(l); behavior B2: - assumes ¬\valid(l) ∨ ¬\valid(l->next); - ensures \result ≡ \old(l); + assumes !\valid(l) || !\valid(l->next); + ensures \result == \old(l); */ struct list *__gen_e_acsl_f(struct list *l) { @@ -86,13 +87,25 @@ struct list *__gen_e_acsl_f(struct list *l) if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&l->next", + (void *)(& l->next)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(struct list *)",0, + sizeof(struct list *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& l->next), sizeof(struct list *), (void *)(& l->next), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(&l->next)", - "tests/memory/valid_in_contract.c",17); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "RTE"; + __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(&l->next)"; + __gen_e_acsl_assert_data.file = "tests/memory/valid_in_contract.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 17; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)l->next, sizeof(struct list), (void *)l->next, @@ -112,18 +125,42 @@ struct list *__gen_e_acsl_f(struct list *l) int __gen_e_acsl_assumes_value; __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at, - 1,"Postcondition","f", - "B1: \\result == \\old(l)", - "tests/memory/valid_in_contract.c", - 15); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\old(l)", + (void *)__gen_e_acsl_at); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "B1: \\result == \\old(l)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/valid_in_contract.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(__retres == __gen_e_acsl_at, + & __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + } __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); - if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at_2, - 1,"Postcondition","f", - "B2: \\result == \\old(l)", - "tests/memory/valid_in_contract.c", - 18); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result", + (void *)__retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(l)", + (void *)__gen_e_acsl_at_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "B2: \\result == \\old(l)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/valid_in_contract.c"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 18; + __e_acsl_assert(__retres == __gen_e_acsl_at_2, + & __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + } __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& l)); __e_acsl_delete_block((void *)(& __retres)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c b/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c index f35eefe1d62032a0d7b35743ac9a0fc8150430d6..e21749c2561d82c40a2001ad219d0d3eac25706d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -14,8 +15,14 @@ int *new_inversed(int len, int *v) int __gen_e_acsl_valid; int __gen_e_acsl_and; __e_acsl_store_block((void *)(& v),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)v,sizeof(int),(void *)v, (void *)(& v)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(v)",0, + __gen_e_acsl_valid); if (__gen_e_acsl_valid) { unsigned long __gen_e_acsl_offset; __e_acsl_mpz_t __gen_e_acsl_offset_2; @@ -24,14 +31,24 @@ int *new_inversed(int len, int *v) unsigned long __gen_e_acsl_block_length; __e_acsl_mpz_t __gen_e_acsl_block_length_2; int __gen_e_acsl_le; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v); __gen_e_acsl_offset = __e_acsl_offset((void *)v); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "\\offset(v)",0,__gen_e_acsl_offset); __gmpz_init_set_ui(__gen_e_acsl_offset_2,__gen_e_acsl_offset); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,4); __gmpz_init_set_si(__gen_e_acsl_,len * 4L); __gmpz_init(__gen_e_acsl_add); __gmpz_add(__gen_e_acsl_add, (__e_acsl_mpz_struct const *)(__gen_e_acsl_offset_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v); __gen_e_acsl_block_length = __e_acsl_block_length((void *)v); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "\\block_length(v)",0, + __gen_e_acsl_block_length); __gmpz_init_set_ui(__gen_e_acsl_block_length_2, __gen_e_acsl_block_length); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add), @@ -43,12 +60,16 @@ int *new_inversed(int len, int *v) __gmpz_clear(__gen_e_acsl_block_length_2); } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","new_inversed", - "\\valid(v) && \\offset(v) + len * sizeof(int) <= \\block_length(v)", - "tests/memory/vector.c",12); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(v) && \\offset(v) + len * sizeof(int) <= \\block_length(v)"; + __gen_e_acsl_assert_data.file = "tests/memory/vector.c"; + __gen_e_acsl_assert_data.fct = "new_inversed"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ - assert \valid(v) ∧ \offset(v) + len * sizeof(int) ≤ \block_length(v); + /*@ assert \valid(v) && \offset(v) + len * sizeof(int) <= \block_length(v); */ ; __e_acsl_full_init((void *)(& p)); @@ -76,19 +97,47 @@ int main(void) __e_acsl_full_init((void *)(& v1)); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&v1[2]", + (void *)(& v1[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& v1[2]),sizeof(int), (void *)(v1),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid(&v1[2])","tests/memory/vector.c",22); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(&v1[2])",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&v1[2])"; + __gen_e_acsl_assert_data.file = "tests/memory/vector.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 22; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&v1[2]); */ ; LAST = v1[2]; { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&v1[2]", + (void *)(& v1[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& v1[2]), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&v1[2])","tests/memory/vector.c",24); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&v1[2])",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&v1[2])"; + __gen_e_acsl_assert_data_2.file = "tests/memory/vector.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 24; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&v1[2]); */ ; __e_acsl_full_init((void *)(& v2)); @@ -96,15 +145,41 @@ int main(void) LAST = *(v2 + 2); { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"v2", + (void *)v2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(v2 + 2), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(v2 + 2)","tests/memory/vector.c",27); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(v2 + 2)",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(v2 + 2)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/vector.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 27; + __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \initialized(v2 + 2); */ ; - __e_acsl_assert(LAST == 1,1,"Assertion","main","LAST == 1", - "tests/memory/vector.c",28); - /*@ assert LAST ≡ 1; */ ; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"LAST",0,LAST); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "LAST == 1"; + __gen_e_acsl_assert_data_4.file = "tests/memory/vector.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 28; + __e_acsl_assert(LAST == 1,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + } + /*@ assert LAST == 1; */ ; free((void *)v2); __retres = 0; __e_acsl_delete_block((void *)(& v2)); diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c b/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c index db99b83114133ad4e8d0b79dc9dd0a944d921036..033d40c7b20d93c8b92d80f25cd0efb6d6c1ac3a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c +++ b/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -13,10 +13,17 @@ int main(int argc, char **argv) __e_acsl_memory_init(& argc,& argv,(size_t)8); { int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0, + 4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"LEN",0,LEN); if (0L < 4L * LEN) { __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl__2; int __gen_e_acsl_le; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,4); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"LEN",0,LEN); __gmpz_init_set_si(__gen_e_acsl_,4L * LEN); __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL); __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), @@ -26,12 +33,16 @@ int main(int argc, char **argv) __gmpz_clear(__gen_e_acsl__2); } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main", - "alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615", - "tests/memory/vla.c",9); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615"; + __gen_e_acsl_assert_data.file = "tests/memory/vla.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert alloca_bounds: 0 < sizeof(int) * LEN ≤ 18446744073709551615; - */ + /*@ assert alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615; */ ; __lengthof_arr = (unsigned long)LEN; int *arr = __builtin_alloca(sizeof(int) * __lengthof_arr); @@ -43,22 +54,53 @@ int main(int argc, char **argv) if (i < LEN) { { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"arr", + (void *)arr); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(arr + i),sizeof(int), (void *)arr,(void *)(& arr)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid(arr + i)","tests/memory/vla.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(arr + i)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(arr + i)"; + __gen_e_acsl_assert_data_2.file = "tests/memory/vla.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(arr + i); */ ; } else { { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"arr", + (void *)arr); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(arr + i),sizeof(int), (void *)arr,(void *)(& arr)); - __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main", - "!\\valid(arr + i)","tests/memory/vla.c",15); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(arr + i)",0, + __gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(arr + i)"; + __gen_e_acsl_assert_data_3.file = "tests/memory/vla.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(arr + i); */ ; + /*@ assert !\valid(arr + i); */ ; } i ++; } diff --git a/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle index efd026311297e55d8fefb674326118e6ece88624..d986466042cb07b9c333ca68ce9e79f85aa5e62c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/goto.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/goto.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle index efd026311297e55d8fefb674326118e6ece88624..0b8a95f03626c81e253db4d5a4241e3de72a08f9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/init.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/init.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/init.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/init.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle index 1b5901750f8eff4dff841228dab2b7f39ee88eb1..d7518d22b51603cfcae52f5d52f9082b693d94b3 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle @@ -1,5 +1,178 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/initialized.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:32: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:35: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:39: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:39: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:40: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:45: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:45: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:46: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:46: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:50: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:51: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:51: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:52: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:52: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:53: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:54: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:54: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:57: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:57: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:58: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:58: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:59: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:59: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:60: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:60: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:61: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:61: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:65: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:65: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:69: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:69: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:74: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:74: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:76: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/initialized.c:76: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/initialized.c:84: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&p); + accessing left-value that contains escaping addresses. assert !\dangling(&p); diff --git a/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle index efd026311297e55d8fefb674326118e6ece88624..c742ba5b62433efbe725ebcdf78106dc8c79ac8e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle @@ -1,2 +1,38 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/literal_string.i:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:27: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:28: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/literal_string.i:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle index efd026311297e55d8fefb674326118e6ece88624..b1bc9af9c0f430d98b871b72287de6fe80d8e385 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/local_goto.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_goto.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_goto.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_goto.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle index efd026311297e55d8fefb674326118e6ece88624..a0432e4ce8de31611d8fc4edb7f45efa6884da4d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/local_var.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_var.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_var.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/local_var.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle index 338fa0d580e133b8b5c781cef207958f72e9b552..201473ea00c1c7cd15e8baf4f3b9b973bcf2fe0f 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle @@ -18,17 +18,63 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/mainargs.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:12: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:12: Warning: assertion got status unknown. +[eva:alarm] tests/memory/mainargs.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:13: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/memory/mainargs.c:15: Warning: + out of bounds read. assert \valid_read(argv + argc); +[eva:alarm] tests/memory/mainargs.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:15: Warning: out of bounds read. assert \valid_read(argv + argc); [eva:alarm] tests/memory/mainargs.c:15: Warning: assertion got status unknown. +[eva:alarm] tests/memory/mainargs.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:16: Warning: + out of bounds read. assert \valid_read(argv + argc); +[eva:alarm] tests/memory/mainargs.c:16: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:16: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:16: Warning: @@ -42,9 +88,30 @@ function strlen: precondition 'valid_string_s' got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:143: Warning: function __gen_e_acsl_strlen: postcondition 'acsl_c_equiv' got status unknown. +[eva:alarm] tests/memory/mainargs.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:19: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:19: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:19: Warning: assertion got status unknown. +[eva:alarm] tests/memory/mainargs.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/mainargs.c:20: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/mainargs.c:20: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/mainargs.c:20: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle index efd026311297e55d8fefb674326118e6ece88624..0941541892fa3ad9002208e31ad0e666e16beae6 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle @@ -1,2 +1,77 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/offset.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:39: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:51: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:51: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:53: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:55: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/offset.c:55: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle index efd026311297e55d8fefb674326118e6ece88624..27b1dc6243e4bec2908dccd387fe4c90c98df08e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle @@ -1,2 +1,41 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/ptr.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:20: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr.i:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle index efd026311297e55d8fefb674326118e6ece88624..7fbb11593483765028d5e83a05d565201fc52186 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle @@ -1,2 +1,8 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/ptr_init.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ptr_init.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle index e1c1333eff2264b0218a6d8f6d68977ef62ed51d..8cbde5f18f9eb8be10fb071aa470eb248be269cf 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle @@ -4,13 +4,82 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/ranges_in_builtins.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: + function __e_acsl_assert_register_long: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: + function __e_acsl_assert_register_mpz: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:46: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:51: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:54: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:57: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:57: Warning: assertion got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:62: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:63: Warning: accessing uninitialized left-value. assert \initialized(&s.b); diff --git a/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle index abcde03efaf9e4767e86147f9b2ac40f4c5aa3ad..21647f418cabe93c4f6f7bfecb62789915f67695 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle @@ -1,52 +1,262 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:21: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:22: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:22: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:23: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:23: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:24: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:24: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:25: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:25: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:26: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:27: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:27: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:36: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:37: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:46: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:46: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:46: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:47: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:48: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:49: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:49: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:50: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:50: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:51: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:51: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:51: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:52: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:52: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:52: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/separated.c:60: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:60: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:60: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:61: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:61: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:61: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:62: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:62: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:62: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:62: Warning: assertion got status unknown. [eva:alarm] tests/memory/separated.c:63: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/separated.c:63: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/separated.c:63: Warning: assertion got status unknown. [eva:alarm] tests/memory/separated.c:64: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:64: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle index efd026311297e55d8fefb674326118e6ece88624..4e3f1574082662ba5c1dce8868ba0f20df52268c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle @@ -1,2 +1,5 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/sizeof.i:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle index 0aaf460e7936d9bbbe4c61c83a1fd0c8a5db71ea..bec5da30bad0413c96c407662a865a1321438676 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle @@ -1,11 +1,29 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/stdout.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/stdout.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/stdout.c:8: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/stdout.c:8: Warning: assertion got status unknown. +[eva:alarm] tests/memory/stdout.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/stdout.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/stdout.c:9: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/stdout.c:9: Warning: assertion got status unknown. +[eva:alarm] tests/memory/stdout.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/stdout.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/stdout.c:10: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/memory/stdout.c:10: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle index efd026311297e55d8fefb674326118e6ece88624..f023644bba63db6320af7eab37fb461d2b589064 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle @@ -1,2 +1,74 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/struct_initialized.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:20: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:27: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:32: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:32: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/struct_initialized.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle index 10d60024c84446247288b53d197b4897a6a119ad..17912b9f4f43ca53ea77cbdbb15f069414da2f15 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle @@ -1,5 +1,232 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:35: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/valid.c:43: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&a); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid.c:43: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&a); diff --git a/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle index 6fdc0e52c0e715a6d514e6ccd33a5307a271136b..7891f00553af1a390cfbd2bae4c7595579552a2d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle @@ -1,5 +1,64 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/valid_alias.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:9: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/valid_alias.c:16: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&a); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/valid_alias.c:16: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&a); diff --git a/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle index 7c772edc7d68123d8d7bf560b2b9f2be246e513a..4f57d05216430cf59d7f35658e755f41ee7dc1d3 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle @@ -1,4 +1,46 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/vector.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:24: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:24: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/vector.c:12: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/vector.c:27: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vector.c:27: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle index bbabb8e52c514a69429c33990bb30604c23d7907..8ce89f94f2613a464f2269775718deb401389627 100644 --- a/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle @@ -1,4 +1,28 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/memory/vla.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/memory/vla.c:9: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/memory/vla.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/memory/vla.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c new file mode 100644 index 0000000000000000000000000000000000000000..369e4476ffd117449ab8a84ce8b09281bb2b0dd6 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c @@ -0,0 +1,10 @@ +/* run.config, run.config_dev + DONTRUN: + COMMENT: Support file for e-acsl-external-print-value.c +*/ +#include <e_acsl.h> +#include <stdio.h> + +void __e_acsl_print_value(__e_acsl_assert_data_value_t *value) { + fprintf(stderr, "\t- custom print for %s\n", value->name); +} diff --git a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c new file mode 100644 index 0000000000000000000000000000000000000000..a7132d8744e98c550064232256caa87649879b70 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c @@ -0,0 +1,9 @@ +/* run.config_dev + MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data --external-print-value tests/special/e-acsl-external-print-value-fct.c +*/ + +int main() { + int value = 1; + //@ check \let x = value; \false; + return 0; +} diff --git a/src/plugins/e-acsl/tests/special/e-acsl-instrument.c b/src/plugins/e-acsl/tests/special/e-acsl-instrument.c index 4811173614f7cf845b5d938c7524ed70f90191cc..99a06505de3b0dd046195d6c5480227625f02b9a 100644 --- a/src/plugins/e-acsl/tests/special/e-acsl-instrument.c +++ b/src/plugins/e-acsl/tests/special/e-acsl-instrument.c @@ -3,6 +3,7 @@ STDOPT:#"-e-acsl-instrument='@all,-uninstrument1,-uninstrument2'" */ /* run.config_dev + MACRO: ROOT_EACSL_GCC_OPTS_EXT --no-assert-print-data MACRO: ROOT_EACSL_GCC_FC_EXTRA_EXT -e-acsl-instrument @all,-uninstrument1,-uninstrument2 */ diff --git a/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c b/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c new file mode 100644 index 0000000000000000000000000000000000000000..fea3dee8c454c325388a8d59f192f4e42e6f5773 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c @@ -0,0 +1,16 @@ +/* run.config + COMMENT: test assertion failure without printing assertion data + LOG: gen_@PTEST_NAME@.c + STDOPT: #"-e-acsl-no-assert-print-data" +*/ +/* run.config_dev + MACRO: ROOT_EACSL_GCC_OPTS_EXT --no-assert-print-data +*/ + +#include <limits.h> + +int main() { + int value = INT_MAX; + //@ check \let x = value; \false; + return 0; +} diff --git a/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c b/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c index 6964a4e84d91b7633603365c9122606873119ec0..50e2bd836c0f0066ac43d023809c3bf213578de2 100644 --- a/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c +++ b/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c @@ -3,7 +3,9 @@ STDOPT:#"-e-acsl-debug 1" */ /* run.config_dev - MACRO: ROOT_EACSL_GCC_OPTS_EXT --rt-debug --rt-verbose + MACRO: ROOT_EACSL_GCC_OPTS_EXT --rt-debug --rt-verbose --full-mtracking + COMMENT: Filter the addresses of the output so that the test is deterministic. + MACRO: ROOT_EACSL_EXEC_FILTER @SEDCMD@ -e "s|0x[0-9-]*|0x00000-00000-00000|g" | @SEDCMD@ -e "s|Offset: [0-9-]*|Offset: xxxx|g" */ int main() { return 0; diff --git a/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle b/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle index ea338178977c5f4bea94846045470cd18c837b9a..94ff07f66bdef164af2539fcd4719440683c9e3a 100644 --- a/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle +++ b/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle @@ -1,4 +1,10 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/special/builtin.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/builtin.i:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/special/builtin.i:11: Warning: function __gen_e_acsl_f: postcondition got status unknown. diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..dae3517593472698fde946f6e60eee8aae45f7fb --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle @@ -0,0 +1,6 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/special/e-acsl-external-print-value.c:7: Warning: + function __e_acsl_assert, behavior non_blocking: precondition got status invalid. +[eva:alarm] tests/special/e-acsl-external-print-value.c:7: Warning: + check got status unknown. diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle index 8a13b595cda6bcb891eaaed531c8ea270ed56d38..dd99238520112789d714f8bb903305ad7d1ce469 100644 --- a/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle +++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle @@ -1,4 +1,22 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/special/e-acsl-functions.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-functions.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-functions.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-functions.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-functions.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-functions.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/special/e-acsl-functions.c:38: Warning: - function g: precondition *p ≡ 1 got status invalid. + function g: precondition *p == 1 got status invalid. diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle index efd026311297e55d8fefb674326118e6ece88624..df659b5050a89ebcaf5c689f78eddf255547dbe1 100644 --- a/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle +++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle @@ -1,2 +1,26 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/special/e-acsl-instrument.c:33: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:33: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:61: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:61: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:62: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/special/e-acsl-instrument.c:62: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..7a99ff00ba042499caa2cfc9141bb2b779fda179 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle @@ -0,0 +1,6 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/special/e-acsl-no-assert-print-data.c:14: Warning: + function __e_acsl_assert, behavior non_blocking: precondition got status invalid. +[eva:alarm] tests/special/e-acsl-no-assert-print-data.c:14: Warning: + check got status unknown. diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c b/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c index a80a813054c76077f2d3027cf177897eeac77ecc..6a3906bb22908685f539b7b4624a1bacf49b1d69 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c @@ -1,12 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int incr(int x); -/*@ ensures \result ≡ incr(\old(i)); */ +/*@ ensures \result == incr(\old(i)); */ int __gen_e_acsl_f(int i); int f(int i) @@ -25,12 +25,14 @@ int incr(int x) int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); int i = __gen_e_acsl_f(2); __retres = 0; + __e_acsl_memory_clean(); return __retres; } -/*@ ensures \result ≡ incr(\old(i)); */ +/*@ ensures \result == incr(\old(i)); */ int __gen_e_acsl_f(int i) { int __gen_e_acsl_at; @@ -39,10 +41,23 @@ int __gen_e_acsl_f(int i) __retres = f(i); { int __gen_e_acsl_incr_app; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0, + __retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(i)",0, + __gen_e_acsl_at); __gen_e_acsl_incr_app = incr(__gen_e_acsl_at); - __e_acsl_assert(__retres == __gen_e_acsl_incr_app,1,"Postcondition","f", - "\\result == incr(\\old(i))","tests/special/builtin.i", - 11); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"incr(\\old(i))", + 0,__gen_e_acsl_incr_app); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Postcondition"; + __gen_e_acsl_assert_data.pred_txt = "\\result == incr(\\old(i))"; + __gen_e_acsl_assert_data.file = "tests/special/builtin.i"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(__retres == __gen_e_acsl_incr_app, + & __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); return __retres; } } diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c index 72d97a54831c7c1dff3f9c7169b1fea2e5589388..f2d5fd7585bba22c9fa4e4c3ab46dd63569bc0b0 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c index 2f77399ecaa5a4d06eaa2187ba6d723f9cc485dc..a19e43d58079ff4d5cff6d21d57aca2e68656d7a 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c @@ -1,13 +1,15 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c new file mode 100644 index 0000000000000000000000000000000000000000..2c25b012bc7334ce280ea7b9b4eac1573118bb33 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c @@ -0,0 +1,35 @@ +/* Generated by Frama-C */ +#include "stddef.h" +#include "stdint.h" +#include "stdio.h" +extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; + +int main(void) +{ + int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + int value = 1; + __e_acsl_store_block((void *)(& value),(size_t)4); + __e_acsl_full_init((void *)(& value)); + { + int __gen_e_acsl_x; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"value",0,value); + __gen_e_acsl_x = value; + __gen_e_acsl_assert_data.blocking = 0; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\let x = value; \\false"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-external-print-value.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 7; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ check \let x = value; \false; */ ; + __retres = 0; + __e_acsl_delete_block((void *)(& value)); + __e_acsl_memory_clean(); + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c index 79d83f6e40dab17fa30344132cf90e4891a44645..517e59aa527e91736fd090da7dbef57cfc17bc6e 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c @@ -1,13 +1,12 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires \initialized(p); - requires *p ≡ 0; - ensures \result ≡ \old(*p); - */ + requires *p == 0; + ensures \result == \old(*p); */ int __gen_e_acsl_f(int *p); int f(int *p) @@ -18,17 +17,43 @@ int f(int *p) int i = 0; { int __gen_e_acsl_and; - if (0 <= i) __gen_e_acsl_and = i <= 1; else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","f","0 <= i <= 1", - "tests/special/e-acsl-functions.c",13); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __gen_e_acsl_and = i <= 1; + } + else __gen_e_acsl_and = 0; + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Invariant"; + __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 1"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ loop invariant 0 ≤ i ≤ 1; */ + /*@ loop invariant 0 <= i <= 1; */ while (i < 1) { int __gen_e_acsl_and_2; i ++; - if (0 <= i) __gen_e_acsl_and_2 = i <= 1; else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","f","0 <= i <= 1", - "tests/special/e-acsl-functions.c",13); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + if (0 <= i) { + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __gen_e_acsl_and_2 = i <= 1; + } + else __gen_e_acsl_and_2 = 0; + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Invariant"; + __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 1"; + __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } } __retres = 0; @@ -37,15 +62,14 @@ int f(int *p) } /*@ requires \initialized(p); - requires *p ≡ 1; - ensures \result ≡ \old(*p); - */ + requires *p == 1; + ensures \result == \old(*p); */ int g(int *p) { int __retres; { int i = 0; - /*@ loop invariant 0 ≤ i ≤ 1; */ + /*@ loop invariant 0 <= i <= 1; */ while (i < 1) i ++; } __retres = 0; @@ -69,9 +93,8 @@ int main(void) } /*@ requires \initialized(p); - requires *p ≡ 0; - ensures \result ≡ \old(*p); - */ + requires *p == 0; + ensures \result == \old(*p); */ int __gen_e_acsl_f(int *p) { int __gen_e_acsl_at; @@ -80,32 +103,87 @@ int __gen_e_acsl_f(int *p) int __gen_e_acsl_initialized; int __gen_e_acsl_valid_read; __e_acsl_store_block((void *)(& p),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Precondition","f", - "\\initialized(p)","tests/special/e-acsl-functions.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(p)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"*p",0,*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(int), (void *)p,(void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(p)", - "tests/special/e-acsl-functions.c",10); - __e_acsl_assert(*p == 0,1,"Precondition","f","*p == 0", - "tests/special/e-acsl-functions.c",10); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 10; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Precondition"; + __gen_e_acsl_assert_data_2.pred_txt = "*p == 0"; + __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 10; + __e_acsl_assert(*p == 0,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p,sizeof(int), (void *)p,(void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f", - "mem_access: \\valid_read(p)", - "tests/special/e-acsl-functions.c",11); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_5.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data_5.fct = "f"; + __gen_e_acsl_assert_data_5.line = 11; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); __gen_e_acsl_at = *p; } __retres = f(p); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","f", - "\\result == \\old(*p)","tests/special/e-acsl-functions.c", - 11); - __e_acsl_delete_block((void *)(& p)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0, + __retres); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\old(*p)",0, + __gen_e_acsl_at); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Postcondition"; + __gen_e_acsl_assert_data_4.pred_txt = "\\result == \\old(*p)"; + __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-functions.c"; + __gen_e_acsl_assert_data_4.fct = "f"; + __gen_e_acsl_assert_data_4.line = 11; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_delete_block((void *)(& p)); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c index 2a06979d910095fbf6dc6bc9d24b41cf29319230..697495fe95fdf8e484ca3c829a6fc6e5c1a531ac 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c @@ -1,7 +1,7 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stdarg.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -97,20 +97,47 @@ int main(void) __gen_e_acsl_uninstrument2(& x); { int __gen_e_acsl_initialized; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x", + (void *)(& x)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& x), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main", - "\\initialized(&x)","tests/special/e-acsl-instrument.c", - 60); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&x)",0, + __gen_e_acsl_initialized); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\initialized(&x)"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 61; + __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \initialized(&x); */ ; { int __gen_e_acsl_initialized_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&y", + (void *)(& y)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& y), sizeof(int)); - __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main", - "\\initialized(&y)","tests/special/e-acsl-instrument.c", - 61); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&y)",0, + __gen_e_acsl_initialized_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&y)"; + __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-instrument.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 62; + __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \initialized(&y); */ ; { @@ -137,10 +164,22 @@ int __gen_e_acsl_instrument2(int *p) { int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& p),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","instrument2", - "\\valid(p)","tests/special/e-acsl-instrument.c",32); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c"; + __gen_e_acsl_assert_data.fct = "instrument2"; + __gen_e_acsl_assert_data.line = 33; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __retres = instrument2(p); __e_acsl_delete_block((void *)(& p)); @@ -153,10 +192,22 @@ int __gen_e_acsl_uninstrument2(int *p) int __retres; { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","uninstrument2", - "\\valid(p)","tests/special/e-acsl-instrument.c",16); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c"; + __gen_e_acsl_assert_data.fct = "uninstrument2"; + __gen_e_acsl_assert_data.line = 17; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } __e_acsl_sound_verdict = 0; __retres = uninstrument2(p); diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c new file mode 100644 index 0000000000000000000000000000000000000000..7825ef0da629bfe582ddc0db5e4e88b5bc657c7d --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c @@ -0,0 +1,33 @@ +/* Generated by Frama-C */ +#include "stddef.h" +#include "stdint.h" +#include "stdio.h" +extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; + +int main(void) +{ + int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + int value = 2147483647; + __e_acsl_store_block((void *)(& value),(size_t)4); + __e_acsl_full_init((void *)(& value)); + { + int __gen_e_acsl_x; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __gen_e_acsl_x = value; + __gen_e_acsl_assert_data.blocking = 0; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\let x = value; \\false"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-no-assert-print-data.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 14; + __e_acsl_assert(0,& __gen_e_acsl_assert_data); + } + /*@ check \let x = value; \false; */ ; + __retres = 0; + __e_acsl_delete_block((void *)(& value)); + __e_acsl_memory_clean(); + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c index 2f77399ecaa5a4d06eaa2187ba6d723f9cc485dc..a19e43d58079ff4d5cff6d21d57aca2e68656d7a 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c @@ -1,13 +1,15 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; int main(void) { int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __retres = 0; + __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c index 72d97a54831c7c1dff3f9c7169b1fea2e5589388..f2d5fd7585bba22c9fa4e4c3ab46dd63569bc0b0 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c index cf967bfa6fb56894ae6236270ff14523ae6d1469..b0b6577ff88bfe0b812d803b241e573ed69ae149 100644 --- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c +++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c @@ -1,23 +1,24 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires \valid(y); - requires *x ≥ 0; - ensures *\old(x) ≡ \old(*x) + 1; + requires *x >= 0; + ensures *\old(x) == \old(*x) + 1; assigns *x; assigns *x \from *x, x; behavior b1: - assumes *x ≡ 1; + assumes *x == 1; ensures *\old(x) < 0; assigns \nothing; behavior b2: - assumes *x ≡ 0; - ensures *\old(x) ≡ 1; + assumes *x == 0; + ensures *\old(x) == 1; complete behaviors b2, b1; disjoint behaviors b1, b2; @@ -28,42 +29,95 @@ void f(int *x, int *y) { long __gen_e_acsl_old_variant; { - int __gen_e_acsl_valid_read; - __e_acsl_store_block((void *)(& y),(size_t)8); - __e_acsl_store_block((void *)(& x),(size_t)8); - __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int), - (void *)x,(void *)(& x)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(x)", - "tests/special/e-acsl-valid.c",27); - __e_acsl_assert(*x >= 0,1,"Precondition","f","*x >= 0", - "tests/special/e-acsl-valid.c",27); - } - /*@ requires *x ≥ 0; - ensures 2 ≥ 1; - assigns *x; */ - { - __e_acsl_initialize((void *)x,sizeof(int)); - (*x) ++; + { + int __gen_e_acsl_valid_read; + __e_acsl_store_block((void *)(& y),(size_t)8); + __e_acsl_store_block((void *)(& x),(size_t)8); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*x",0,*x); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x", + (void *)x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int), + (void *)x,(void *)(& x)); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(x)"; + __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 27; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "*x >= 0"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 27; + __e_acsl_assert(*x >= 0,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + } + /*@ requires *x >= 0; + ensures 2 >= 1; + assigns *x; */ + { + __e_acsl_initialize((void *)x,sizeof(int)); + (*x) ++; + } + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "2 >= 1"; + __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 28; + __e_acsl_assert(1,& __gen_e_acsl_assert_data_3); } - __e_acsl_assert(1,1,"Postcondition","f","2 >= 1", - "tests/special/e-acsl-valid.c",28); { int i = 0; - /*@ loop invariant 0 ≤ i ≤ 1; + /*@ loop invariant 0 <= i <= 1; loop variant 2 - i; */ while (1) { __gen_e_acsl_old_variant = 2L - i; if (! (i < 1)) break; - /*@ assert 1 ≡ 1; */ ; + /*@ assert 1 == 1; */ ; /*@ assert \valid(y); */ ; i ++; - __e_acsl_assert(__gen_e_acsl_old_variant >= 0L,1,"Variant","f", - "(old 2 - i) \342\211\245 0", - "tests/special/e-acsl-valid.c",33); - __e_acsl_assert(__gen_e_acsl_old_variant > 2L - i,1,"Variant","f", - "(old 2 - i) > 2 - i","tests/special/e-acsl-valid.c", - 33); + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4, + "old 2 - i",0,__gen_e_acsl_old_variant); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_5, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_5, + "current 2 - i",0,2L - i); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Variant"; + __gen_e_acsl_assert_data_4.pred_txt = "(old 2 - i) >= 0"; + __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_4.fct = "f"; + __gen_e_acsl_assert_data_4.line = 33; + __e_acsl_assert(__gen_e_acsl_old_variant >= 0L, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Variant"; + __gen_e_acsl_assert_data_5.pred_txt = "(old 2 - i) > 2 - i"; + __gen_e_acsl_assert_data_5.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_5.fct = "f"; + __gen_e_acsl_assert_data_5.line = 33; + __e_acsl_assert(__gen_e_acsl_old_variant > 2L - i, + & __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + } } } __e_acsl_delete_block((void *)(& y)); @@ -90,19 +144,19 @@ int main(void) } /*@ requires \valid(y); - requires *x ≥ 0; - ensures *\old(x) ≡ \old(*x) + 1; + requires *x >= 0; + ensures *\old(x) == \old(*x) + 1; assigns *x; assigns *x \from *x, x; behavior b1: - assumes *x ≡ 1; + assumes *x == 1; ensures *\old(x) < 0; assigns \nothing; behavior b2: - assumes *x ≡ 0; - ensures *\old(x) ≡ 1; + assumes *x == 0; + ensures *\old(x) == 1; complete behaviors b2, b1; disjoint behaviors b1, b2; @@ -118,34 +172,98 @@ void __gen_e_acsl_f(int *x, int *y) __e_acsl_store_block((void *)(& y),(size_t)8); __e_acsl_store_block((void *)(& x),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"y",(void *)y); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)y,sizeof(int),(void *)y, (void *)(& y)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","f","\\valid(y)", - "tests/special/e-acsl-valid.c",12); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(y)",0, + __gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Precondition"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(y)"; + __gen_e_acsl_assert_data.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data.fct = "f"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x",(void *)x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int), (void *)x,(void *)(& x)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f", - "mem_access: \\valid_read(x)", - "tests/special/e-acsl-valid.c",17); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "RTE"; + __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(x)"; + __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_2.fct = "f"; + __gen_e_acsl_assert_data_2.line = 17; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, *x == 1); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"x",(void *)x); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)x,sizeof(int), (void *)x,(void *)(& x)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f", - "mem_access: \\valid_read(x)", - "tests/special/e-acsl-valid.c",21); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(x)"; + __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_3.fct = "f"; + __gen_e_acsl_assert_data_3.line = 21; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, *x == 0); __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract); - __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","f", - "all behaviors complete","tests/special/e-acsl-valid.c", - 26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Precondition"; + __gen_e_acsl_assert_data_4.pred_txt = "all behaviors complete"; + __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_4.fct = "f"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1, + & __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors ((__e_acsl_contract_t const *)__gen_e_acsl_contract); - __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","f", - "all behaviors disjoint","tests/special/e-acsl-valid.c", - 26); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "number of active behaviors",0, + __gen_e_acsl_active_bhvrs); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Precondition"; + __gen_e_acsl_assert_data_7.pred_txt = "all behaviors disjoint"; + __gen_e_acsl_assert_data_7.file = "tests/special/e-acsl-valid.c"; + __gen_e_acsl_assert_data_7.fct = "f"; + __gen_e_acsl_assert_data_7.line = 26; + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1, + & __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } f(x,y); __e_acsl_contract_clean(__gen_e_acsl_contract); diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log new file mode 100644 index 0000000000000000000000000000000000000000..0b7ca7801ce6a4e9822b80836dc55483113e56df --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log @@ -0,0 +1,6 @@ +tests/special/e-acsl-external-print-value.c: In function 'main' +tests/special/e-acsl-external-print-value.c:7: Error: Assertion failed: + The failing predicate is: + \let x = value; \false. + With values: + - custom print for value diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log index f68292661579bde37ffd5da4872649306018fbda..df9b9d86eeabe595b32ba2cc2bebad46a7947a9d 100644 --- a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log @@ -1,16 +1,16 @@ tests/special/e-acsl-instrument.c: In function 'instrument2' -tests/special/e-acsl-instrument.c:32: Warning: no sound verdict for Precondition (guess: ok). +tests/special/e-acsl-instrument.c:33: Warning: no sound verdict for Precondition (guess: ok). the considered predicate is: \valid(p) tests/special/e-acsl-instrument.c: In function 'uninstrument2' -tests/special/e-acsl-instrument.c:16: Warning: no sound verdict for Precondition (guess: ok). +tests/special/e-acsl-instrument.c:17: Warning: no sound verdict for Precondition (guess: ok). the considered predicate is: \valid(p) tests/special/e-acsl-instrument.c: In function 'main' -tests/special/e-acsl-instrument.c:60: Warning: no sound verdict for Assertion (guess: ok). +tests/special/e-acsl-instrument.c:61: Warning: no sound verdict for Assertion (guess: ok). the considered predicate is: \initialized(&x) tests/special/e-acsl-instrument.c: In function 'main' -tests/special/e-acsl-instrument.c:61: Warning: no sound verdict for Assertion (guess: ok). +tests/special/e-acsl-instrument.c:62: Warning: no sound verdict for Assertion (guess: ok). the considered predicate is: \initialized(&y) diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log new file mode 100644 index 0000000000000000000000000000000000000000..8b4518d17422bcadfe3c85ae968b0bfe6b85f734 --- /dev/null +++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log @@ -0,0 +1,4 @@ +tests/special/e-acsl-no-assert-print-data.c: In function 'main' +tests/special/e-acsl-no-assert-print-data.c:14: Error: Assertion failed: + The failing predicate is: + \let x = value; \false. diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3ae40d5d7872ad1db6e7c6d073868023c2ab74b7 100644 --- a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log @@ -0,0 +1,17 @@ +>>> HEAP --------------------- + Application: 128 MB [0x00000-00000-00000, 0x00000-00000-00000] + Primary : 128 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } + Secondary : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } +>>> STACK -------------------- + Application: 16 MB [0x00000-00000-00000, 0x00000-00000-00000] + Primary : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } + Secondary : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } +>>> GLOBAL ------------------- + Application: 0 MB [0x00000-00000-00000, 0x00000-00000-00000] + Primary : 0 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } + Secondary : 0 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } +>>> TLS ---------------------- + Application: 64 MB [0x00000-00000-00000, 0x00000-00000-00000] + Primary : 64 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } + Secondary : 64 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx } +>>> -------------------------- diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c index 0324021b4b2ed6ab6d035ed2f388e2ba6056757d..dfc3a961e287759cb75665bcf1d12a5be972ccf2 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c @@ -1,5 +1,4 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" #include "stdint.h" #include "stdio.h" diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c index f5eef9929a553ac34af169aa1d9f7dbf2e00e0c2..908470318954eceb12e741ba463182b69e076020 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -9,42 +10,105 @@ int main(int argc, char const **argv) __e_acsl_memory_init(& argc,(char ***)(& argv),(size_t)8); { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&argc", + (void *)(& argc)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)", + 0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)(& argc),sizeof(int), (void *)(& argc),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&argc)", - "tests/temporal/t_args.c",8); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&argc)", + 0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(&argc)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_args.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 8; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(&argc); */ ; { int __gen_e_acsl_valid_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"argv", + (void *)argv); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char const *)",0, + sizeof(char const *)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)argv,sizeof(char const *), (void *)argv,(void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main", - "\\valid(argv)","tests/temporal/t_args.c",9); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(argv)",0,__gen_e_acsl_valid_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(argv)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_args.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 9; + __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(argv); */ ; { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"argv", + (void *)argv); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char const *)",0, + sizeof(char const *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)argv, sizeof(char const *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(argv)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"*argv", + (void *)*argv); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"argv", + (void *)argv); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char const *)",0, + sizeof(char const *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)argv, sizeof(char const *), (void *)argv, (void *)(& argv)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(argv)", - "tests/temporal/t_args.c",10); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(argv)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_args.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 10; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char const)",0, + sizeof(char const)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*argv,sizeof(char const), (void *)*argv,(void *)argv); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(*argv)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and = __gen_e_acsl_valid_3; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(*argv)", - "tests/temporal/t_args.c",10); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(*argv)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_args.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 10; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(*argv); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c index 17349b414867ebc57efc76abda167c3f1087dc35..8119c3e7c4a1f1153a52ea0642dbff2b49e58b0e 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -25,53 +25,115 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int **)src", + (void *)(src)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(src), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized((int **)src)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"src[0]", + (void *)src[0]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)src[0],sizeof(int), (void *)src[0],(void *)(src)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(src[0])",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(src[0])", - "tests/temporal/t_array.c",12); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(src[0])"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_array.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 12; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(src[0]); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&src[1]", + (void *)(& src[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& src[1]), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&src[1])",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"src[1]", + (void *)src[1]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)src[1],sizeof(int), (void *)src[1], (void *)(& src[1])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(src[1])",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main", - "\\valid(src[1])","tests/temporal/t_array.c",13); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(src[1])"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_array.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 13; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(src[1]); */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&src[2]", + (void *)(& src[2])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& src[2]), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&src[2])",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src[2]", + (void *)src[2]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)src[2],sizeof(int), (void *)src[2], (void *)(& src[2])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(src[2])",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(! __gen_e_acsl_and_3,1,"Assertion","main", - "!\\valid(src[2])","tests/temporal/t_array.c",14); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(src[2])"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_array.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 14; + __e_acsl_assert(! __gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(src[2]); */ ; + /*@ assert !\valid(src[2]); */ ; __retres = 0; __e_acsl_delete_block((void *)(src)); __e_acsl_delete_block((void *)(& b)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c index 26ac8e12f25ce50dd420654192056f455df54886..d78aaaa218b10b3ed68431b902fe3cb97f2f33d6 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -28,33 +28,73 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(char),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_char.c",15); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_char.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(char),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_char.c",16); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_char.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(q); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c index 2dd226207fca2c2718cdea9646ee68554f5691c3..174c9b8d34386f733136caeae8de239e52e3802b 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -10,24 +10,53 @@ void area_triangle(double (*vertices)[4]) int __gen_e_acsl_valid_read; __e_acsl_store_block((void *)(& vertices),(size_t)8); __e_acsl_temporal_pull_parameter((void *)(& vertices),0U,8UL); + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data, + "(double *)*(vertices + 0)", + (void *)(*(vertices + 0))); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(*(vertices + 0)), sizeof(double), (void *)(*(vertices + 0)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"Assertion","area_triangle", - "rte: mem_access: \\valid_read((double *)*(vertices + 0))", - "tests/temporal/t_darray.c",6); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "rte: mem_access: \\valid_read((double *)*(vertices + 0))", + 0,__gen_e_acsl_valid_read); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "rte: mem_access: \\valid_read((double *)*(vertices + 0))"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_darray.c"; + __gen_e_acsl_assert_data.fct = "area_triangle"; + __gen_e_acsl_assert_data.line = 6; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert rte: mem_access: \valid_read((double *)*(vertices + 0)); */ ; { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2, + "(double *)*(vertices + 1)", + (void *)(*(vertices + 1))); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(double)",0,sizeof(double)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(*(vertices + 1)), sizeof(double), (void *)(*(vertices + 1)), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"Assertion","area_triangle", - "rte: mem_access: \\valid_read((double *)*(vertices + 1))", - "tests/temporal/t_darray.c",7); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "rte: mem_access: \\valid_read((double *)*(vertices + 1))", + 0,__gen_e_acsl_valid_read_2); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "rte: mem_access: \\valid_read((double *)*(vertices + 1))"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_darray.c"; + __gen_e_acsl_assert_data_2.fct = "area_triangle"; + __gen_e_acsl_assert_data_2.line = 7; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert rte: mem_access: \valid_read((double *)*(vertices + 1)); */ ; __e_acsl_delete_block((void *)(& vertices)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c index 44b32fb0b13f0699b87c1da69c93901bee899264..2407578f325e1f8174550770fbe5c24f717f0e95 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -18,10 +19,24 @@ int main(void) while (i < 3) { { int __gen_e_acsl_valid; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid = __e_acsl_valid((void *)(p + i),sizeof(int *), (void *)p,(void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main", - "\\valid(p + i)","tests/temporal/t_dpointer.c",13); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(p + i)",0,__gen_e_acsl_valid); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p + i)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_dpointer.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p + i); */ ; __e_acsl_initialize((void *)(p + i),sizeof(int *)); @@ -32,26 +47,61 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(p + i), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(p + i)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*(p + i)", + (void *)*(p + i)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"i",0,i); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(p + i), sizeof(int *), (void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(p + i)", - "tests/temporal/t_dpointer.c",15); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p + i)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_dpointer.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)*(p + i),sizeof(int), (void *)*(p + i), (void *)(p + i)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(*(p + i))",0, + __gen_e_acsl_valid_2); __gen_e_acsl_and = __gen_e_acsl_valid_2; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main", - "\\valid(*(p + i))","tests/temporal/t_dpointer.c",15); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(*(p + i))"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_dpointer.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 15; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(*(p + i)); */ ; i ++; @@ -66,29 +116,61 @@ int main(void) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(p + 2), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(p + 2)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_read_2; int __gen_e_acsl_valid_3; + /*@ assert Eva: dangling_pointer: !\dangling(p + 2); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"*(p + 2)", + (void *)*(p + 2)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + 2), sizeof(int *), (void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "mem_access: \\valid_read(p + 2)", - "tests/temporal/t_dpointer.c",21); - /*@ assert Eva: dangling_pointer: ¬\dangling(p + 2); */ + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(p + 2)"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_dpointer.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 21; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*(p + 2),sizeof(int), (void *)*(p + 2),(void *)( p + 2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(*(p + 2))",0, + __gen_e_acsl_valid_3); __gen_e_acsl_and_2 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main", - "!\\valid(*(p + 2))","tests/temporal/t_dpointer.c",21); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(*(p + 2))"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_dpointer.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 21; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(*(p + 2)); */ ; + /*@ assert !\valid(*(p + 2)); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); __e_acsl_memory_clean(); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c index 5759e6ea84b71493b7f495f7554bd37bbb5f3edc..41b1be9b3436f33ebbb69cb4c828d2c1053ef8e7 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -55,17 +55,38 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_fptr.c",19); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_fptr.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 19; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(q); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c index e883e275a28ba0a40a14da678e0c6f20a8542ebd..5109aa1cfbeff3ffbb33fe0a1ef24df161612b0d 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; @@ -43,35 +44,66 @@ int main(void) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&q)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(char),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(char), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_and_3 = __gen_e_acsl_and_2; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid(q) && \\valid(p)","tests/temporal/t_fun_lib.c", - 15); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(q) && \\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_fun_lib.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \valid(q) ∧ \valid(p); */ ; + /*@ assert \valid(q) && \valid(p); */ ; __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); __e_acsl_temporal_save_nreferent_parameter((void *)(& q),1U); @@ -88,17 +120,38 @@ int main(void) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&path", + (void *)(& path)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& path), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&path)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"path", + (void *)path); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)path,sizeof(char), (void *)path,(void *)(& path)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(path)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_4 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(path)", - "tests/temporal/t_fun_lib.c",22); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(path)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_fun_lib.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 22; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(path); */ ; __e_acsl_temporal_reset_parameters(); @@ -113,35 +166,68 @@ int main(void) int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_5; int __gen_e_acsl_and_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(char),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)", + 0,__gen_e_acsl_valid_4); __gen_e_acsl_and_5 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_5 = 0; if (! __gen_e_acsl_and_5) { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&path", + (void *)(& path)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& path), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&path)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"path", + (void *)path); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)path,sizeof(char), (void *)path,(void *)(& path)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(path)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_6 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_6 = 0; __gen_e_acsl_and_7 = ! __gen_e_acsl_and_6; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main", - "!\\valid(p) && !\\valid(path)", - "tests/temporal/t_fun_lib.c",29); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(p) && !\\valid(path)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_fun_lib.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 29; + __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert ¬\valid(p) ∧ ¬\valid(path); */ ; + /*@ assert !\valid(p) && !\valid(path); */ ; __retres = 0; __e_acsl_delete_block((void *)(& path)); __e_acsl_delete_block((void *)(& q)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c index 64bb8c9ecbf2e566cb4a05fa510668b941c25e74..e81eaff83aafca13aef4ed2a85d0b1ce4851ed0f 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c @@ -41,17 +41,36 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_fun_ptr.c",28); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_fun_ptr.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 28; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c index ad2ee7a02d6a21a388d24b3c7090113ef50d5071..a02788ad596ce905452650cea65b4a449c8ac0e7 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string_2; @@ -7,14 +8,14 @@ char *__gen_e_acsl_literal_string; extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; /*@ requires valid_name: valid_read_string(name); - ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result); + ensures null_or_valid_result: \result == \null || \valid(\result); assigns \result; assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..)); */ char *__gen_e_acsl_getenv(char const *name); /*@ requires valid_name: valid_read_string(name); - ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result); + ensures null_or_valid_result: \result == \null || \valid(\result); assigns \result; assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..)); */ @@ -29,17 +30,32 @@ char *__gen_e_acsl_getenv(char const *name) { int __gen_e_acsl_or; __e_acsl_temporal_save_return((void *)(& __retres)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result", + (void *)__retres); if (__retres == (char *)0) __gen_e_acsl_or = 1; else { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result", + (void *)__retres); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)__retres,sizeof(char), (void *)__retres, (void *)(& __retres)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(\\result)",0,__gen_e_acsl_valid); __gen_e_acsl_or = __gen_e_acsl_valid; } - __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","getenv", - "null_or_valid_result: \\result == \\null || \\valid(\\result)", - "FRAMAC_SHARE/libc/stdlib.h",488); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Postcondition"; + __gen_e_acsl_assert_data_2.pred_txt = "null_or_valid_result: \\result == \\null || \\valid(\\result)"; + __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdlib.h"; + __gen_e_acsl_assert_data_2.fct = "getenv"; + __gen_e_acsl_assert_data_2.line = 488; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); __e_acsl_delete_block((void *)(& __retres)); return __retres; } @@ -85,48 +101,90 @@ int main(int argc, char const **argv) __e_acsl_full_init((void *)(& g2)); { int __gen_e_acsl_or; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"g1",(void *)g1); if (g1 == (char *)0) __gen_e_acsl_or = 1; else { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&g1", + (void *)(& g1)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& g1), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&g1)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"g1", + (void *)g1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)g1,sizeof(char), (void *)g1,(void *)(& g1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(g1)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; __gen_e_acsl_or = __gen_e_acsl_and; } - __e_acsl_assert(__gen_e_acsl_or,1,"Assertion","main", - "g1 == \\null || \\valid(g1)", - "tests/temporal/t_getenv.c",13); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "g1 == \\null || \\valid(g1)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_getenv.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 13; + __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert g1 ≡ \null ∨ \valid(g1); */ ; + /*@ assert g1 == \null || \valid(g1); */ ; { int __gen_e_acsl_or_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g2", + (void *)g2); if (g2 == (char *)0) __gen_e_acsl_or_2 = 1; else { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g2", + (void *)(& g2)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& g2), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&g2)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g2", + (void *)g2); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)g2,sizeof(char), (void *)g2,(void *)(& g2)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(g2)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_or_2 = __gen_e_acsl_and_2; } - __e_acsl_assert(__gen_e_acsl_or_2,1,"Assertion","main", - "g2 == \\null || \\valid(g2)", - "tests/temporal/t_getenv.c",14); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "g2 == \\null || \\valid(g2)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_getenv.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 14; + __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert g2 ≡ \null ∨ \valid(g2); */ ; + /*@ assert g2 == \null || \valid(g2); */ ; __retres = 0; __e_acsl_delete_block((void *)(& g2)); __e_acsl_delete_block((void *)(& g1)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c index 5206161a3d3e05c067842cd5b3d52fa7f86ca9d6..d6d8f0bc312cd9283b3b119873c5c18b9816b82f 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; @@ -37,17 +37,37 @@ void build_tree(tree_desc *desc) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&extra", + (void *)(& extra)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& extra), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&extra)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"extra", + (void *)extra); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)extra,sizeof(int), (void *)extra,(void *)(& extra)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(extra)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","build_tree", - "\\valid(extra)","tests/temporal/t_global_init.c",34); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(extra)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_global_init.c"; + __gen_e_acsl_assert_data.fct = "build_tree"; + __gen_e_acsl_assert_data.line = 34; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(extra); */ ; __e_acsl_delete_block((void *)(& desc)); @@ -160,32 +180,72 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(char **)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(char *), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(p)",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid_read(p)", - "tests/temporal/t_global_init.c",49); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_global_init.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 49; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid_read(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p, sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_2; int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*p", + (void *)*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(char **)); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p, sizeof(char *), (void *)p, @@ -193,17 +253,33 @@ int main(int argc, char const **argv) __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main", - "mem_access: \\valid_read(p)", - "tests/temporal/t_global_init.c",50); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_global_init.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 50; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)*p, sizeof(char), (void *)*p,(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid_read(*p)",0, + __gen_e_acsl_valid_read_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid_read(*p)","tests/temporal/t_global_init.c",50); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(*p)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_global_init.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 50; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid_read(*p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c index 72fec76659a77a3aa1be7d0ed9597500503ccbce..830020b4849705f9ef65bfe67f8a3858c9e11c7b 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -54,52 +54,104 @@ int main(int argc, char const **argv) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_and_3 = __gen_e_acsl_and_2; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid(p) && \\valid(q)","tests/temporal/t_labels.c", - 26); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(p) && \\valid(q)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_labels.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 26; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \valid(p) ∧ \valid(q); */ ; + /*@ assert \valid(p) && \valid(q); */ ; __e_acsl_full_init((void *)(& q)); LAB2: __e_acsl_temporal_store_nreferent((void *)(& q),(void *)(& p)); q = p; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)", + 0,__gen_e_acsl_valid_3); __gen_e_acsl_and_4 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_labels.c",30); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_labels.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 30; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(p); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c index 55a7f643816a48caf304ba6d625c12f67541b7de..38fe4b6ad0718cc9be747f4c310e022bd87a8060 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_2; char *__gen_e_acsl_literal_string; @@ -41,35 +41,67 @@ int main(void) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&f", + (void *)(& f)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& f), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&f)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"f",(void *)f); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)f,sizeof(char), (void *)f,(void *)(& f)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(f)",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&f", + (void *)(& f)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& f), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&f)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"f", + (void *)f); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)f,sizeof(char),(void *)f, (void *)(& f)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(f)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and_2 = __gen_e_acsl_valid; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_and_3 = ! __gen_e_acsl_and_2; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid_read(f) && !\\valid(f)", - "tests/temporal/t_lit_string.c",9); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(f) && !\\valid(f)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_lit_string.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 9; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \valid_read(f) ∧ ¬\valid(f); */ ; + /*@ assert \valid_read(f) && !\valid(f); */ ; __e_acsl_full_init((void *)(& g)); __e_acsl_temporal_store_nblock((void *)(& g), (void *)__gen_e_acsl_literal_string_2); @@ -78,36 +110,70 @@ int main(void) int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_4; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g", + (void *)(& g)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& g), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&g)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g", + (void *)g); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)g,sizeof(char), (void *)g, (void *)(& g)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid_read(g)",0, + __gen_e_acsl_valid_read_2); __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and_4 = 0; if (__gen_e_acsl_and_4) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g", + (void *)(& g)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& g), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&g)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g", + (void *)g); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)g,sizeof(char), (void *)g,(void *)(& g)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(g)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_5 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_5 = 0; __gen_e_acsl_and_6 = ! __gen_e_acsl_and_5; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main", - "\\valid_read(g) && !\\valid(g)", - "tests/temporal/t_lit_string.c",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(g) && !\\valid(g)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_lit_string.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert \valid_read(g) ∧ ¬\valid(g); */ ; + /*@ assert \valid_read(g) && !\valid(g); */ ; char *p = f; __e_acsl_temporal_store_nreferent((void *)(& p),(void *)(& f)); __e_acsl_store_block((void *)(& p),(size_t)8); @@ -116,36 +182,70 @@ int main(void) int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_7; int __gen_e_acsl_and_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)p,sizeof(char), (void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid_read(p)",0, + __gen_e_acsl_valid_read_3); __gen_e_acsl_and_7 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_7 = 0; if (__gen_e_acsl_and_7) { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(char), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(p)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_8 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_8 = 0; __gen_e_acsl_and_9 = ! __gen_e_acsl_and_8; } else __gen_e_acsl_and_9 = 0; - __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main", - "\\valid_read(p) && !\\valid(p)", - "tests/temporal/t_lit_string.c",15); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(p) && !\\valid(p)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_lit_string.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 15; + __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \valid_read(p) ∧ ¬\valid(p); */ ; + /*@ assert \valid_read(p) && !\valid(p); */ ; __e_acsl_full_init((void *)(& q)); __e_acsl_temporal_store_nreferent((void *)(& q),(void *)(& f)); q = f; @@ -153,36 +253,70 @@ int main(void) int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_10; int __gen_e_acsl_and_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)q,sizeof(char), (void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid_read(q)",0, + __gen_e_acsl_valid_read_4); __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_4; } else __gen_e_acsl_and_10 = 0; if (__gen_e_acsl_and_10) { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(char), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(q)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_11 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_11 = 0; __gen_e_acsl_and_12 = ! __gen_e_acsl_and_11; } else __gen_e_acsl_and_12 = 0; - __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main", - "\\valid_read(q) && !\\valid(q)", - "tests/temporal/t_lit_string.c",18); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(q) && !\\valid(q)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_lit_string.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert \valid_read(q) ∧ ¬\valid(q); */ ; + /*@ assert \valid_read(q) && !\valid(q); */ ; __retres = 0; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c index b0625988e598137cca8e99072940b94c81ca3323..6cfc464bdcaa21c2e3425df273994ba8c4888ed6 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" char *__gen_e_acsl_literal_string_4; char *__gen_e_acsl_literal_string_3; @@ -31,17 +32,37 @@ void build_tree(tree_desc *desc) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&extra", + (void *)(& extra)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& extra), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&extra)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"extra", + (void *)extra); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)extra,sizeof(int), (void *)extra,(void *)(& extra)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(extra)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","build_tree", - "\\valid(extra)","tests/temporal/t_local_init.c",23); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(extra)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data.fct = "build_tree"; + __gen_e_acsl_assert_data.line = 23; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(extra); */ ; __e_acsl_delete_block((void *)(& desc)); @@ -142,32 +163,72 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(char **)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(char *), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid_read(p)",0, + __gen_e_acsl_valid_read); __gen_e_acsl_and = __gen_e_acsl_valid_read; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid_read(p)", - "tests/temporal/t_local_init.c",35); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid_read(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 35; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid_read(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p, sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(p)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_2; int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*p", + (void *)*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(char **)); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_read_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p, sizeof(char *), (void *)p, @@ -175,17 +236,33 @@ int main(int argc, char const **argv) __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main", - "mem_access: \\valid_read(p)", - "tests/temporal/t_local_init.c",36); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "RTE"; + __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 36; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)*p, sizeof(char), (void *)*p,(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid_read(*p)",0, + __gen_e_acsl_valid_read_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid_read(*p)","tests/temporal/t_local_init.c",36); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(*p)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 36; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid_read(*p); */ ; char *str[4] = @@ -208,34 +285,76 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p), sizeof(char **)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_read_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)p, sizeof(char *), (void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid_read(p)",0, + __gen_e_acsl_valid_read_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main", - "\\valid_read(p)","tests/temporal/t_local_init.c",42); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(p)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 42; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid_read(p); */ ; { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)p, sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_5; int __gen_e_acsl_valid_read_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"*p", + (void *)*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p), sizeof(char **)); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_read_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)p, sizeof(char *), (void *)p, @@ -243,17 +362,33 @@ int main(int argc, char const **argv) __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(__gen_e_acsl_and_5,1,"RTE","main", - "mem_access: \\valid_read(p)", - "tests/temporal/t_local_init.c",43); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "RTE"; + __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_6.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 43; + __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)*p, sizeof(char), (void *)*p,(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid_read(*p)",0, + __gen_e_acsl_valid_read_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main", - "\\valid_read(*p)","tests/temporal/t_local_init.c",43); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(*p)"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 43; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \valid_read(*p); */ ; char **P = (char **)(Strings); @@ -263,34 +398,76 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&P", + (void *)(& P)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& P), sizeof(char **)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&P)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_read_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"P", + (void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)P, sizeof(char *), (void *)P, (void *)(& P)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid_read(P)",0, + __gen_e_acsl_valid_read_7); __gen_e_acsl_and_7 = __gen_e_acsl_valid_read_7; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main", - "\\valid_read(P)","tests/temporal/t_local_init.c",47); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid_read(P)"; + __gen_e_acsl_assert_data_7.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 47; + __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid_read(P); */ ; { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"P",(void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)P, sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(P)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_initialized_9; int __gen_e_acsl_and_8; int __gen_e_acsl_valid_read_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*P", + (void *)*P); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&P", + (void *)(& P)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& P), sizeof(char **)); if (__gen_e_acsl_initialized_9) { int __gen_e_acsl_valid_read_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"P", + (void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)P, sizeof(char *), (void *)P, @@ -298,17 +475,33 @@ int main(int argc, char const **argv) __gen_e_acsl_and_8 = __gen_e_acsl_valid_read_8; } else __gen_e_acsl_and_8 = 0; - __e_acsl_assert(__gen_e_acsl_and_8,1,"RTE","main", - "mem_access: \\valid_read(P)", - "tests/temporal/t_local_init.c",48); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "RTE"; + __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(P)"; + __gen_e_acsl_assert_data_9.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 48; + __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)*P, sizeof(char), (void *)*P,(void *)P); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\valid_read(*P)",0, + __gen_e_acsl_valid_read_9); __gen_e_acsl_and_9 = __gen_e_acsl_valid_read_9; } else __gen_e_acsl_and_9 = 0; - __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main", - "\\valid_read(*P)","tests/temporal/t_local_init.c",48); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "\\valid_read(*P)"; + __gen_e_acsl_assert_data_8.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 48; + __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } /*@ assert \valid_read(*P); */ ; __e_acsl_full_init((void *)(& P)); @@ -317,34 +510,76 @@ int main(int argc, char const **argv) { int __gen_e_acsl_initialized_10; int __gen_e_acsl_and_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&P", + (void *)(& P)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& P), sizeof(char **)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&P)",0, + __gen_e_acsl_initialized_10); if (__gen_e_acsl_initialized_10) { int __gen_e_acsl_valid_read_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"P", + (void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)P, sizeof(char *), (void *)P, (void *)(& P)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\valid_read(P)",0, + __gen_e_acsl_valid_read_10); __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_10; } else __gen_e_acsl_and_10 = 0; - __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main", - "\\valid_read(P)","tests/temporal/t_local_init.c",52); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\valid_read(P)"; + __gen_e_acsl_assert_data_10.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 52; + __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \valid_read(P); */ ; { int __gen_e_acsl_initialized_11; int __gen_e_acsl_and_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"P",(void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)P, sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(P)",0, + __gen_e_acsl_initialized_11); if (__gen_e_acsl_initialized_11) { int __gen_e_acsl_initialized_12; int __gen_e_acsl_and_11; int __gen_e_acsl_valid_read_12; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"*P", + (void *)*P); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&P", + (void *)(& P)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char **)",0,sizeof(char **)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& P), sizeof(char **)); if (__gen_e_acsl_initialized_12) { int __gen_e_acsl_valid_read_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"P", + (void *)P); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)P, sizeof(char *), (void *)P, @@ -352,17 +587,33 @@ int main(int argc, char const **argv) __gen_e_acsl_and_11 = __gen_e_acsl_valid_read_11; } else __gen_e_acsl_and_11 = 0; - __e_acsl_assert(__gen_e_acsl_and_11,1,"RTE","main", - "mem_access: \\valid_read(P)", - "tests/temporal/t_local_init.c",53); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(P)"; + __gen_e_acsl_assert_data_12.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 53; + __e_acsl_assert(__gen_e_acsl_and_11,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)*P, sizeof(char), (void *)*P,(void *)P); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\valid_read(*P)",0, + __gen_e_acsl_valid_read_12); __gen_e_acsl_and_12 = __gen_e_acsl_valid_read_12; } else __gen_e_acsl_and_12 = 0; - __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main", - "\\valid_read(*P)","tests/temporal/t_local_init.c",53); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "\\valid_read(*P)"; + __gen_e_acsl_assert_data_11.file = "tests/temporal/t_local_init.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 53; + __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } /*@ assert \valid_read(*P); */ ; int extra_lbits[1] = {0}; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c index 28d445663fa2d5681b645ac2dc174e1e7685c768..1b61d34bc77ef5bdc4971b63294a84f20aabfbc6 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; @@ -49,7 +50,7 @@ int main(void) p = (int *)malloc((unsigned long)(1024 * 1024)); __e_acsl_temporal_store_nblock((void *)(& p),(void *)*(& p)); counter ++; - /*@ assert Eva: dangling_pointer: ¬\dangling(&q); */ + /*@ assert Eva: dangling_pointer: !\dangling(&q); */ if (p != q) { __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c index 93a179e2a29395b84dc30359889e3331d28443b9..f49e516c9b55ef0430ec452a8184901a0e82cf73 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -15,35 +16,75 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(p)", - "tests/temporal/t_malloc.c",11); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 11; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)", - "tests/temporal/t_malloc.c",12); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 12; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; __e_acsl_full_init((void *)(& p)); __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); @@ -55,33 +96,75 @@ int main(void) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)", + 0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_malloc.c",17); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 17; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(q)", + 0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_malloc.c",18); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 18; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(q); */ ; __e_acsl_temporal_reset_parameters(); @@ -91,36 +174,78 @@ int main(void) { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; - /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */ + /*@ assert Eva: dangling_pointer: !\dangling(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(p)", + 0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main","!\\valid(p)", - "tests/temporal/t_malloc.c",22); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 22; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(q)", + 0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","main","!\\valid(q)", - "tests/temporal/t_malloc.c",23); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_6.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 23; + __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; __e_acsl_full_init((void *)(& p)); __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); @@ -129,35 +254,77 @@ int main(void) { int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_7; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(p)", + 0,__gen_e_acsl_valid_7); __gen_e_acsl_and_7 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_malloc.c",28); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_7.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 28; + __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid(p); */ ; { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(q)", + 0,__gen_e_acsl_valid_8); __gen_e_acsl_and_8 = __gen_e_acsl_valid_8; } else __gen_e_acsl_and_8 = 0; - __e_acsl_assert(! __gen_e_acsl_and_8,1,"Assertion","main","!\\valid(q)", - "tests/temporal/t_malloc.c",29); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_8.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 29; + __e_acsl_assert(! __gen_e_acsl_and_8,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; __e_acsl_initialize((void *)q,sizeof(int)); *q = 1; __e_acsl_initialize((void *)p,sizeof(int)); @@ -170,17 +337,38 @@ int main(void) { int __gen_e_acsl_initialized_9; int __gen_e_acsl_and_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_9); if (__gen_e_acsl_initialized_9) { int __gen_e_acsl_valid_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_9 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"\\valid(q)", + 0,__gen_e_acsl_valid_9); __gen_e_acsl_and_9 = __gen_e_acsl_valid_9; } else __gen_e_acsl_and_9 = 0; - __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_malloc.c",35); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_9.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 35; + __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \valid(q); */ ; __e_acsl_full_init((void *)(& q)); @@ -192,17 +380,38 @@ int main(void) { int __gen_e_acsl_initialized_10; int __gen_e_acsl_and_10; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_10); if (__gen_e_acsl_initialized_10) { int __gen_e_acsl_valid_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_10 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10, + "\\valid(q)",0,__gen_e_acsl_valid_10); __gen_e_acsl_and_10 = __gen_e_acsl_valid_10; } else __gen_e_acsl_and_10 = 0; - __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_malloc.c",39); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "Assertion"; + __gen_e_acsl_assert_data_10.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data_10.file = "tests/temporal/t_malloc.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 39; + __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); } /*@ assert \valid(q); */ ; __retres = 0; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c index c54bc9d417f2ae65931cfb5fd109ea98c165f2f7..e11e4ba74eebb932763d7207ae14eb94d9e0a7c7 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" @@ -12,9 +13,9 @@ extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -24,9 +25,8 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, size_t n); /*@ requires valid_s: valid_or_empty(s, n); - ensures - acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; - ensures result_ptr: \result ≡ \old(s); + ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true; + ensures result_ptr: \result == \old(s); assigns *((char *)s + (0 .. n - 1)), \result; assigns *((char *)s + (0 .. n - 1)) \from c; assigns \result \from s; @@ -65,34 +65,75 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int **)src", + (void *)(src)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(src), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized((int **)src)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"src[0]", + (void *)src[0]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)src[0],sizeof(int), (void *)src[0],(void *)(src)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(src[0])",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(src[0])", - "tests/temporal/t_memcpy.c",20); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(src[0])"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 20; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(src[0]); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&src[1]", + (void *)(& src[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& src[1]), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&src[1])",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"src[1]", + (void *)src[1]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)src[1],sizeof(int), (void *)src[1], (void *)(& src[1])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(src[1])",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main", - "\\valid(src[1])","tests/temporal/t_memcpy.c",21); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "\\valid(src[1])"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 21; + __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } /*@ assert \valid(src[1]); */ ; __e_acsl_temporal_reset_parameters(); @@ -104,34 +145,76 @@ int main(void) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"(int **)dest", + (void *)(dest)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized((int **)dest)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest[0]", + (void *)dest[0]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)dest[0],sizeof(int), (void *)dest[0],(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(dest[0])",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid(dest[0])","tests/temporal/t_memcpy.c",25); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(dest[0])"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 25; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(dest[0]); */ ; { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&dest[1]", + (void *)(& dest[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& dest[1]), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&dest[1])",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest[1]", + (void *)dest[1]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)dest[1],sizeof(int), (void *)dest[1], (void *)(& dest[1])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(dest[1])",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main", - "\\valid(dest[1])","tests/temporal/t_memcpy.c",26); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "\\valid(dest[1])"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 26; + __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } /*@ assert \valid(dest[1]); */ ; __e_acsl_temporal_reset_parameters(); @@ -141,36 +224,78 @@ int main(void) { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int **)dest", + (void *)(dest)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized((int **)dest)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"dest[0]", + (void *)dest[0]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)dest[0],sizeof(int), (void *)dest[0],(void *)(dest)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(dest[0])",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_5 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main", - "!\\valid(dest[0])","tests/temporal/t_memcpy.c",30); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(dest[0])"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 30; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(dest[0]); */ ; + /*@ assert !\valid(dest[0]); */ ; { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&dest[1]", + (void *)(& dest[1])); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& dest[1]), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&dest[1])",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"dest[1]", + (void *)dest[1]); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)dest[1],sizeof(int), (void *)dest[1], (void *)(& dest[1])); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(dest[1])",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_6 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","main", - "!\\valid(dest[1])","tests/temporal/t_memcpy.c",31); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(dest[1])"; + __gen_e_acsl_assert_data_6.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 31; + __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\valid(dest[1]); */ ; + /*@ assert !\valid(dest[1]); */ ; __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); int **p = malloc((unsigned long)size); @@ -192,16 +317,36 @@ int main(void) { int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_8; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)p, sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(p)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_7; int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"*p", + (void *)*p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& p), sizeof(int **)); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_read; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p, sizeof(int *), (void *)p, @@ -209,56 +354,124 @@ int main(void) __gen_e_acsl_and_7 = __gen_e_acsl_valid_read; } else __gen_e_acsl_and_7 = 0; - __e_acsl_assert(__gen_e_acsl_and_7,1,"RTE","main", - "mem_access: \\valid_read(p)", - "tests/temporal/t_memcpy.c",40); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "RTE"; + __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(p)"; + __gen_e_acsl_assert_data_8.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 40; + __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)*p,sizeof(int), (void *)*p,(void *)p); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid(*p)",0,__gen_e_acsl_valid_7); __gen_e_acsl_and_8 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_8 = 0; - __e_acsl_assert(__gen_e_acsl_and_8,1,"Assertion","main","\\valid(*p)", - "tests/temporal/t_memcpy.c",40); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid(*p)"; + __gen_e_acsl_assert_data_7.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 40; + __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid(*p); */ ; { int __gen_e_acsl_initialized_9; int __gen_e_acsl_and_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(p + 1), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(p + 1)",0, + __gen_e_acsl_initialized_9); if (__gen_e_acsl_initialized_9) { int __gen_e_acsl_valid_read_2; int __gen_e_acsl_valid_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"*(p + 1)", + (void *)*(p + 1)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + 1), sizeof(int *), (void *)p, (void *)(& p)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main", - "mem_access: \\valid_read(p + 1)", - "tests/temporal/t_memcpy.c",41); + __gen_e_acsl_assert_data_10.blocking = 1; + __gen_e_acsl_assert_data_10.kind = "RTE"; + __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(p + 1)"; + __gen_e_acsl_assert_data_10.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_10.fct = "main"; + __gen_e_acsl_assert_data_10.line = 41; + __e_acsl_assert(__gen_e_acsl_valid_read_2, + & __gen_e_acsl_assert_data_10); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)*(p + 1),sizeof(int), (void *)*(p + 1),(void *)( p + 1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\valid(*(p + 1))",0, + __gen_e_acsl_valid_8); __gen_e_acsl_and_9 = __gen_e_acsl_valid_8; } else __gen_e_acsl_and_9 = 0; - __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main", - "\\valid(*(p + 1))","tests/temporal/t_memcpy.c",41); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "\\valid(*(p + 1))"; + __gen_e_acsl_assert_data_9.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 41; + __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } /*@ assert \valid(*(p + 1)); */ ; { int __gen_e_acsl_initialized_10; int __gen_e_acsl_and_11; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)q, sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\initialized(q)",0, + __gen_e_acsl_initialized_10); if (__gen_e_acsl_initialized_10) { int __gen_e_acsl_initialized_11; int __gen_e_acsl_and_10; int __gen_e_acsl_valid_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"*q", + (void *)*q); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& q), sizeof(int **)); if (__gen_e_acsl_initialized_11) { int __gen_e_acsl_valid_read_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q, sizeof(int *), (void *)q, @@ -266,43 +479,91 @@ int main(void) __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_3; } else __gen_e_acsl_and_10 = 0; - __e_acsl_assert(__gen_e_acsl_and_10,1,"RTE","main", - "mem_access: \\valid_read(q)", - "tests/temporal/t_memcpy.c",42); + __gen_e_acsl_assert_data_12.blocking = 1; + __gen_e_acsl_assert_data_12.kind = "RTE"; + __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(q)"; + __gen_e_acsl_assert_data_12.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_12.fct = "main"; + __gen_e_acsl_assert_data_12.line = 42; + __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_12); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_9 = __e_acsl_valid((void *)*q,sizeof(int), (void *)*q,(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11, + "\\valid(*q)",0,__gen_e_acsl_valid_9); __gen_e_acsl_and_11 = __gen_e_acsl_valid_9; } else __gen_e_acsl_and_11 = 0; - __e_acsl_assert(! __gen_e_acsl_and_11,1,"Assertion","main", - "!\\valid(*q)","tests/temporal/t_memcpy.c",42); + __gen_e_acsl_assert_data_11.blocking = 1; + __gen_e_acsl_assert_data_11.kind = "Assertion"; + __gen_e_acsl_assert_data_11.pred_txt = "!\\valid(*q)"; + __gen_e_acsl_assert_data_11.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_11.fct = "main"; + __gen_e_acsl_assert_data_11.line = 42; + __e_acsl_assert(! __gen_e_acsl_and_11,& __gen_e_acsl_assert_data_11); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); } - /*@ assert ¬\valid(*q); */ ; + /*@ assert !\valid(*q); */ ; { int __gen_e_acsl_initialized_12; int __gen_e_acsl_and_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(q + 1), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\initialized(q + 1)",0, + __gen_e_acsl_initialized_12); if (__gen_e_acsl_initialized_12) { int __gen_e_acsl_valid_read_4; int __gen_e_acsl_valid_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"*(q + 1)", + (void *)*(q + 1)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(q + 1), sizeof(int *), (void *)q, (void *)(& q)); - __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main", - "mem_access: \\valid_read(q + 1)", - "tests/temporal/t_memcpy.c",43); + __gen_e_acsl_assert_data_14.blocking = 1; + __gen_e_acsl_assert_data_14.kind = "RTE"; + __gen_e_acsl_assert_data_14.pred_txt = "mem_access: \\valid_read(q + 1)"; + __gen_e_acsl_assert_data_14.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_14.fct = "main"; + __gen_e_acsl_assert_data_14.line = 43; + __e_acsl_assert(__gen_e_acsl_valid_read_4, + & __gen_e_acsl_assert_data_14); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_10 = __e_acsl_valid((void *)*(q + 1),sizeof(int), (void *)*(q + 1), (void *)(q + 1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13, + "\\valid(*(q + 1))",0, + __gen_e_acsl_valid_10); __gen_e_acsl_and_12 = __gen_e_acsl_valid_10; } else __gen_e_acsl_and_12 = 0; - __e_acsl_assert(! __gen_e_acsl_and_12,1,"Assertion","main", - "!\\valid(*(q + 1))","tests/temporal/t_memcpy.c",43); + __gen_e_acsl_assert_data_13.blocking = 1; + __gen_e_acsl_assert_data_13.kind = "Assertion"; + __gen_e_acsl_assert_data_13.pred_txt = "!\\valid(*(q + 1))"; + __gen_e_acsl_assert_data_13.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_13.fct = "main"; + __gen_e_acsl_assert_data_13.line = 43; + __e_acsl_assert(! __gen_e_acsl_and_12,& __gen_e_acsl_assert_data_13); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); } - /*@ assert ¬\valid(*(q + 1)); */ ; + /*@ assert !\valid(*(q + 1)); */ ; __e_acsl_full_init((void *)(& tmp_1)); __e_acsl_temporal_store_nblock((void *)(& tmp_1),(void *)0); tmp_1 = (int *)0; @@ -320,16 +581,36 @@ int main(void) { int __gen_e_acsl_initialized_13; int __gen_e_acsl_and_14; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)q, sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\initialized(q)",0, + __gen_e_acsl_initialized_13); if (__gen_e_acsl_initialized_13) { int __gen_e_acsl_initialized_14; int __gen_e_acsl_and_13; int __gen_e_acsl_valid_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"*q", + (void *)*q); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "sizeof(int **)",0,sizeof(int **)); __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(& q), sizeof(int **)); if (__gen_e_acsl_initialized_14) { int __gen_e_acsl_valid_read_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)q, sizeof(int *), (void *)q, @@ -337,41 +618,89 @@ int main(void) __gen_e_acsl_and_13 = __gen_e_acsl_valid_read_5; } else __gen_e_acsl_and_13 = 0; - __e_acsl_assert(__gen_e_acsl_and_13,1,"RTE","main", - "mem_access: \\valid_read(q)", - "tests/temporal/t_memcpy.c",48); + __gen_e_acsl_assert_data_16.blocking = 1; + __gen_e_acsl_assert_data_16.kind = "RTE"; + __gen_e_acsl_assert_data_16.pred_txt = "mem_access: \\valid_read(q)"; + __gen_e_acsl_assert_data_16.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_16.fct = "main"; + __gen_e_acsl_assert_data_16.line = 48; + __e_acsl_assert(__gen_e_acsl_and_13,& __gen_e_acsl_assert_data_16); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_11 = __e_acsl_valid((void *)*q,sizeof(int), (void *)*q,(void *)q); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15, + "\\valid(*q)",0,__gen_e_acsl_valid_11); __gen_e_acsl_and_14 = __gen_e_acsl_valid_11; } else __gen_e_acsl_and_14 = 0; - __e_acsl_assert(__gen_e_acsl_and_14,1,"Assertion","main","\\valid(*q)", - "tests/temporal/t_memcpy.c",48); + __gen_e_acsl_assert_data_15.blocking = 1; + __gen_e_acsl_assert_data_15.kind = "Assertion"; + __gen_e_acsl_assert_data_15.pred_txt = "\\valid(*q)"; + __gen_e_acsl_assert_data_15.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_15.fct = "main"; + __gen_e_acsl_assert_data_15.line = 48; + __e_acsl_assert(__gen_e_acsl_and_14,& __gen_e_acsl_assert_data_15); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); } /*@ assert \valid(*q); */ ; { int __gen_e_acsl_initialized_15; int __gen_e_acsl_and_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"q",(void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(q + 1), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "\\initialized(q + 1)",0, + __gen_e_acsl_initialized_15); if (__gen_e_acsl_initialized_15) { int __gen_e_acsl_valid_read_6; int __gen_e_acsl_valid_12; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"*(q + 1)", + (void *)*(q + 1)); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(q + 1), sizeof(int *), (void *)q, (void *)(& q)); - __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main", - "mem_access: \\valid_read(q + 1)", - "tests/temporal/t_memcpy.c",49); + __gen_e_acsl_assert_data_18.blocking = 1; + __gen_e_acsl_assert_data_18.kind = "RTE"; + __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(q + 1)"; + __gen_e_acsl_assert_data_18.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_18.fct = "main"; + __gen_e_acsl_assert_data_18.line = 49; + __e_acsl_assert(__gen_e_acsl_valid_read_6, + & __gen_e_acsl_assert_data_18); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_12 = __e_acsl_valid((void *)*(q + 1),sizeof(int), (void *)*(q + 1), (void *)(q + 1)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17, + "\\valid(*(q + 1))",0, + __gen_e_acsl_valid_12); __gen_e_acsl_and_15 = __gen_e_acsl_valid_12; } else __gen_e_acsl_and_15 = 0; - __e_acsl_assert(__gen_e_acsl_and_15,1,"Assertion","main", - "\\valid(*(q + 1))","tests/temporal/t_memcpy.c",49); + __gen_e_acsl_assert_data_17.blocking = 1; + __gen_e_acsl_assert_data_17.kind = "Assertion"; + __gen_e_acsl_assert_data_17.pred_txt = "\\valid(*(q + 1))"; + __gen_e_acsl_assert_data_17.file = "tests/temporal/t_memcpy.c"; + __gen_e_acsl_assert_data_17.fct = "main"; + __gen_e_acsl_assert_data_17.line = 49; + __e_acsl_assert(__gen_e_acsl_and_15,& __gen_e_acsl_assert_data_17); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17); } /*@ assert \valid(*(q + 1)); */ ; __retres = 0; @@ -387,9 +716,8 @@ int main(void) } /*@ requires valid_s: valid_or_empty(s, n); - ensures - acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true; - ensures result_ptr: \result ≡ \old(s); + ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true; + ensures result_ptr: \result == \old(s); assigns *((char *)s + (0 .. n - 1)), \result; assigns *((char *)s + (0 .. n - 1)) \from c; assigns \result \from s; @@ -407,11 +735,24 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n) __gen_e_acsl_at = s; __retres = memset(s,c,n); __e_acsl_initialize(s,n); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memset", - "result_ptr: \\result == \\old(s)", - "FRAMAC_SHARE/libc/string.h",135); - __e_acsl_delete_block((void *)(& s)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result", + __retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(s)", + __gen_e_acsl_at); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Postcondition"; + __gen_e_acsl_assert_data_3.pred_txt = "result_ptr: \\result == \\old(s)"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "memset"; + __gen_e_acsl_assert_data_3.line = 135; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); + __e_acsl_delete_block((void *)(& s)); + return __retres; + } } /*@ requires valid_dest: valid_or_empty(dest, n); @@ -421,9 +762,9 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n) \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)); ensures copied_contents: - memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡ + memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) == 0; - ensures result_ptr: \result ≡ \old(dest); + ensures result_ptr: \result == \old(dest); assigns *((char *)dest + (0 .. n - 1)), \result; assigns *((char *)dest + (0 .. n - 1)) \from *((char *)src + (0 .. n - 1)); @@ -460,6 +801,16 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, __e_acsl_store_block((void *)(& dest),(size_t)8); __e_acsl_temporal_pull_parameter((void *)(& dest),0U,8UL); __e_acsl_temporal_pull_parameter((void *)(& src),1U,8UL); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n); __gmpz_init_set_ui(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -477,43 +828,107 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size); if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; - else __gen_e_acsl_if = __gen_e_acsl_size; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0, + __gen_e_acsl_size); + __gen_e_acsl_if = __gen_e_acsl_size; + } __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)dest + 1 * 0), __gen_e_acsl_if,dest, (void *)(& dest)); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memcpy", - "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "RTE"; + __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))"; + __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_4.fct = "memcpy"; + __gen_e_acsl_assert_data_4.line = 98; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n); __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_2); if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; - else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0, + __gen_e_acsl_size_2); + __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + } __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)src + 1 * 0), __gen_e_acsl_if_2, (void *)src, (void *)(& src)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memcpy", - "separated_guard: \\valid_read((char *)src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "RTE"; + __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read((char *)src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_5.fct = "memcpy"; + __gen_e_acsl_assert_data_5.line = 98; + __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",dest); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; - else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_3); + __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + } + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src", + (void *)src); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)", + 0,1); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n); __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; - else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + else { + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0, + __gen_e_acsl_size_4); + __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + } __gen_e_acsl_separated = __e_acsl_separated((size_t)2, (char *)dest + 1 * 0, __gen_e_acsl_if_3, (char *)src + 1 * 0, __gen_e_acsl_if_4); - __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","memcpy", - "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))", - "FRAMAC_SHARE/libc/string.h",98); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))", + 0,__gen_e_acsl_separated); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Precondition"; + __gen_e_acsl_assert_data_3.pred_txt = "separation:\n \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))"; + __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_3.fct = "memcpy"; + __gen_e_acsl_assert_data_3.line = 98; + __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); __e_acsl_temporal_reset_parameters(); __e_acsl_temporal_reset_return(); __e_acsl_temporal_save_nreferent_parameter((void *)(& dest),0U); @@ -529,12 +944,25 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src, __gen_e_acsl_at = dest; __retres = memcpy(dest,src,n); __e_acsl_initialize(dest,n); - __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memcpy", - "result_ptr: \\result == \\old(dest)", - "FRAMAC_SHARE/libc/string.h",102); - __e_acsl_delete_block((void *)(& src)); - __e_acsl_delete_block((void *)(& dest)); - return __retres; + { + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\result", + __retres); + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)", + __gen_e_acsl_at); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Postcondition"; + __gen_e_acsl_assert_data_7.pred_txt = "result_ptr: \\result == \\old(dest)"; + __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h"; + __gen_e_acsl_assert_data_7.fct = "memcpy"; + __gen_e_acsl_assert_data_7.line = 102; + __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_delete_block((void *)(& src)); + __e_acsl_delete_block((void *)(& dest)); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c index d2fccd6d110b8a6a5ea893322af2ca29f610d2b2..cafa0b4ca8cd11221c76a958846a6e6861566b83 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -31,36 +31,76 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; - /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */ + /*@ assert Eva: dangling_pointer: !\dangling(&p); */ + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p, (void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0, + __gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(p)", - "tests/temporal/t_scope.c",15); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 15; + __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)", - "tests/temporal/t_scope.c",16); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 16; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int j = 8; __e_acsl_store_block((void *)(& j),(size_t)4); @@ -71,17 +111,38 @@ int main(void) { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(p)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_3 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_scope.c",21); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 21; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } /*@ assert \valid(p); */ ; __e_acsl_initialize((void *)p,sizeof(int)); @@ -89,25 +150,60 @@ int main(void) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_4; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int), (void *)q,(void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(q)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_4 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_4 = 0; - __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","main", - "!\\valid(q)","tests/temporal/t_scope.c",24); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 24; + __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; { int __gen_e_acsl_valid_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&j", + (void *)(& j)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(& j),sizeof(int), (void *)(& j),(void *)0); - __e_acsl_assert(__gen_e_acsl_valid_5,1,"Assertion","main", - "\\valid(&j)","tests/temporal/t_scope.c",25); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(&j)",0,__gen_e_acsl_valid_5); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "\\valid(&j)"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 25; + __e_acsl_assert(__gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } /*@ assert \valid(&j); */ ; __e_acsl_delete_block((void *)(& j)); @@ -125,19 +221,40 @@ int main(void) { int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_5; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(p)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_5 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_5 = 0; - __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main", - "!\\valid(p)","tests/temporal/t_scope.c",33); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(p)"; + __gen_e_acsl_assert_data_6.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 33; + __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\valid(p); */ ; + /*@ assert !\valid(p); */ ; __e_acsl_full_init((void *)(& q)); __e_acsl_temporal_store_nblock((void *)(& q),(void *)(& a)); q = & a; @@ -147,17 +264,38 @@ int main(void) { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p", + (void *)(& p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\initialized(&p)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p", + (void *)p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int), (void *)p,(void *)(& p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7, + "\\valid(p)",0,__gen_e_acsl_valid_7); __gen_e_acsl_and_6 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main","\\valid(p)", - "tests/temporal/t_scope.c",36); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "Assertion"; + __gen_e_acsl_assert_data_7.pred_txt = "\\valid(p)"; + __gen_e_acsl_assert_data_7.file = "tests/temporal/t_scope.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 36; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); } /*@ assert \valid(p); */ ; len --; diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c index cf3331c161ba0ccb1d28369c4ee644fbef937def..310c3c1122dcd71eac39cce93a553b95b690a5a4 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -46,68 +47,133 @@ int main(void) int __gen_e_acsl_initialized; int __gen_e_acsl_and; int __gen_e_acsl_and_3; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&t1.p", + (void *)(& t1.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& t1.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&t1.p)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t1.p", + (void *)t1.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid = __e_acsl_valid((void *)t1.p,sizeof(char), (void *)t1.p,(void *)(& t1.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(t1.p)",0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; if (__gen_e_acsl_and) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&t1.q", + (void *)(& t1.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& t1.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&t1.q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t1.q", + (void *)t1.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)t1.q,sizeof(char), (void *)t1.q,(void *)(& t1.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\valid(t1.q)",0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; __gen_e_acsl_and_3 = __gen_e_acsl_and_2; } else __gen_e_acsl_and_3 = 0; - __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main", - "\\valid(t1.p) && \\valid(t1.q)", - "tests/temporal/t_struct.c",30); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(t1.p) && \\valid(t1.q)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 30; + __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } - /*@ assert \valid(t1.p) ∧ \valid(t1.q); */ ; + /*@ assert \valid(t1.p) && \valid(t1.q); */ ; { int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_4; int __gen_e_acsl_and_6; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&t2.p", + (void *)(& t2.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& t2.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&t2.p)",0, + __gen_e_acsl_initialized_3); if (__gen_e_acsl_initialized_3) { int __gen_e_acsl_valid_3; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t2.p", + (void *)t2.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_3 = __e_acsl_valid((void *)t2.p,sizeof(char), (void *)t2.p,(void *)(& t2.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(t2.p)",0,__gen_e_acsl_valid_3); __gen_e_acsl_and_4 = __gen_e_acsl_valid_3; } else __gen_e_acsl_and_4 = 0; if (! __gen_e_acsl_and_4) { int __gen_e_acsl_initialized_4; int __gen_e_acsl_and_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&t2.q", + (void *)(& t2.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& t2.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&t2.q)",0, + __gen_e_acsl_initialized_4); if (__gen_e_acsl_initialized_4) { int __gen_e_acsl_valid_4; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t2.q", + (void *)t2.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_4 = __e_acsl_valid((void *)t2.q,sizeof(char), (void *)t2.q,(void *)(& t2.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\valid(t2.q)",0,__gen_e_acsl_valid_4); __gen_e_acsl_and_5 = __gen_e_acsl_valid_4; } else __gen_e_acsl_and_5 = 0; __gen_e_acsl_and_6 = ! __gen_e_acsl_and_5; } else __gen_e_acsl_and_6 = 0; - __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main", - "!\\valid(t2.p) && !\\valid(t2.q)", - "tests/temporal/t_struct.c",31); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(t2.p) && !\\valid(t2.q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 31; + __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(t2.p) ∧ ¬\valid(t2.q); */ ; + /*@ assert !\valid(t2.p) && !\valid(t2.q); */ ; __e_acsl_full_init((void *)(& t2)); __e_acsl_temporal_memcpy((void *)(& t2),(void *)(& t1),(size_t)16); t2 = t1; @@ -115,35 +181,68 @@ int main(void) int __gen_e_acsl_initialized_5; int __gen_e_acsl_and_7; int __gen_e_acsl_and_9; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&t2.p", + (void *)(& t2.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& t2.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&t2.p)",0, + __gen_e_acsl_initialized_5); if (__gen_e_acsl_initialized_5) { int __gen_e_acsl_valid_5; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"t2.p", + (void *)t2.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_5 = __e_acsl_valid((void *)t2.p,sizeof(char), (void *)t2.p,(void *)(& t2.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(t2.p)",0,__gen_e_acsl_valid_5); __gen_e_acsl_and_7 = __gen_e_acsl_valid_5; } else __gen_e_acsl_and_7 = 0; if (__gen_e_acsl_and_7) { int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&t2.q", + (void *)(& t2.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& t2.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\initialized(&t2.q)",0, + __gen_e_acsl_initialized_6); if (__gen_e_acsl_initialized_6) { int __gen_e_acsl_valid_6; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"t2.q", + (void *)t2.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_6 = __e_acsl_valid((void *)t2.q,sizeof(char), (void *)t2.q,(void *)(& t2.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3, + "\\valid(t2.q)",0,__gen_e_acsl_valid_6); __gen_e_acsl_and_8 = __gen_e_acsl_valid_6; } else __gen_e_acsl_and_8 = 0; __gen_e_acsl_and_9 = __gen_e_acsl_and_8; } else __gen_e_acsl_and_9 = 0; - __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main", - "\\valid(t2.p) && \\valid(t2.q)", - "tests/temporal/t_struct.c",34); + __gen_e_acsl_assert_data_3.blocking = 1; + __gen_e_acsl_assert_data_3.kind = "Assertion"; + __gen_e_acsl_assert_data_3.pred_txt = "\\valid(t2.p) && \\valid(t2.q)"; + __gen_e_acsl_assert_data_3.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_3.fct = "main"; + __gen_e_acsl_assert_data_3.line = 34; + __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_3); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); } - /*@ assert \valid(t2.p) ∧ \valid(t2.q); */ ; + /*@ assert \valid(t2.p) && \valid(t2.q); */ ; __e_acsl_initialize((void *)(& t2.p),sizeof(char *)); __e_acsl_temporal_store_nblock((void *)(& t2.p),(void *)0); t2.p = (char *)0; @@ -156,35 +255,68 @@ int main(void) int __gen_e_acsl_initialized_7; int __gen_e_acsl_and_10; int __gen_e_acsl_and_12; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&t2.p", + (void *)(& t2.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& t2.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&t2.p)",0, + __gen_e_acsl_initialized_7); if (__gen_e_acsl_initialized_7) { int __gen_e_acsl_valid_7; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t2.p", + (void *)t2.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_7 = __e_acsl_valid((void *)t2.p,sizeof(char), (void *)t2.p,(void *)(& t2.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(t2.p)",0,__gen_e_acsl_valid_7); __gen_e_acsl_and_10 = __gen_e_acsl_valid_7; } else __gen_e_acsl_and_10 = 0; if (! __gen_e_acsl_and_10) { int __gen_e_acsl_initialized_8; int __gen_e_acsl_and_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&t2.q", + (void *)(& t2.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& t2.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\initialized(&t2.q)",0, + __gen_e_acsl_initialized_8); if (__gen_e_acsl_initialized_8) { int __gen_e_acsl_valid_8; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t2.q", + (void *)t2.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_8 = __e_acsl_valid((void *)t2.q,sizeof(char), (void *)t2.q,(void *)(& t2.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4, + "\\valid(t2.q)",0,__gen_e_acsl_valid_8); __gen_e_acsl_and_11 = __gen_e_acsl_valid_8; } else __gen_e_acsl_and_11 = 0; __gen_e_acsl_and_12 = __gen_e_acsl_and_11; } else __gen_e_acsl_and_12 = 0; - __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main", - "!\\valid(t2.p) && \\valid(t2.q)", - "tests/temporal/t_struct.c",38); + __gen_e_acsl_assert_data_4.blocking = 1; + __gen_e_acsl_assert_data_4.kind = "Assertion"; + __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(t2.p) && \\valid(t2.q)"; + __gen_e_acsl_assert_data_4.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_4.fct = "main"; + __gen_e_acsl_assert_data_4.line = 38; + __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_4); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); } - /*@ assert ¬\valid(t2.p) ∧ \valid(t2.q); */ ; + /*@ assert !\valid(t2.p) && \valid(t2.q); */ ; __e_acsl_initialize((void *)(& l.t),sizeof(struct temporal_t)); __e_acsl_temporal_memcpy((void *)(& l.t),(void *)(& t2),(size_t)16); l.t = t2; @@ -192,64 +324,131 @@ int main(void) int __gen_e_acsl_initialized_9; int __gen_e_acsl_and_13; int __gen_e_acsl_and_15; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&l.t.p", + (void *)(& l.t.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& l.t.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&l.t.p)",0, + __gen_e_acsl_initialized_9); if (__gen_e_acsl_initialized_9) { int __gen_e_acsl_valid_9; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"l.t.p", + (void *)l.t.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_9 = __e_acsl_valid((void *)l.t.p,sizeof(char), (void *)l.t.p,(void *)(& l.t.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(l.t.p)",0,__gen_e_acsl_valid_9); __gen_e_acsl_and_13 = __gen_e_acsl_valid_9; } else __gen_e_acsl_and_13 = 0; if (! __gen_e_acsl_and_13) { int __gen_e_acsl_initialized_10; int __gen_e_acsl_and_14; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&l.t.q", + (void *)(& l.t.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& l.t.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\initialized(&l.t.q)",0, + __gen_e_acsl_initialized_10); if (__gen_e_acsl_initialized_10) { int __gen_e_acsl_valid_10; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"l.t.q", + (void *)l.t.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_10 = __e_acsl_valid((void *)l.t.q,sizeof(char), (void *)l.t.q, (void *)(& l.t.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5, + "\\valid(l.t.q)",0, + __gen_e_acsl_valid_10); __gen_e_acsl_and_14 = __gen_e_acsl_valid_10; } else __gen_e_acsl_and_14 = 0; __gen_e_acsl_and_15 = __gen_e_acsl_and_14; } else __gen_e_acsl_and_15 = 0; - __e_acsl_assert(__gen_e_acsl_and_15,1,"Assertion","main", - "!\\valid(l.t.p) && \\valid(l.t.q)", - "tests/temporal/t_struct.c",41); + __gen_e_acsl_assert_data_5.blocking = 1; + __gen_e_acsl_assert_data_5.kind = "Assertion"; + __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(l.t.p) && \\valid(l.t.q)"; + __gen_e_acsl_assert_data_5.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_5.fct = "main"; + __gen_e_acsl_assert_data_5.line = 41; + __e_acsl_assert(__gen_e_acsl_and_15,& __gen_e_acsl_assert_data_5); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); } - /*@ assert ¬\valid(l.t.p) ∧ \valid(l.t.q); */ ; + /*@ assert !\valid(l.t.p) && \valid(l.t.q); */ ; __e_acsl_full_init((void *)(& lp)); __e_acsl_temporal_store_nblock((void *)(& lp),(void *)(& l)); lp = & l; { int __gen_e_acsl_initialized_11; int __gen_e_acsl_and_16; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&lp->t.p", + (void *)(& lp->t.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& lp->t.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\initialized(&lp->t.p)",0, + __gen_e_acsl_initialized_11); if (__gen_e_acsl_initialized_11) { int __gen_e_acsl_valid_read; int __gen_e_acsl_valid_11; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"lp->t.p", + (void *)lp->t.p); + __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&lp->t.p", + (void *)(& lp->t.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& lp->t.p), sizeof(char *), (void *)(& lp->t.p), (void *)0); - __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main", - "mem_access: \\valid_read(&lp->t.p)", - "tests/temporal/t_struct.c",44); + __gen_e_acsl_assert_data_7.blocking = 1; + __gen_e_acsl_assert_data_7.kind = "RTE"; + __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(&lp->t.p)"; + __gen_e_acsl_assert_data_7.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_7.fct = "main"; + __gen_e_acsl_assert_data_7.line = 44; + __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_7); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_11 = __e_acsl_valid((void *)lp->t.p,sizeof(char), (void *)lp->t.p, (void *)(& lp->t.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6, + "\\valid(lp->t.p)",0, + __gen_e_acsl_valid_11); __gen_e_acsl_and_16 = __gen_e_acsl_valid_11; } else __gen_e_acsl_and_16 = 0; - __e_acsl_assert(! __gen_e_acsl_and_16,1,"Assertion","main", - "!\\valid(lp->t.p)","tests/temporal/t_struct.c",44); + __gen_e_acsl_assert_data_6.blocking = 1; + __gen_e_acsl_assert_data_6.kind = "Assertion"; + __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(lp->t.p)"; + __gen_e_acsl_assert_data_6.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_6.fct = "main"; + __gen_e_acsl_assert_data_6.line = 44; + __e_acsl_assert(! __gen_e_acsl_and_16,& __gen_e_acsl_assert_data_6); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); } - /*@ assert ¬\valid(lp->t.p); */ ; + /*@ assert !\valid(lp->t.p); */ ; __e_acsl_initialize((void *)(tarr),sizeof(temporal)); __e_acsl_temporal_memcpy((void *)(tarr),(void *)(& t2),(size_t)16); tarr[0] = t2; @@ -257,38 +456,73 @@ int main(void) int __gen_e_acsl_initialized_12; int __gen_e_acsl_and_17; int __gen_e_acsl_and_19; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&tarr[0].p", + (void *)(& tarr[0].p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& tarr[0].p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&tarr[0].p)",0, + __gen_e_acsl_initialized_12); if (__gen_e_acsl_initialized_12) { int __gen_e_acsl_valid_12; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"tarr[0].p", + (void *)tarr[0].p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_12 = __e_acsl_valid((void *)tarr[0].p,sizeof(char), (void *)tarr[0].p, (void *)(& tarr[0].p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\valid(tarr[0].p)",0, + __gen_e_acsl_valid_12); __gen_e_acsl_and_17 = __gen_e_acsl_valid_12; } else __gen_e_acsl_and_17 = 0; if (! __gen_e_acsl_and_17) { int __gen_e_acsl_initialized_13; int __gen_e_acsl_and_18; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&tarr[0].q", + (void *)(& tarr[0].q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& tarr[0].q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\initialized(&tarr[0].q)",0, + __gen_e_acsl_initialized_13); if (__gen_e_acsl_initialized_13) { int __gen_e_acsl_valid_13; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8, + "tarr[0].q",(void *)tarr[0].q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_13 = __e_acsl_valid((void *)tarr[0].q, sizeof(char), (void *)tarr[0].q, (void *)(& tarr[0].q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8, + "\\valid(tarr[0].q)",0, + __gen_e_acsl_valid_13); __gen_e_acsl_and_18 = __gen_e_acsl_valid_13; } else __gen_e_acsl_and_18 = 0; __gen_e_acsl_and_19 = __gen_e_acsl_and_18; } else __gen_e_acsl_and_19 = 0; - __e_acsl_assert(__gen_e_acsl_and_19,1,"Assertion","main", - "!\\valid(tarr[0].p) && \\valid(tarr[0].q)", - "tests/temporal/t_struct.c",47); + __gen_e_acsl_assert_data_8.blocking = 1; + __gen_e_acsl_assert_data_8.kind = "Assertion"; + __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(tarr[0].p) && \\valid(tarr[0].q)"; + __gen_e_acsl_assert_data_8.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_8.fct = "main"; + __gen_e_acsl_assert_data_8.line = 47; + __e_acsl_assert(__gen_e_acsl_and_19,& __gen_e_acsl_assert_data_8); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); } - /*@ assert ¬\valid(tarr[0].p) ∧ \valid(tarr[0].q); */ ; + /*@ assert !\valid(tarr[0].p) && \valid(tarr[0].q); */ ; __e_acsl_initialize((void *)(larr),sizeof(larger)); __e_acsl_temporal_memcpy((void *)(larr),(void *)(& l),(size_t)32); larr[0] = l; @@ -296,39 +530,74 @@ int main(void) int __gen_e_acsl_initialized_14; int __gen_e_acsl_and_20; int __gen_e_acsl_and_22; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&larr[0].t.p", + (void *)(& larr[0].t.p)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(& larr[0].t.p), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&larr[0].t.p)",0, + __gen_e_acsl_initialized_14); if (__gen_e_acsl_initialized_14) { int __gen_e_acsl_valid_14; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "larr[0].t.p",(void *)larr[0].t.p); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_14 = __e_acsl_valid((void *)larr[0].t.p, sizeof(char), (void *)larr[0].t.p, (void *)(& larr[0].t.p)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\valid(larr[0].t.p)",0, + __gen_e_acsl_valid_14); __gen_e_acsl_and_20 = __gen_e_acsl_valid_14; } else __gen_e_acsl_and_20 = 0; if (! __gen_e_acsl_and_20) { int __gen_e_acsl_initialized_15; int __gen_e_acsl_and_21; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "&larr[0].t.q",(void *)(& larr[0].t.q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char *)",0,sizeof(char *)); __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(& larr[0].t.q), sizeof(char *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\initialized(&larr[0].t.q)",0, + __gen_e_acsl_initialized_15); if (__gen_e_acsl_initialized_15) { int __gen_e_acsl_valid_15; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9, + "larr[0].t.q",(void *)larr[0].t.q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9, + "sizeof(char)",0,sizeof(char)); __gen_e_acsl_valid_15 = __e_acsl_valid((void *)larr[0].t.q, sizeof(char), (void *)larr[0].t.q, (void *)(& larr[0].t.q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9, + "\\valid(larr[0].t.q)",0, + __gen_e_acsl_valid_15); __gen_e_acsl_and_21 = __gen_e_acsl_valid_15; } else __gen_e_acsl_and_21 = 0; __gen_e_acsl_and_22 = __gen_e_acsl_and_21; } else __gen_e_acsl_and_22 = 0; - __e_acsl_assert(__gen_e_acsl_and_22,1,"Assertion","main", - "!\\valid(larr[0].t.p) && \\valid(larr[0].t.q)", - "tests/temporal/t_struct.c",50); + __gen_e_acsl_assert_data_9.blocking = 1; + __gen_e_acsl_assert_data_9.kind = "Assertion"; + __gen_e_acsl_assert_data_9.pred_txt = "!\\valid(larr[0].t.p) && \\valid(larr[0].t.q)"; + __gen_e_acsl_assert_data_9.file = "tests/temporal/t_struct.c"; + __gen_e_acsl_assert_data_9.fct = "main"; + __gen_e_acsl_assert_data_9.line = 50; + __e_acsl_assert(__gen_e_acsl_and_22,& __gen_e_acsl_assert_data_9); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); } - /*@ assert ¬\valid(larr[0].t.p) ∧ \valid(larr[0].t.q); */ ; + /*@ assert !\valid(larr[0].t.p) && \valid(larr[0].t.q); */ ; __retres = 0; __e_acsl_delete_block((void *)(larr)); __e_acsl_delete_block((void *)(& lp)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c index 8dd92ddbabe95047d7346030178dc49bb905e389..67c3b186c978cbcaa54d9cf521c5ea5e6aad7a87 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c +++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ -#include "__fc_alloc_axiomatic.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" extern __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict; @@ -25,17 +25,38 @@ int main(void) { int __gen_e_acsl_initialized; int __gen_e_acsl_and; + __e_acsl_assert_data_t __gen_e_acsl_assert_data = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data, + "\\initialized(&q)",0, + __gen_e_acsl_initialized); if (__gen_e_acsl_initialized) { int __gen_e_acsl_valid; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)", + 0,__gen_e_acsl_valid); __gen_e_acsl_and = __gen_e_acsl_valid; } else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(q)", - "tests/temporal/t_while.c",29); + __gen_e_acsl_assert_data.blocking = 1; + __gen_e_acsl_assert_data.kind = "Assertion"; + __gen_e_acsl_assert_data.pred_txt = "\\valid(q)"; + __gen_e_acsl_assert_data.file = "tests/temporal/t_while.c"; + __gen_e_acsl_assert_data.fct = "main"; + __gen_e_acsl_assert_data.line = 29; + __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } /*@ assert \valid(q); */ ; __e_acsl_initialize((void *)q,sizeof(int)); @@ -48,19 +69,40 @@ int main(void) { int __gen_e_acsl_initialized_2; int __gen_e_acsl_and_2; + __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 = + {.values = (void *)0}; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q", + (void *)(& q)); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int *)",0,sizeof(int *)); __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q), sizeof(int *)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2, + "\\initialized(&q)",0, + __gen_e_acsl_initialized_2); if (__gen_e_acsl_initialized_2) { int __gen_e_acsl_valid_2; + __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q", + (void *)q); + __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2, + "sizeof(int)",0,sizeof(int)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q, (void *)(& q)); + __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)", + 0,__gen_e_acsl_valid_2); __gen_e_acsl_and_2 = __gen_e_acsl_valid_2; } else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)", - "tests/temporal/t_while.c",37); + __gen_e_acsl_assert_data_2.blocking = 1; + __gen_e_acsl_assert_data_2.kind = "Assertion"; + __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)"; + __gen_e_acsl_assert_data_2.file = "tests/temporal/t_while.c"; + __gen_e_acsl_assert_data_2.fct = "main"; + __gen_e_acsl_assert_data_2.line = 37; + __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2); + __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); } - /*@ assert ¬\valid(q); */ ; + /*@ assert !\valid(q); */ ; __retres = 0; return_label: __e_acsl_store_block_duplicate((void *)(& q),(size_t)8); __e_acsl_delete_block((void *)(& q)); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle index d1a7d5a008bb05cfa2c8986371a0fd2c9312b9c5..9d850de2c0259736c8a18e079b60ea72e2ab42df 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle @@ -1,7 +1,34 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_args.c:8: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:8: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_args.c:9: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/temporal/t_args.c:9: Warning: assertion got status unknown. +[eva:alarm] tests/temporal/t_args.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:10: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:10: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_args.c:10: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_args.c:10: Warning: function __e_acsl_assert, behavior blocking: precondition got status invalid. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle index efd026311297e55d8fefb674326118e6ece88624..0eff0aabb75c93f0d852db7d58cf4c8078e817db 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle @@ -1,2 +1,32 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_array.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_array.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle index efd026311297e55d8fefb674326118e6ece88624..1ca7f961fc713887c4ce5384474eb385d3036923 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle @@ -1,2 +1,26 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_char.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:16: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:16: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_char.c:16: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle index efd026311297e55d8fefb674326118e6ece88624..7273a66178001169cb6de638c01a48192becdb29 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_darray.c:6: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_darray.c:6: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_darray.c:7: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_darray.c:7: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle index be99b03ac0e2a4d60f8dd1374232a3bab4b5229c..48faa133ffafba682c4da9c491e60593f657a15e 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle @@ -1,10 +1,52 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_dpointer.c:15: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: accessing left-value that contains escaping addresses. - assert ¬\dangling(p + 2); + assert !\dangling(p + 2); +[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle index 8715d9fa66b2e270073f6cc836aa7b6eab90d190..4658faeeeb782935840afebbb3877af08c14f2d5 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle @@ -4,3 +4,15 @@ [e-acsl] tests/temporal/t_fptr.c:16: Warning: E-ACSL construct `\valid_function' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_fptr.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fptr.c:19: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fptr.c:19: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fptr.c:19: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle index af89a06f90482c8971681ae7c20d260cee3c211c..87d8ba0caa4ac6229135505d873abc8d778ff798 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle @@ -1,6 +1,45 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [kernel:annot:missing-spec] tests/temporal/t_fun_lib.c:19: Warning: Neither code nor specification for function realpath, generating default assigns from the prototype +[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: function __e_acsl_assert, behavior blocking: precondition got status invalid. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle index efd026311297e55d8fefb674326118e6ece88624..0a34fd1866ca1a9008abfb4e0de0207307f0cd74 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle @@ -1,2 +1,14 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle index 0955f5f4a0be52c79023675a3c414507a87f28b2..23536de8173f67a8dc6af747788123c5fe67b928 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle @@ -14,13 +14,52 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: function __gen_e_acsl_getenv: postcondition 'null_or_valid_result' got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:13: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:13: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:13: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_getenv.c:13: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/temporal/t_getenv.c:13: Warning: assertion got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:14: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:14: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_getenv.c:14: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_getenv.c:14: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. [eva:alarm] tests/temporal/t_getenv.c:14: Warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle index efd026311297e55d8fefb674326118e6ece88624..b6c4bd474f727d03629d425d229abba46c693731 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle @@ -1,2 +1,44 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_global_init.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:34: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:49: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_global_init.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle index efd026311297e55d8fefb674326118e6ece88624..9bd531688498f2414a5bfe2e3432094ad9fe952b 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle @@ -1,2 +1,41 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_labels.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle index efd026311297e55d8fefb674326118e6ece88624..7004ff0bbfc6fec80c27fd9e06e16dddca9a18f9 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle @@ -1,2 +1,110 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle index efd026311297e55d8fefb674326118e6ece88624..f8138df0fa9b63be0e56b2592106d2d388d0a881 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle @@ -1,2 +1,134 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_local_init.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:35: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:35: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:35: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:36: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:42: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:42: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:52: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:52: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:52: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:52: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:53: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:23: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:23: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_local_init.c:23: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle index 966a3018a5d8b478de4164882d306bfe24614209..1c418fb4ff465463625db3ff054d4496cf29c01a 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle @@ -1,5 +1,4 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/temporal/t_malloc-asan.c:28: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&q); + accessing left-value that contains escaping addresses. assert !\dangling(&q); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle index 01e8d6abf31a734a75a7b78bf851da3fd7fe38e2..3af9a764c683ffcd1a8a37722832ee3c153d000c 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle @@ -1,5 +1,46 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_malloc.c:11: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:11: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:12: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:12: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:17: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:17: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:17: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:18: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:18: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:18: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] tests/temporal/t_malloc.c:22: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&p); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:22: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_malloc.c:22: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&p); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle index cb751d8a0f1ffbade8c51b16888393ebb55839e4..712744e8ddd0287b1c780b0f1c256ce1177e266d 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle @@ -25,9 +25,180 @@ E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: function __e_acsl_assert, behavior blocking: precondition got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:102: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:101: Warning: function __gen_e_acsl_memcpy: postcondition 'copied_contents' got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] FRAMAC_SHARE/libc/string.h:135: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:134: Warning: function __gen_e_acsl_memset: postcondition 'acsl_c_equiv' got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:42: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:42: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:43: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:43: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle index 9826a53ef7efbcc35395480a2eb83765489302ab..917fe5cf5117752845ad3d83a76cf4428340ed85 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle @@ -5,5 +5,10 @@ [eva:locals-escaping] tests/temporal/t_scope.c:10: Warning: locals {i} escaping the scope of a block of main through q [eva:alarm] tests/temporal/t_scope.c:15: Warning: - accessing left-value that contains escaping addresses. - assert ¬\dangling(&p); + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_scope.c:15: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_scope.c:15: Warning: + accessing left-value that contains escaping addresses. assert !\dangling(&p); diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle index efd026311297e55d8fefb674326118e6ece88624..18593fec2065deeab0070104e0a890aef139f2d9 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle @@ -1,2 +1,191 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:30: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:31: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:31: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:31: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:34: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:38: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:41: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:44: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:44: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:44: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:47: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_struct.c:50: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle index efd026311297e55d8fefb674326118e6ece88624..5e841bf819502b3a1f22fc0cb8070b822c8bebf8 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle @@ -1,2 +1,26 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] tests/temporal/t_while.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:29: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:29: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:29: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:37: Warning: + function __e_acsl_assert_register_int: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:37: Warning: + function __e_acsl_assert_register_ptr: precondition data->values == \null || + \valid(data->values) got status unknown. +[eva:alarm] tests/temporal/t_while.c:37: Warning: + function __e_acsl_assert_register_ulong: precondition data->values == \null || + \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/test_config.in b/src/plugins/e-acsl/tests/test_config.in index ce7dca752b1fdd101119d743e4c91c3ee4557fba..55b9f357b3475c0e31946b0b09f162c70913b614 100644 --- a/src/plugins/e-acsl/tests/test_config.in +++ b/src/plugins/e-acsl/tests/test_config.in @@ -1,8 +1,8 @@ MACRO: DEST @PTEST_RESULT@/gen_@PTEST_NAME@ MACRO: MACHDEP -machdep gcc_x86_64 -MACRO: GLOBAL @MACHDEP@ -remove-unused-specified-functions -verbose 0 +MACRO: GLOBAL @MACHDEP@ -remove-unused-specified-functions -verbose 0 -no-unicode -MACRO: EACSL -e-acsl -e-acsl-share ./share/e-acsl -e-acsl-verbose 1 -e-acsl-assert-print-data +MACRO: EACSL -e-acsl -e-acsl-share ./share/e-acsl -e-acsl-verbose 1 MACRO: EVA -eva -eva-no-alloc-returns-null -eva-no-results -eva-no-print -eva-warn-key libc:unsupported-spec=inactive -eva-warn-key loop-unroll:auto=inactive MACRO: EVENTUALLY -print -ocode @DEST@.c diff --git a/src/plugins/e-acsl/tests/test_config_dev.in b/src/plugins/e-acsl/tests/test_config_dev.in index 50abc706cd00fbdb2399681f0677cdd3e8eec806..a4b467001b82cdbff1ed5c3204c016343d9d3245 100644 --- a/src/plugins/e-acsl/tests/test_config_dev.in +++ b/src/plugins/e-acsl/tests/test_config_dev.in @@ -8,7 +8,7 @@ MACRO: EACSL_ERR @PTEST_NAME@.e-acsl.err.log COMMENT: Define the following macro to "no" in a test to stop the execution of `e-acsl-gcc.sh` MACRO: ROOT_EACSL_GCC_ENABLE yes COMMENT: Default options for `e-acsl-gcc.sh` -MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X --assert-print-data +MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X --no-assert-print-data COMMENT: Default options for the frama-c invocation MACRO: ROOT_EACSL_GCC_FC_EXTRA -journal-disable -verbose 0