diff --git a/src/plugins/e-acsl/.gitignore b/src/plugins/e-acsl/.gitignore index a809723544cb217f2bc4fd052dbbed7cedbcc3f0..bad643ee748bf785913cab05f7d3d15c39f12fb5 100644 --- a/src/plugins/e-acsl/.gitignore +++ b/src/plugins/e-acsl/.gitignore @@ -58,7 +58,10 @@ /tests/e-acsl-runtime/result/gen_*.c /tests/e-acsl-runtime/result/gen_*.out /tests/e-acsl-reject/result/*.log +/tests/no-main/result/*.log /tests/bts/result/* +/tests/gmp/result/*.log +/tests/gmp/result/gen*.c /tests/check/obj/* .frama-c tests/ptests_config diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index caaa38f54dbeb723e69a75ba35159a8ad3cf6f9e..5ceeea83915d8b76b3d461735653e145aa471fc6 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -113,11 +113,23 @@ $(PLUGIN_DIR)/local_config.ml: $(PLUGIN_DIR)/Makefile.in VERSION ifeq (@MAY_RUN_TESTS@,yes) -PLUGIN_TESTS_DIRS:=e-acsl-reject e-acsl-runtime bts -E_ACSL_TESTS: $(PLUGIN_DIR)/tests/test_config +$(PLUGIN_DIR)/tests/print.cmxs: OFLAGS=-I $(FRAMAC_LIBDIR) +$(PLUGIN_DIR)/tests/print.cmo: BFLAGS=-I $(FRAMAC_LIBDIR) +PLUGIN_TESTS_DIRS:=e-acsl-reject e-acsl-runtime bts gmp no-main +E_ACSL_TESTS: $(PLUGIN_DIR)/tests/test_config \ + $(PLUGIN_DIR)/tests/print.cmxs \ + $(PLUGIN_DIR)/tests/print.cmo endif +############ +# Cleaning # +############ + +clean:: + $(PRINT_RM) generated test files + $(RM) $(PLUGIN_DIR)/tests/*.cm* + ########### # Install # ########### diff --git a/src/plugins/e-acsl/main.ml b/src/plugins/e-acsl/main.ml index 848421307c988652f711023786679a8134e6c570..487144fd7715ea21aa62715904d3799a4eacd8de 100644 --- a/src/plugins/e-acsl/main.ml +++ b/src/plugins/e-acsl/main.ml @@ -152,7 +152,7 @@ let generate_code = Project.on dup_prj (fun () -> - Mpz.init_t (); + Mpz.init_t (); Mmodel_analysis.reset (); let visit prj = Visit.do_visit ~prj true in let prj = File.create_project_from_visitor name visit in @@ -165,6 +165,9 @@ let generate_code = ~project:prj (); Resulting_projects.mark_as_computed (); + Project.copy + ~selection:(State_selection.singleton Kernel.Files.self) + prj; prj) () in diff --git a/src/plugins/e-acsl/scripts/testrun.sh b/src/plugins/e-acsl/scripts/testrun.sh index e1c90d1c22ee87153b9bab1ed28120960857b66c..62d9166d30682d7906b352acd170021ad7c4ee00 100755 --- a/src/plugins/e-acsl/scripts/testrun.sh +++ b/src/plugins/e-acsl/scripts/testrun.sh @@ -38,14 +38,16 @@ # $ROOT/test/e-acsl-runtime/addrOf.c # $3 - if specified this script re-runs test sequence generating using # -e-acsl-gmp-only option -# $4 - debug flag +# $4 - extra flags for e-acsl-gcc.sh +# $5 - debug flag set -e TEST="$1" # Based name of the test file with extension stripped PREFIX="$2" # Prefix (test suite) directory, e.g., bts, e-acsl-runtime GMP="$3" # Whether to use a subsequent run with -e-acsl-gmp-only -DEBUG="$4" # Debug flag +EXTRA="$4" # Extra flags for e-acsl-gcc.sh +DEBUG="$5" # Debug flag ROOTDIR="`readlink -f $(dirname $0)/../`" # Root directory of the repository TESTDIR="$ROOTDIR/tests/$PREFIX" @@ -57,10 +59,16 @@ LOG="$RESDIR/$TEST.testrun" # Base name for log files OUT="$RESDIR/gen_$TEST" # Base name for output RUNS=1 +debug() { + if [ -n "$DEBUG" ]; then + echo "$1" 1>&2 + fi +} + # Error reporting error() { echo "Error: $1" 1>&2 - echo "See $2 for details" 1>&2 + debug "See $2 for details" exit 1 } @@ -85,15 +93,18 @@ run_test() { # Command for instrumenting the source file and compiling the original # and the instrumented code - EACSL_GCC="e-acsl-gcc.sh + EACSL_GCC="./scripts/e-acsl-gcc.sh --compile $TESTFILE --ocode=$ocode --logfile=$logfile --memory-model=$MODEL --oexec=$oexec $extra" + debug "Run $EACSL_GCC" $EACSL_GCC || error "Command $EACSL_GCC failed" "$logfile" # Log outputs of the generated executables - $oexec 2>&1 > $oexeclog.native - $oexec.e-acsl 2>&1 > $oexeclog.e-acsl + debug "Run and log native execution to $oexeclog.native" + $oexec 2>&1 > $oexeclog.native || true + debug "Run and log E-ACSL execution to $oexeclog.e-acsl" + $oexec.e-acsl 2>&1 > $oexeclog.e-acsl || true ## Make sure that instrumented and uninstrumented programs have same outputs diff $oexeclog.native $oexeclog.e-acsl || @@ -103,8 +114,8 @@ run_test() { RUNS=$((RUNS+1)) } -run_test +run_test "$EXTRA" if test -n "$GMP"; then - run_test "--gmp" + run_test "--gmp $EXTRA" fi exit 0 diff --git a/src/plugins/e-acsl/tests/bts/bts1304.i b/src/plugins/e-acsl/tests/bts/bts1304.i index a32a26d4b84c6348d0f3edcfb9eb2926e96ba97e..d133368666af220af85ad3152209a9ace9aa2470 100644 --- a/src/plugins/e-acsl/tests/bts/bts1304.i +++ b/src/plugins/e-acsl/tests/bts/bts1304.i @@ -1,7 +1,5 @@ /* run.config COMMENT: argument of functions must be kept, so keep its parameter - EXECNOW: LOG gen_bts1304.c BIN gen_bts1304.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1304.i -constfold -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1304.c > /dev/null && ./gcc_bts.sh bts1304 - EXECNOW: LOG gen_bts13042.c BIN gen_bts13042.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1304.i -constfold -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13042.c > /dev/null && ./gcc_bts.sh bts13042 */ struct msgA { int type; int a[2]; }; diff --git a/src/plugins/e-acsl/tests/bts/bts1307.i b/src/plugins/e-acsl/tests/bts/bts1307.i index 2e3cabdd70b0874b3c368204b85ea05edd0694ae..e4d5b2dfb356fbea042a35a0a924cac50cc72f71 100644 --- a/src/plugins/e-acsl/tests/bts/bts1307.i +++ b/src/plugins/e-acsl/tests/bts/bts1307.i @@ -1,7 +1,5 @@ /* run.config COMMENT: spec with floats and reals - EXECNOW: LOG gen_bts1307.c BIN gen_bts1307.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1307.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1307.c > /dev/null && ./gcc_bts.sh bts1307 - EXECNOW: LOG gen_bts13072.c BIN gen_bts13072.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1307.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13072.c > /dev/null && ./gcc_bts.sh bts13072 */ /*@ requires \valid(Mtmax_in); diff --git a/src/plugins/e-acsl/tests/bts/bts1324.i b/src/plugins/e-acsl/tests/bts/bts1324.i index 9b444f126b0cd79eb5b48ff5ab60e82b8b220dcb..690b29043baca4b8e32f5c69afd63f00caa10df0 100644 --- a/src/plugins/e-acsl/tests/bts/bts1324.i +++ b/src/plugins/e-acsl/tests/bts/bts1324.i @@ -1,7 +1,5 @@ /* run.config COMMENT: fixed bug with typing of universal quantification - EXECNOW: LOG gen_bts1324.c BIN gen_bts1324.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1324.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1324.c > /dev/null && ./gcc_bts.sh bts1324 - EXECNOW: LOG gen_bts13242.c BIN gen_bts13242.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1324.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13242.c > /dev/null && ./gcc_bts.sh bts13242 */ /*@ behavior yes: diff --git a/src/plugins/e-acsl/tests/bts/bts1326.i b/src/plugins/e-acsl/tests/bts/bts1326.i index b18101c3d1017c34fda38cdc5abb67bdfa4d3b36..c8e7429eefcca32ce60658c4a83bbd0223216dcb 100644 --- a/src/plugins/e-acsl/tests/bts/bts1326.i +++ b/src/plugins/e-acsl/tests/bts/bts1326.i @@ -1,7 +1,5 @@ /* run.config COMMENT: complex term left-values - EXECNOW: LOG gen_bts1326.c BIN gen_bts1326.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1326.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1326.c > /dev/null && ./gcc_bts.sh bts1326 - EXECNOW: LOG gen_bts13262.c BIN gen_bts13262.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1326.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13262.c > /dev/null && ./gcc_bts.sh bts13262 */ typedef int ArrayInt[5]; diff --git a/src/plugins/e-acsl/tests/bts/bts1390.c b/src/plugins/e-acsl/tests/bts/bts1390.c index 5ff6dc147983e8f9ad5de360a38460fb786a3325..fd280a0af1d1e1ce3670d44c1ade6e0a67f0f968 100644 --- a/src/plugins/e-acsl/tests/bts/bts1390.c +++ b/src/plugins/e-acsl/tests/bts/bts1390.c @@ -1,8 +1,5 @@ /* run.config COMMENT: bts #1390, issue with typing of quantified variables - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" - EXECNOW: LOG gen_bts1390.c BIN gen_bts1390.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1390.c -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1390.c > /dev/null && ./gcc_bts.sh bts1390 - EXECNOW: LOG gen_bts13902.c BIN gen_bts13902.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1390.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13902.c > /dev/null && ./gcc_bts.sh bts13902 */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/bts/bts1398.c b/src/plugins/e-acsl/tests/bts/bts1398.c index d02bb8faa91f9272d7cb386afdb6c6b63a8b8de3..9d299958c7e22790f9e6d218fc4343816a2bcebe 100644 --- a/src/plugins/e-acsl/tests/bts/bts1398.c +++ b/src/plugins/e-acsl/tests/bts/bts1398.c @@ -1,8 +1,5 @@ /* run.config COMMENT: variadic function call - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" - EXECNOW: LOG gen_bts1398.c BIN gen_bts1398.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1398.c -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1398.c > /dev/null && ./gcc_bts.sh bts1398 > /dev/null - EXECNOW: LOG gen_bts13982.c BIN gen_bts13982.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1398.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13982.c > /dev/null && ./gcc_bts.sh bts13982 > /dev/null */ #include "stdio.h" diff --git a/src/plugins/e-acsl/tests/bts/bts1399.c b/src/plugins/e-acsl/tests/bts/bts1399.c index 43300c93834cf06f063649d63505a1b7356941d8..cc5d1e812f5481c8ea82d24bc52e741d52144e43 100644 --- a/src/plugins/e-acsl/tests/bts/bts1399.c +++ b/src/plugins/e-acsl/tests/bts/bts1399.c @@ -1,8 +1,6 @@ /* run.config COMMENT: complex fields and indexes + potential RTE in \initialized - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_bts1399.c BIN gen_bts1399.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1399.c -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1399.c > /dev/null && ./gcc_bts.sh bts1399 - EXECNOW: LOG gen_bts13992.c BIN gen_bts13992.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1399.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts13992.c > /dev/null && ./gcc_bts.sh bts13992 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/bts/bts1478.c b/src/plugins/e-acsl/tests/bts/bts1478.c index 9b1bcd88bda4e4194f19b1c80af61dc9597eb1df..b949470b2d922eef32802141472f23a9c8bc42ab 100644 --- a/src/plugins/e-acsl/tests/bts/bts1478.c +++ b/src/plugins/e-acsl/tests/bts/bts1478.c @@ -1,7 +1,5 @@ /* run.config COMMENT: bts #1478 about wrong detection of initializers in pre-analysis - EXECNOW: LOG gen_bts1478.c BIN gen_bts1478.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1478.c -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1478.c > /dev/null && ./gcc_bts.sh bts1478 - EXECNOW: LOG gen_bts14782.c BIN gen_bts14782.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1478.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts14782.c > /dev/null && ./gcc_bts.sh bts14782 */ int global_i; diff --git a/src/plugins/e-acsl/tests/bts/bts1700.i b/src/plugins/e-acsl/tests/bts/bts1700.i index 2534d1f1be441af6e5db9bcf7421015577fcb7f6..efd10126c2c6b7b7ca9b9c8a4d80659fee75d2fe 100644 --- a/src/plugins/e-acsl/tests/bts/bts1700.i +++ b/src/plugins/e-acsl/tests/bts/bts1700.i @@ -1,6 +1,5 @@ /* run.config COMMENT: pointer to an empty struct - EXECNOW: LOG gen_bts1700.c BIN gen_bts1700.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1700.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1700.c > /dev/null && ./gcc_bts.sh bts1700 */ struct toto {}; diff --git a/src/plugins/e-acsl/tests/bts/bts1717.i b/src/plugins/e-acsl/tests/bts/bts1717.i index 99925f479ec5671173faae23491e201bd96db244..71ce1f22484e46ae5c111ff9ba9692ed1a647d31 100644 --- a/src/plugins/e-acsl/tests/bts/bts1717.i +++ b/src/plugins/e-acsl/tests/bts/bts1717.i @@ -1,8 +1,5 @@ /* run.config COMMENT: bts #1717, issue with labels on memory-related statements - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" - EXECNOW: LOG gen_bts1717.c BIN gen_bts1717.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1717.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1717.c > /dev/null && ./gcc_bts.sh bts1717 - EXECNOW: LOG gen_bts17172.c BIN gen_bts17172.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1717.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts17172.c > /dev/null && ./gcc_bts.sh bts17172 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/bts/bts1718.i b/src/plugins/e-acsl/tests/bts/bts1718.i index 0b13703f0a8a510aac910fe717bd0d90f897f230..2434f530b8607ff42c7032f45f1ed70bd1029cd9 100644 --- a/src/plugins/e-acsl/tests/bts/bts1718.i +++ b/src/plugins/e-acsl/tests/bts/bts1718.i @@ -1,8 +1,8 @@ /* run.config COMMENT: bts #1718, issue regarding incorrect initialization of literal strings in global arrays with compound initializers - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" - EXECNOW: LOG gen_bts1718.c BIN gen_bts1718.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1718.i -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts1718.c > /dev/null && ./gcc_bts.sh bts1718 - EXECNOW: LOG gen_bts17182.c BIN gen_bts17182.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/bts/bts1718.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/bts/result/gen_bts17182.c > /dev/null && ./gcc_bts.sh bts17182 + COMMENT: no diff + COMMENT: no diff + COMMENT: no diff */ int main(void) { diff --git a/src/plugins/e-acsl/tests/bts/bts1837.i b/src/plugins/e-acsl/tests/bts/bts1837.i index cb01fddd8fdbc7d16af21cbe03ac23bcab203473..dc481afd0ee374231db5d9429b0f29316cbebdee 100644 --- a/src/plugins/e-acsl/tests/bts/bts1837.i +++ b/src/plugins/e-acsl/tests/bts/bts1837.i @@ -1,6 +1,5 @@ /* run.config COMMENT: bts #1837, about initialization of literal strings - EXECNOW: LOG gen_bts1837.c BIN gen_bts1837.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/bts/bts1837.i -e-acsl -then-last -print -ocode ./tests/bts/result/gen_bts1837.c > /dev/null && ./gcc_bts.sh bts1837 */ char *S = "foo"; diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1304.0.res.oracle deleted file mode 100644 index c9fe27e8b98a7c222f15b81a2d62ba8922e56cac..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1304.0.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/bts/bts1304.i:23:[value] entering loop for the first time -[value] using specification for function __initialize -[value] using specification for function __delete_block -tests/bts/bts1304.i:25:[value] warning: assertion got status unknown. -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1304.1.res.oracle deleted file mode 100644 index c9fe27e8b98a7c222f15b81a2d62ba8922e56cac..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1304.1.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/bts/bts1304.i:23:[value] entering loop for the first time -[value] using specification for function __initialize -[value] using specification for function __delete_block -tests/bts/bts1304.i:25:[value] warning: assertion got status unknown. -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main 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 85cef0bc32432b6b63f4c57406e4a5e035b9c5dc..360cf3baba62a193287d4e0ede2d35bbbaca3941 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle @@ -1,31 +1,4 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/bts1304.i (no preprocessing) [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - random_counter ∈ {0} - rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/e-acsl-runtime/bts1304.i:23:[value] entering loop for the first time -[value] using specification for function __initialize -[value] using specification for function __delete_block -tests/e-acsl-runtime/bts1304.i:25:[value] Assertion got status unknown. -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main -[value] ====== VALUES COMPUTED ====== +tests/bts/bts1304.i:23:[value] warning: assertion got status unknown. +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1307.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1307.0.res.oracle deleted file mode 100644 index c7d6f581b9c68ae6cb484e6d6026f243808731a3..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1307.0.res.oracle +++ /dev/null @@ -1,27 +0,0 @@ -tests/bts/bts1307.i:16:[kernel] warning: Floating-point constant 0.4 is not represented exactly. Will use 0x1.999999999999ap-2. See documentation for option -warn-decimal-float -[e-acsl] beginning translation. -tests/bts/bts1307.i:13:[e-acsl] warning: approximating a real number by a float -tests/bts/bts1307.i:25:[e-acsl] warning: approximating a real number by a float -tests/bts/bts1307.i:25:[e-acsl] warning: approximating a real number by a float -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __valid_read -[value] user error: type long double not implemented. Using double instead -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status invalid. -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1307.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1307.1.res.oracle deleted file mode 100644 index 3f9e8609612695c9f97ee3f4649c80771c98ff81..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1307.1.res.oracle +++ /dev/null @@ -1,35 +0,0 @@ -tests/bts/bts1307.i:16:[kernel] warning: Floating-point constant 0.4 is not represented exactly. Will use 0x1.999999999999ap-2. See documentation for option -warn-decimal-float -[e-acsl] beginning translation. -tests/bts/bts1307.i:13:[e-acsl] warning: approximating a real number by a float -tests/bts/bts1307.i:25:[e-acsl] warning: approximating a real number by a float -tests/bts/bts1307.i:25:[e-acsl] warning: approximating a real number by a float -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_tdiv_q -[value] using specification for function __gmpz_get_ui -[value] using specification for function __valid_read -[value] user error: type long double not implemented. Using double instead -[value] using specification for function __gmpz_clear -tests/bts/bts1307.i:25:[value] warning: function bar, behavior UnderEstimate_Motoring: postcondition got status unknown. -tests/bts/bts1307.i:25:[value] warning: function __e_acsl_bar, behavior UnderEstimate_Motoring: postcondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1307.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1307.res.oracle index e383dfcf607563d8df0128d208184cf33abfcc3d..26e9e78a8a8dae4a54894ee2a03c17e26d11a19c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1307.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1307.res.oracle @@ -1,44 +1,9 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/bts1307.i (no preprocessing) -tests/e-acsl-runtime/bts1307.i:16:[kernel] warning: Floating-point constant 0.4 is not represented exactly. Will use 0x1.999999999999ap-2. See documentation for option -warn-decimal-float +tests/bts/bts1307.i:14:[kernel] warning: Floating-point constant 0.4 is not represented exactly. Will use 0x1.999999999999ap-2. See documentation for option -warn-decimal-float [e-acsl] beginning translation. -tests/e-acsl-runtime/bts1307.i:13:[e-acsl] warning: approximating a real number by a float -tests/e-acsl-runtime/bts1307.i:25:[e-acsl] warning: approximating a real number by a float -tests/e-acsl-runtime/bts1307.i:25:[e-acsl] warning: approximating a real number by a float +tests/bts/bts1307.i:11:[e-acsl] warning: approximating a real number by a float +tests/bts/bts1307.i:23:[e-acsl] warning: approximating a real number by a float +tests/bts/bts1307.i:23:[e-acsl] warning: approximating a real number by a float [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - random_counter ∈ {0} - rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -tests/e-acsl-runtime/bts1307.i:7:[value] Function __e_acsl_foo: precondition got status valid. -tests/e-acsl-runtime/bts1307.i:8:[value] Function __e_acsl_foo: precondition got status valid. -tests/e-acsl-runtime/bts1307.i:9:[value] Function __e_acsl_foo: precondition got status valid. -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/bts1307.i:7:[value] Function foo: precondition got status valid. -tests/e-acsl-runtime/bts1307.i:8:[value] Function foo: precondition got status valid. -tests/e-acsl-runtime/bts1307.i:9:[value] Function foo: precondition got status valid. -[value] using specification for function __initialize -[value] using specification for function __delete_block -tests/e-acsl-runtime/bts1307.i:13:[value] Function foo, behavior OverEstimate_Motoring: postcondition got status valid. -[value] using specification for function __valid_read +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] user error: type long double not implemented. Using double instead -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status invalid. -tests/e-acsl-runtime/bts1307.i:13:[value] Function __e_acsl_foo, behavior OverEstimate_Motoring: no state left in which to evaluate postcondition, status not computed. -[value] done for function main -[value] ====== VALUES COMPUTED ====== +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status invalid. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1324.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1324.0.res.oracle deleted file mode 100644 index aab4aebb68a166f0d5653a87a6cffcc5db1e3781..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1324.0.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialize -tests/bts/bts1324.i:8:[value] entering loop for the first time -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/bts/bts1324.i:15:[value] entering loop for the first time -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1324.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1324.1.res.oracle deleted file mode 100644 index 1b06bc092ff68a5c3c237049c724b31c6f648fbe..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1324.1.res.oracle +++ /dev/null @@ -1,31 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialize -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_add -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_clear -tests/bts/bts1324.i:8:[value] entering loop for the first time -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_sub -[value] using specification for function __gmpz_get_ui -tests/bts/bts1324.i:8:[kernel] warning: out of bounds read. assert \valid_read(t+__e_acsl_2); -tests/bts/bts1324.i:8:[kernel] warning: out of bounds read. assert \valid_read(t+__e_acsl_i_2); -tests/bts/bts1324.i:15:[value] entering loop for the first time -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.0.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1324.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1304.0.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1324.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1324.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1324.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1324.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.0.res.oracle deleted file mode 100644 index dd5cc416639f4522e7a52ad7566bc86188debba2..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1326.0.res.oracle +++ /dev/null @@ -1,20 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.1.res.oracle deleted file mode 100644 index 3920964dc2c217df243cf3f0df2727c81c72409c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1326.1.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_add -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_tdiv_q -[value] using specification for function __gmpz_clear -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.1.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1304.1.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1326.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1390.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1390.0.res.oracle deleted file mode 100644 index 07aa4ab20e4edd8fba195c589237e0ce9c53a6b4..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1390.0.res.oracle +++ /dev/null @@ -1,31 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -tests/bts/bts1390.c:15:[value] entering loop for the first time -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/bts/bts1390.c:11:[value] entering loop for the first time -tests/bts/bts1390.c:20:[value] entering loop for the first time -[value] using specification for function __delete_block -tests/bts/bts1390.c:16:[value] warning: function memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/bts/bts1390.c:13:[value] entering loop for the first time -[value] using specification for function __offset -tests/bts/bts1390.c:16:[value] warning: function __e_acsl_memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/bts/bts1390.c:21:[kernel] warning: out of bounds read. assert \valid_read(s); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1390.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1390.1.res.oracle deleted file mode 100644 index 4167be2b1419df4c68742b3372e83f7be7c67621..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1390.1.res.oracle +++ /dev/null @@ -1,41 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_clear -tests/bts/bts1390.c:15:[value] entering loop for the first time -[value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_get_ui -tests/bts/bts1390.c:15:[kernel] warning: out of bounds read. assert \valid_read((char *)buf+__e_acsl_k_2); -[value] using specification for function __gmpz_add -tests/bts/bts1390.c:11:[value] entering loop for the first time -tests/bts/bts1390.c:11:[kernel] warning: out of bounds read. assert \valid_read((char *)buf+__e_acsl_i_2); -tests/bts/bts1390.c:20:[value] entering loop for the first time -[value] using specification for function __delete_block -tests/bts/bts1390.c:16:[value] warning: function memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/bts/bts1390.c:13:[value] entering loop for the first time -[value] using specification for function __offset -tests/bts/bts1390.c:13:[kernel] warning: out of bounds read. assert \valid_read((char *)__e_acsl_at_2+__e_acsl_j_2); -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/bts/bts1390.c:16:[value] warning: function __e_acsl_memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/bts/bts1390.c:21:[kernel] warning: out of bounds read. assert \valid_read(s); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1390.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1390.res.oracle index 1e2f316c2132a5e764075c5c3cf1ec2b4c203626..baff7910c0878f8af2e839f0e15a4e563e47b7e8 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1390.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1390.res.oracle @@ -1,67 +1,6 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/bts1390.c (with preprocessing) [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - random_counter ∈ {0} - rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __gmpz_init -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:39:[value] Function __gmpz_init: precondition got status valid. -[value] using specification for function __gmpz_init_set_si -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:64:[value] Function __gmpz_init_set_si: precondition got status valid. -[value] using specification for function __gmpz_set -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:94:[value] Function __gmpz_set: precondition got status valid. -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:95:[value] Function __gmpz_set: precondition got status valid. -[value] using specification for function __gmpz_clear -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:117:[value] Function __gmpz_clear: precondition got status valid. -tests/e-acsl-runtime/bts1390.c:15:[value] entering loop for the first time -[value] using specification for function __gmpz_init_set_ui -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:55:[value] Function __gmpz_init_set_ui: precondition got status valid. -[value] using specification for function __gmpz_cmp -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:127:[value] Function __gmpz_cmp: precondition got status valid. -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:128:[value] Function __gmpz_cmp: precondition got status valid. -[value] using specification for function __gmpz_get_ui -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:198:[value] Function __gmpz_get_ui: precondition got status valid. -tests/e-acsl-runtime/bts1390.c:15:[kernel] warning: out of bounds read. assert \valid_read((char *)buf+__e_acsl_k_2); -[value] using specification for function __gmpz_add -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:143:[value] Function __gmpz_add: precondition got status valid. -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:144:[value] Function __gmpz_add: precondition got status valid. -FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:145:[value] Function __gmpz_add: precondition got status valid. -tests/e-acsl-runtime/bts1390.c:11:[value] entering loop for the first time -tests/e-acsl-runtime/bts1390.c:11:[kernel] warning: out of bounds read. assert \valid_read((char *)buf+__e_acsl_i_2); -tests/e-acsl-runtime/bts1390.c:20:[value] entering loop for the first time -[value] using specification for function __delete_block -tests/e-acsl-runtime/bts1390.c:13:[value] Function memchr, behavior exists: postcondition got status valid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/bts1390.c:16:[value] Function memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/bts1390.c:13:[value] entering loop for the first time -[value] using specification for function __offset -tests/e-acsl-runtime/bts1390.c:13:[kernel] warning: out of bounds read. assert \valid_read((char *)__e_acsl_at_2+__e_acsl_j_2); -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/bts1390.c:13:[value] Function __e_acsl_memchr, behavior exists: postcondition got status valid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/bts1390.c:16:[value] Function __e_acsl_memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/bts1390.c:21:[kernel] warning: out of bounds read. assert \valid_read(s); -tests/e-acsl-runtime/bts1390.c:16:[value] Function memchr, behavior not_exists: postcondition got status valid. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status valid. -tests/e-acsl-runtime/bts1390.c:16:[value] Function __e_acsl_memchr, behavior not_exists: postcondition got status valid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __e_acsl_memory_clean -[value] done for function main -[value] ====== VALUES COMPUTED ====== +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/bts/bts1390.c:13:[value] warning: function memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) +tests/bts/bts1390.c:13:[value] warning: function __e_acsl_memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) +tests/bts/bts1390.c:18:[kernel] warning: out of bounds read. assert \valid_read(s); diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1398.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1398.0.res.oracle deleted file mode 100644 index 99d1861463a6dcc225e00eb28b7435708ae8e927..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1398.0.res.oracle +++ /dev/null @@ -1,38 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - stdout ∈ {{ NULL ; &S___fc_stdout[0] }} - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} - S___fc_stdout[0]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof} ∈ - [--..--] - [0].[bits 80 to 95] ∈ UNINITIALIZED - [0].__fc_flags ∈ [--..--] - [0].__fc_inode ∈ - {{ NULL ; &S___fc_inode_0_S___fc_stdout[0] }} - [0].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_0_S___fc_stdout[0] }} - {[0].__fc_real_data_max_size; [1]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof}} ∈ - [--..--] - [1].[bits 80 to 95] ∈ UNINITIALIZED - [1].__fc_flags ∈ [--..--] - [1].__fc_inode ∈ - {{ NULL ; &S___fc_inode_1_S___fc_stdout[0] }} - [1].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_1_S___fc_stdout[0] }} - [1].__fc_real_data_max_size ∈ [--..--] - S___fc_inode_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_inode_1_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_1_S___fc_stdout[0..1] ∈ [--..--] -[value] using specification for function printf -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1398.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1398.1.res.oracle deleted file mode 100644 index 99d1861463a6dcc225e00eb28b7435708ae8e927..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1398.1.res.oracle +++ /dev/null @@ -1,38 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - stdout ∈ {{ NULL ; &S___fc_stdout[0] }} - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} - S___fc_stdout[0]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof} ∈ - [--..--] - [0].[bits 80 to 95] ∈ UNINITIALIZED - [0].__fc_flags ∈ [--..--] - [0].__fc_inode ∈ - {{ NULL ; &S___fc_inode_0_S___fc_stdout[0] }} - [0].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_0_S___fc_stdout[0] }} - {[0].__fc_real_data_max_size; [1]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof}} ∈ - [--..--] - [1].[bits 80 to 95] ∈ UNINITIALIZED - [1].__fc_flags ∈ [--..--] - [1].__fc_inode ∈ - {{ NULL ; &S___fc_inode_1_S___fc_stdout[0] }} - [1].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_1_S___fc_stdout[0] }} - [1].__fc_real_data_max_size ∈ [--..--] - S___fc_inode_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_inode_1_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_1_S___fc_stdout[0..1] ∈ [--..--] -[value] using specification for function printf -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1307.0.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1398.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1307.0.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1398.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1398.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1398.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1398.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.1.res.oracle deleted file mode 100644 index 0e90a522d2cdd7d222c3cbc010fa94ba0406f388..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1399.1.res.oracle +++ /dev/null @@ -1,52 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialize -[value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_init -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_tdiv_q -[value] using specification for function __gmpz_get_ui -[value] using specification for function __initialized -[value] using specification for function __gmpz_clear -FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. -FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1307.1.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1307.1.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1399.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle similarity index 60% rename from src/plugins/e-acsl/tests/bts/oracle/bts1399.0.res.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle index 815257536b6869d15a0cc23c434ff298b61f6333..248043ea3d50bb0b7d7be2b1f433d9823085ffc4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1399.0.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle @@ -1,11 +1,11 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/bts/bts1399.c:17:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/bts/bts1399.c:17:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/bts/bts1399.c:19:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/bts/bts1399.c:17:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -21,34 +21,8 @@ FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns claus Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialize -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialized FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.0.res.oracle deleted file mode 100644 index 45f26ef331a318f4a22e30b839db366f298becf4..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1478.0.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - global_i ∈ {0} - global_i_ptr ∈ {{ &global_i }} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function e_acsl_assert -[value] using specification for function __valid -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.1.res.oracle deleted file mode 100644 index 3be1a2aeb0d5f81cf38e0978f683f15f28c3b0eb..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1478.1.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - global_i ∈ {0} - global_i_ptr ∈ {{ &global_i }} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid -[value] using specification for function __gmpz_clear -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1324.0.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1324.0.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1478.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1700.0.res.oracle deleted file mode 100644 index b323b8576182f6f3b8d636b5e8dcf035d262943d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1700.0.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1700.1.res.oracle deleted file mode 100644 index b323b8576182f6f3b8d636b5e8dcf035d262943d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1700.1.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main 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 ec85865ef4537e0356b51932740b1ea052ff0d72..d38262de6812ddcc3976738685340153a7a48ad6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle @@ -1,32 +1,3 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/bts1700.i (no preprocessing) [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - random_counter ∈ {0} - rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/e-acsl-runtime/bts1700.i:10:[value] Assertion got status unknown. -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. -[value] using specification for function __full_init -tests/e-acsl-runtime/bts1700.i:13:[value] Assertion got status unknown. -[value] using specification for function __initialized -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main -[value] ====== VALUES COMPUTED ====== +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.0.res.oracle deleted file mode 100644 index 2c04f4eb44ed2c35b7ae1ae22a95ca2ee8fc2e9b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1717.0.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.1.res.oracle deleted file mode 100644 index 2c04f4eb44ed2c35b7ae1ae22a95ca2ee8fc2e9b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1717.1.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1324.1.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1324.1.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1717.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.0.res.oracle deleted file mode 100644 index 2c04f4eb44ed2c35b7ae1ae22a95ca2ee8fc2e9b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1718.0.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.1.res.oracle deleted file mode 100644 index 2c04f4eb44ed2c35b7ae1ae22a95ca2ee8fc2e9b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1718.1.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.0.err.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1326.0.err.oracle rename to src/plugins/e-acsl/tests/bts/oracle/bts1718.err.oracle diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.0.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1837.0.res.oracle deleted file mode 100644 index 82924e5df2db14afa891c2a10fecf511d9a179c1..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1837.0.res.oracle +++ /dev/null @@ -1,29 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - S ∈ {{ "foo" }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -tests/bts/bts1837.i:19:[value] entering loop for the first time -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid -[value] using specification for function __delete_block -tests/bts/bts1837.i:19:[kernel] warning: signed overflow. assert -2147483648 ≤ i-1; -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.1.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1837.1.res.oracle deleted file mode 100644 index 82924e5df2db14afa891c2a10fecf511d9a179c1..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1837.1.res.oracle +++ /dev/null @@ -1,29 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - S ∈ {{ "foo" }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -tests/bts/bts1837.i:19:[value] entering loop for the first time -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid -[value] using specification for function __delete_block -tests/bts/bts1837.i:19:[kernel] warning: signed overflow. assert -2147483648 ≤ i-1; -[value] using specification for function __e_acsl_memory_clean -[value] done for function main 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 efd924c556296cc37747d56a5a72f0bae13e0177..f546eed6f85844aeaf8234a8ec45e3323eb7281f 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle @@ -1,34 +1,4 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - S ∈ {0} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -tests/bts/bts1837.i:19:[value] entering loop for the first time -tests/bts/bts1837.i:21:[value] Assertion got status valid. -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. -tests/bts/bts1837.i:22:[value] Assertion got status valid. -[value] using specification for function __valid -[value] using specification for function __delete_block -tests/bts/bts1837.i:19:[kernel] warning: signed overflow. assert -2147483648 ≤ i-1; -tests/bts/bts1837.i:11:[value] Assertion got status valid. -tests/bts/bts1837.i:12:[value] Assertion got status valid. -tests/bts/bts1837.i:13:[value] Assertion got status valid. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/bts/bts1837.i:18:[kernel] warning: signed overflow. assert -2147483648 ≤ i-1; 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 b2f7f38d1805dfa9a01003c60bec70fd9a9259f5..d408cdb6cd1e3eced0a2bb948052f85bc9ad10bf 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c @@ -1,12 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; struct msgA { int type ; int a[2] ; @@ -23,69 +15,11 @@ union msg { struct msgA A ; struct msgB B ; }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = 32767UL; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ void read_sensor_4(unsigned int *m) { - __store_block((void *)(& m),4U); + __store_block((void *)(& m),8UL); __initialize((void *)m,sizeof(unsigned int)); - *m = 0U; + *m = (unsigned int)0; __delete_block((void *)(& m)); return; } @@ -93,11 +27,11 @@ void read_sensor_4(unsigned int *m) int main(void) { int __retres; - unsigned char buf[12U]; + unsigned char buf[sizeof(union msg)]; int i; - __store_block((void *)(buf),12U); + __store_block((void *)(buf),16UL); i = 0; - while ((unsigned int)i < 3U) { + while ((unsigned long)i < sizeof(buf) / (unsigned long)4) { read_sensor_4((unsigned int *)(buf) + i); i ++; } @@ -107,7 +41,7 @@ int main(void) __e_acsl_initialized = __initialized((void *)(buf),sizeof(union msg)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", (char *)"\\initialized((union msg *)((unsigned char *)buf))", - 25); + 23); } __retres = 0; __delete_block((void *)(buf)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13042.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13042.c deleted file mode 100644 index b2f7f38d1805dfa9a01003c60bec70fd9a9259f5..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13042.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -struct msgA { - int type ; - int a[2] ; -}; -struct msgB { - int type ; - double x ; -}; -struct __anonstruct_T_1 { - int type ; -}; -union msg { - struct __anonstruct_T_1 T ; - struct msgA A ; - struct msgB B ; -}; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = 32767UL; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -void read_sensor_4(unsigned int *m) -{ - __store_block((void *)(& m),4U); - __initialize((void *)m,sizeof(unsigned int)); - *m = 0U; - __delete_block((void *)(& m)); - return; -} - -int main(void) -{ - int __retres; - unsigned char buf[12U]; - int i; - __store_block((void *)(buf),12U); - i = 0; - while ((unsigned int)i < 3U) { - read_sensor_4((unsigned int *)(buf) + i); - i ++; - } - /*@ assert \initialized((union msg *)((unsigned char *)buf)); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)(buf),sizeof(union msg)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized((union msg *)((unsigned char *)buf))", - 25); - } - __retres = 0; - __delete_block((void *)(buf)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 bf2eb65234bd4cf6a74e74b410097516d5ddcc27..a44795ffb3b48bf8ab8db27c62a58726032ad72c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c @@ -1,80 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ requires \valid(Mtmax_in); requires \valid(Mwmax); requires \valid(Mtmax_out); @@ -86,9 +10,9 @@ predicate diffSize{L1, L2}(ℤ i) = */ void foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) { - __store_block((void *)(& Mtmax_in),4U); - __store_block((void *)(& Mwmax),4U); - __store_block((void *)(& Mtmax_out),4U); + __store_block((void *)(& Mtmax_in),8UL); + __store_block((void *)(& Mwmax),8UL); + __store_block((void *)(& Mtmax_out),8UL); __initialize((void *)Mtmax_out,sizeof(float)); *Mtmax_out = (float)((double)*Mtmax_in + ((double)5 - (double)((float)( 5 / 80) * *Mwmax) * 0.4)); @@ -116,23 +40,23 @@ void __e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) int __e_acsl_valid; int __e_acsl_valid_2; int __e_acsl_valid_3; - __store_block((void *)(& Mtmax_in),4U); - __store_block((void *)(& Mwmax),4U); - __store_block((void *)(& Mtmax_out),4U); + __store_block((void *)(& Mtmax_in),8UL); + __store_block((void *)(& Mwmax),8UL); + __store_block((void *)(& Mtmax_out),8UL); __e_acsl_valid = __valid((void *)Mtmax_in,sizeof(float)); e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mtmax_in)",7); + (char *)"\\valid(Mtmax_in)",5); __e_acsl_valid_2 = __valid((void *)Mwmax,sizeof(float)); e_acsl_assert(__e_acsl_valid_2,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mwmax)",8); + (char *)"\\valid(Mwmax)",6); __e_acsl_valid_3 = __valid((void *)Mtmax_out,sizeof(float)); e_acsl_assert(__e_acsl_valid_3,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mtmax_out)",9); - __store_block((void *)(& __e_acsl_at_3),4U); + (char *)"\\valid(Mtmax_out)",7); + __store_block((void *)(& __e_acsl_at_3),8UL); __e_acsl_at_3 = Mwmax; - __store_block((void *)(& __e_acsl_at_2),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); __e_acsl_at_2 = Mtmax_in; - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at),8UL); __e_acsl_at = Mtmax_out; foo(Mtmax_in,Mwmax,Mtmax_out); } @@ -142,19 +66,19 @@ void __e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) int __e_acsl_valid_read_3; __e_acsl_valid_read = __valid_read((void *)__e_acsl_at_3,sizeof(float)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at_3)",13); + (char *)"mem_access: \\valid_read(__e_acsl_at_3)",11); __e_acsl_valid_read_2 = __valid_read((void *)__e_acsl_at_2,sizeof(float)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at_2)",13); + (char *)"mem_access: \\valid_read(__e_acsl_at_2)",11); __e_acsl_valid_read_3 = __valid_read((void *)__e_acsl_at,sizeof(float)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at)",13); + (char *)"mem_access: \\valid_read(__e_acsl_at)",11); e_acsl_assert(*__e_acsl_at == *__e_acsl_at_2 + (long double)((long double)5 - ((long double)( 5 / 80) * *__e_acsl_at_3) * 0.4), (char *)"Postcondition",(char *)"foo", (char *)"*\\old(Mtmax_out) == *\\old(Mtmax_in)+(5-((5/80)**\\old(Mwmax))*0.4)", - 13); + 11); __delete_block((void *)(& Mtmax_in)); __delete_block((void *)(& Mwmax)); __delete_block((void *)(& Mtmax_out)); @@ -175,9 +99,9 @@ void __e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) */ void bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) { - __store_block((void *)(& Mtmin_in),4U); - __store_block((void *)(& Mwmin),4U); - __store_block((void *)(& Mtmin_out),4U); + __store_block((void *)(& Mtmin_in),8UL); + __store_block((void *)(& Mwmin),8UL); + __store_block((void *)(& Mtmin_out),8UL); __initialize((void *)Mtmin_out,sizeof(float)); *Mtmin_out = (float)(0.85 * (double)*Mwmin); __delete_block((void *)(& Mtmin_in)); @@ -209,29 +133,29 @@ void __e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) int __e_acsl_valid; int __e_acsl_valid_2; int __e_acsl_valid_3; - __store_block((void *)(& Mtmin_in),4U); - __store_block((void *)(& Mwmin),4U); - __store_block((void *)(& Mtmin_out),4U); + __store_block((void *)(& Mtmin_in),8UL); + __store_block((void *)(& Mwmin),8UL); + __store_block((void *)(& Mtmin_out),8UL); __e_acsl_valid = __valid((void *)Mtmin_in,sizeof(float)); e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mtmin_in)",19); + (char *)"\\valid(Mtmin_in)",17); __e_acsl_valid_2 = __valid((void *)Mwmin,sizeof(float)); e_acsl_assert(__e_acsl_valid_2,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mwmin)",20); + (char *)"\\valid(Mwmin)",18); __e_acsl_valid_3 = __valid((void *)Mtmin_out,sizeof(float)); e_acsl_assert(__e_acsl_valid_3,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mtmin_out)",21); - __store_block((void *)(& __e_acsl_at_6),4U); + (char *)"\\valid(Mtmin_out)",19); + __store_block((void *)(& __e_acsl_at_6),8UL); __e_acsl_at_6 = Mwmin; - __store_block((void *)(& __e_acsl_at_5),4U); + __store_block((void *)(& __e_acsl_at_5),8UL); __e_acsl_at_5 = Mtmin_in; - __store_block((void *)(& __e_acsl_at_4),4U); + __store_block((void *)(& __e_acsl_at_4),8UL); __e_acsl_at_4 = Mwmin; - __store_block((void *)(& __e_acsl_at_3),4U); + __store_block((void *)(& __e_acsl_at_3),8UL); __e_acsl_at_3 = Mtmin_in; - __store_block((void *)(& __e_acsl_at_2),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); __e_acsl_at_2 = Mtmin_in; - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at),8UL); __e_acsl_at = Mtmin_out; bar(Mtmin_in,Mwmin,Mtmin_out); } @@ -242,21 +166,21 @@ void __e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) int __e_acsl_if; __e_acsl_valid_read = __valid_read((void *)__e_acsl_at_2,sizeof(float)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_2)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at_2)",23); __e_acsl_valid_read_2 = __valid_read((void *)__e_acsl_at,sizeof(float)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at)",23); if (*__e_acsl_at == *__e_acsl_at_2) { int __e_acsl_valid_read_3; int __e_acsl_valid_read_4; __e_acsl_valid_read_3 = __valid_read((void *)__e_acsl_at_4, sizeof(float)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_4)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at_4)",23); __e_acsl_valid_read_4 = __valid_read((void *)__e_acsl_at_3, sizeof(float)); e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_3)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at_3)",23); __e_acsl_and = *__e_acsl_at_3 < 0.85 * *__e_acsl_at_4; } else __e_acsl_and = 0; @@ -265,7 +189,7 @@ void __e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_valid_read_5 = __valid_read((void *)__e_acsl_at_5, sizeof(float)); e_acsl_assert(__e_acsl_valid_read_5,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_5)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at_5)",23); __e_acsl_if = *__e_acsl_at_5 != 0.; } else { @@ -273,12 +197,12 @@ void __e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_valid_read_6 = __valid_read((void *)__e_acsl_at_6, sizeof(float)); e_acsl_assert(__e_acsl_valid_read_6,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_6)",25); + (char *)"mem_access: \\valid_read(__e_acsl_at_6)",23); __e_acsl_if = 0.85 * *__e_acsl_at_6 != 0.; } e_acsl_assert(__e_acsl_if,(char *)"Postcondition",(char *)"bar", (char *)"*\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85**\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85**\\old(Mwmin) != 0.", - 25); + 23); __delete_block((void *)(& Mtmin_in)); __delete_block((void *)(& Mwmin)); __delete_block((void *)(& Mtmin_out)); @@ -292,9 +216,9 @@ int main(void) float f; float g; float h; - __store_block((void *)(& h),4U); - __store_block((void *)(& g),4U); - __store_block((void *)(& f),4U); + __store_block((void *)(& h),4UL); + __store_block((void *)(& g),4UL); + __store_block((void *)(& f),4UL); __full_init((void *)(& f)); f = (float)1.0; __full_init((void *)(& g)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13072.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13072.c deleted file mode 100644 index b0fc85c485edb633748505648101eecec9c3b163..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13072.c +++ /dev/null @@ -1,396 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires \valid_read(z_orig); - requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from *z_orig; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ requires \valid(Mtmax_in); - requires \valid(Mwmax); - requires \valid(Mtmax_out); - - behavior OverEstimate_Motoring: - assumes \true; - ensures - *\old(Mtmax_out) ≡ *\old(Mtmax_in)+(5-((5/80)**\old(Mwmax))*0.4); - */ -void foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) -{ - __store_block((void *)(& Mtmax_in),4U); - __store_block((void *)(& Mwmax),4U); - __store_block((void *)(& Mtmax_out),4U); - __initialize((void *)Mtmax_out,sizeof(float)); - *Mtmax_out = (float)((double)*Mtmax_in + ((double)5 - (double)((float)( - 5 / 80) * *Mwmax) * 0.4)); - __delete_block((void *)(& Mtmax_in)); - __delete_block((void *)(& Mwmax)); - __delete_block((void *)(& Mtmax_out)); - return; -} - -/*@ requires \valid(Mtmax_in); - requires \valid(Mwmax); - requires \valid(Mtmax_out); - - behavior OverEstimate_Motoring: - assumes \true; - ensures - *\old(Mtmax_out) ≡ *\old(Mtmax_in)+(5-((5/80)**\old(Mwmax))*0.4); - */ -void __e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) -{ - float *__e_acsl_at_3; - float *__e_acsl_at_2; - float *__e_acsl_at; - { - int __e_acsl_valid; - int __e_acsl_valid_2; - int __e_acsl_valid_3; - __store_block((void *)(& Mtmax_in),4U); - __store_block((void *)(& Mwmax),4U); - __store_block((void *)(& Mtmax_out),4U); - __e_acsl_valid = __valid((void *)Mtmax_in,sizeof(float)); - e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mtmax_in)",7); - __e_acsl_valid_2 = __valid((void *)Mwmax,sizeof(float)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mwmax)",8); - __e_acsl_valid_3 = __valid((void *)Mtmax_out,sizeof(float)); - e_acsl_assert(__e_acsl_valid_3,(char *)"Precondition",(char *)"foo", - (char *)"\\valid(Mtmax_out)",9); - __store_block((void *)(& __e_acsl_at_3),4U); - __e_acsl_at_3 = Mwmax; - __store_block((void *)(& __e_acsl_at_2),4U); - __e_acsl_at_2 = Mtmax_in; - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = Mtmax_out; - foo(Mtmax_in,Mwmax,Mtmax_out); - } - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - int __e_acsl_div_guard; - mpz_t __e_acsl_div; - unsigned long __e_acsl_4; - int __e_acsl_valid_read; - int __e_acsl_valid_read_2; - int __e_acsl_valid_read_3; - __gmpz_init_set_si(__e_acsl,(long)5); - __gmpz_init_set_si(__e_acsl_2,(long)80); - __gmpz_init_set_si(__e_acsl_3,0L); - __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init(__e_acsl_div); - /*@ assert E_ACSL: 80 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Postcondition", - (char *)"foo",(char *)"80 == 0",13); - __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_div)); - __e_acsl_valid_read = __valid_read((void *)__e_acsl_at_3,sizeof(float)); - e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at_3)",13); - __e_acsl_valid_read_2 = __valid_read((void *)__e_acsl_at_2,sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at_2)",13); - __e_acsl_valid_read_3 = __valid_read((void *)__e_acsl_at,sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"foo", - (char *)"mem_access: \\valid_read(__e_acsl_at)",13); - e_acsl_assert(*__e_acsl_at == *__e_acsl_at_2 + ((long double)5 - - ((long double)__e_acsl_4 * *__e_acsl_at_3) * 0.4), - (char *)"Postcondition",(char *)"foo", - (char *)"*\\old(Mtmax_out) == *\\old(Mtmax_in)+(5-((5/80)**\\old(Mwmax))*0.4)", - 13); - __delete_block((void *)(& Mtmax_in)); - __delete_block((void *)(& Mwmax)); - __delete_block((void *)(& Mtmax_out)); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_div); - return; - } -} - -/*@ requires \valid(Mtmin_in); - requires \valid(Mwmin); - requires \valid(Mtmin_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.; - */ -void bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) -{ - __store_block((void *)(& Mtmin_in),4U); - __store_block((void *)(& Mwmin),4U); - __store_block((void *)(& Mtmin_out),4U); - __initialize((void *)Mtmin_out,sizeof(float)); - *Mtmin_out = (float)(0.85 * (double)*Mwmin); - __delete_block((void *)(& Mtmin_in)); - __delete_block((void *)(& Mwmin)); - __delete_block((void *)(& Mtmin_out)); - return; -} - -/*@ requires \valid(Mtmin_in); - requires \valid(Mwmin); - requires \valid(Mtmin_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.; - */ -void __e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) -{ - float *__e_acsl_at_6; - float *__e_acsl_at_5; - float *__e_acsl_at_4; - float *__e_acsl_at_3; - float *__e_acsl_at_2; - float *__e_acsl_at; - { - int __e_acsl_valid; - int __e_acsl_valid_2; - int __e_acsl_valid_3; - __store_block((void *)(& Mtmin_in),4U); - __store_block((void *)(& Mwmin),4U); - __store_block((void *)(& Mtmin_out),4U); - __e_acsl_valid = __valid((void *)Mtmin_in,sizeof(float)); - e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mtmin_in)",19); - __e_acsl_valid_2 = __valid((void *)Mwmin,sizeof(float)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mwmin)",20); - __e_acsl_valid_3 = __valid((void *)Mtmin_out,sizeof(float)); - e_acsl_assert(__e_acsl_valid_3,(char *)"Precondition",(char *)"bar", - (char *)"\\valid(Mtmin_out)",21); - __store_block((void *)(& __e_acsl_at_6),4U); - __e_acsl_at_6 = Mwmin; - __store_block((void *)(& __e_acsl_at_5),4U); - __e_acsl_at_5 = Mtmin_in; - __store_block((void *)(& __e_acsl_at_4),4U); - __e_acsl_at_4 = Mwmin; - __store_block((void *)(& __e_acsl_at_3),4U); - __e_acsl_at_3 = Mtmin_in; - __store_block((void *)(& __e_acsl_at_2),4U); - __e_acsl_at_2 = Mtmin_in; - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = Mtmin_out; - bar(Mtmin_in,Mwmin,Mtmin_out); - } - { - int __e_acsl_valid_read; - int __e_acsl_valid_read_2; - mpz_t __e_acsl_and; - unsigned long __e_acsl_2; - int __e_acsl_if; - __e_acsl_valid_read = __valid_read((void *)__e_acsl_at_2,sizeof(float)); - e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_2)",25); - __e_acsl_valid_read_2 = __valid_read((void *)__e_acsl_at,sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at)",25); - if (*__e_acsl_at == *__e_acsl_at_2) { - int __e_acsl_valid_read_3; - int __e_acsl_valid_read_4; - mpz_t __e_acsl; - __e_acsl_valid_read_3 = __valid_read((void *)__e_acsl_at_4, - sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_4)",25); - __e_acsl_valid_read_4 = __valid_read((void *)__e_acsl_at_3, - sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_3)",25); - __gmpz_init_set_si(__e_acsl, - (long)(*__e_acsl_at_3 < 0.85 * *__e_acsl_at_4)); - __gmpz_init_set(__e_acsl_and,(__mpz_struct const *)(__e_acsl)); - __gmpz_clear(__e_acsl); - } - else __gmpz_init_set_si(__e_acsl_and,0L); - __e_acsl_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_and)); - if (__e_acsl_2) { - int __e_acsl_valid_read_5; - __e_acsl_valid_read_5 = __valid_read((void *)__e_acsl_at_5, - sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_5,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_5)",25); - __e_acsl_if = *__e_acsl_at_5 != 0.; - } - else { - int __e_acsl_valid_read_6; - __e_acsl_valid_read_6 = __valid_read((void *)__e_acsl_at_6, - sizeof(float)); - e_acsl_assert(__e_acsl_valid_read_6,(char *)"RTE",(char *)"bar", - (char *)"mem_access: \\valid_read(__e_acsl_at_6)",25); - __e_acsl_if = 0.85 * *__e_acsl_at_6 != 0.; - } - e_acsl_assert(__e_acsl_if,(char *)"Postcondition",(char *)"bar", - (char *)"*\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85**\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85**\\old(Mwmin) != 0.", - 25); - __delete_block((void *)(& Mtmin_in)); - __delete_block((void *)(& Mwmin)); - __delete_block((void *)(& Mtmin_out)); - __gmpz_clear(__e_acsl_and); - return; - } -} - -int main(void) -{ - int __retres; - float f; - float g; - float h; - __store_block((void *)(& h),4U); - __store_block((void *)(& g),4U); - __store_block((void *)(& f),4U); - __full_init((void *)(& f)); - f = (float)1.0; - __full_init((void *)(& g)); - g = (float)1.0; - __e_acsl_foo(& f,& g,& h); - __e_acsl_bar(& f,& g,& h); - __retres = 0; - __delete_block((void *)(& h)); - __delete_block((void *)(& g)); - __delete_block((void *)(& f)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 bad798ea364dc5f9a53442723b3734b4528e02c0..0fa1346490e6015cf0a6052c45a41e8acbd4df65 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c @@ -1,70 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ behavior yes: assumes ∀ int i; 0 < i < n ⇒ *(t+(i-1)) ≤ *(t+i); ensures \result ≡ 1; @@ -98,7 +32,7 @@ int __e_acsl_sorted(int *t, int n) { int __e_acsl_at; int __retres; - __store_block((void *)(& t),4U); + __store_block((void *)(& t),8UL); { int __e_acsl_forall; int __e_acsl_i; @@ -112,13 +46,13 @@ int __e_acsl_sorted(int *t, int n) __e_acsl_valid_read = __valid_read((void *)(t + __e_acsl_i), sizeof(int)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"sorted", - (char *)"mem_access: \\valid_read(t+__e_acsl_i)",8); - __e_acsl_valid_read_2 = __valid_read((void *)(t + ((long long)__e_acsl_i - (long long)1)), + (char *)"mem_access: \\valid_read(t+__e_acsl_i)",6); + __e_acsl_valid_read_2 = __valid_read((void *)(t + ((long)__e_acsl_i - (long)1)), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"sorted", - (char *)"mem_access: \\valid_read(t+(long long)((long long)__e_acsl_i-1))", - 8); - if (*(t + ((long long)__e_acsl_i - (long long)1)) <= *(t + __e_acsl_i)) + (char *)"mem_access: \\valid_read(t+(long)((long)__e_acsl_i-1))", + 6); + if (*(t + ((long)__e_acsl_i - (long)1)) <= *(t + __e_acsl_i)) ; else { __e_acsl_forall = 0; @@ -137,7 +71,7 @@ int __e_acsl_sorted(int *t, int n) else __e_acsl_implies = __retres == 1; e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"sorted", (char *)"\\old(\\forall int i; 0 < i < n ==> *(t+(i-1)) <= *(t+i)) ==> \\result == 1", - 9); + 7); __delete_block((void *)(& t)); return __retres; } @@ -148,7 +82,7 @@ int main(void) int __retres; int t[7]; int n; - __store_block((void *)(t),28U); + __store_block((void *)(t),28UL); __initialize((void *)(t),sizeof(int)); t[0] = 1; __initialize((void *)(& t[1]),sizeof(int)); @@ -166,7 +100,7 @@ int main(void) n = __e_acsl_sorted(t,7); /*@ assert n ≡ 1; */ e_acsl_assert(n == 1,(char *)"Assertion",(char *)"main",(char *)"n == 1", - 25); + 23); __retres = 0; __delete_block((void *)(t)); __e_acsl_memory_clean(); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13242.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13242.c deleted file mode 100644 index aab5a6b122816b329918cab015120a46b869dc0f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13242.c +++ /dev/null @@ -1,295 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_sub(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ behavior yes: - assumes ∀ int i; 0 < i < n ⇒ *(t+(i-1)) ≤ *(t+i); - ensures \result ≡ 1; - */ -int sorted(int *t, int n) -{ - int __retres; - int b; - b = 1; - if (n <= 1) { - __retres = 1; - goto return_label; - } - b = 1; - while (b < n) { - if (*(t + (b - 1)) > *(t + b)) { - __retres = 0; - goto return_label; - } - b ++; - } - __retres = 1; - return_label: return __retres; -} - -/*@ behavior yes: - assumes ∀ int i; 0 < i < n ⇒ *(t+(i-1)) ≤ *(t+i); - ensures \result ≡ 1; - */ -int __e_acsl_sorted(int *t, int n) -{ - int __e_acsl_at; - int __retres; - __store_block((void *)(& t),4U); - { - int __e_acsl_forall; - mpz_t __e_acsl_i; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_i); - { - mpz_t __e_acsl_5; - mpz_t __e_acsl_6; - mpz_t __e_acsl_add; - __gmpz_init_set_si(__e_acsl_5,(long)0); - __gmpz_init_set_si(__e_acsl_6,1L); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_5), - (__mpz_struct const *)(__e_acsl_6)); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_add)); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_6); - __gmpz_clear(__e_acsl_add); - } - while (1) { - { - mpz_t __e_acsl_n; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_n,(long)n); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_n)); - if (__e_acsl_lt < 0) ; else break; - __gmpz_clear(__e_acsl_n); - } - { - mpz_t __e_acsl; - mpz_t __e_acsl_sub; - unsigned long __e_acsl_2; - mpz_t __e_acsl_3; - unsigned long __e_acsl_i_2; - mpz_t __e_acsl_4; - int __e_acsl_le; - __gmpz_init_set_si(__e_acsl,(long)1); - __gmpz_init(__e_acsl_sub); - __gmpz_sub(__e_acsl_sub,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl)); - __e_acsl_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_sub)); - __gmpz_init_set_si(__e_acsl_3,(long)*(t + __e_acsl_2)); - __e_acsl_i_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_i)); - __gmpz_init_set_si(__e_acsl_4,(long)*(t + __e_acsl_i_2)); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_4)); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_sub); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_4); - if (__e_acsl_le <= 0) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop1; - } - } - { - mpz_t __e_acsl_7; - mpz_t __e_acsl_add_2; - __gmpz_init_set_si(__e_acsl_7,1L); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_7)); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_add_2)); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_add_2); - } - } - e_acsl_end_loop1: ; - __e_acsl_at = __e_acsl_forall; - __gmpz_clear(__e_acsl_i); - } - __retres = sorted(t,n); - { - int __e_acsl_implies; - if (! __e_acsl_at) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_result; - mpz_t __e_acsl_8; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_result,(long)__retres); - __gmpz_init_set_si(__e_acsl_8,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), - (__mpz_struct const *)(__e_acsl_8)); - __e_acsl_implies = __e_acsl_eq == 0; - __gmpz_clear(__e_acsl_result); - __gmpz_clear(__e_acsl_8); - } - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"sorted", - (char *)"\\old(\\forall int i; 0 < i < n ==> *(t+(i-1)) <= *(t+i)) ==> \\result == 1", - 9); - __delete_block((void *)(& t)); - return __retres; - } -} - -int main(void) -{ - int __retres; - int t[7]; - int n; - __store_block((void *)(t),28U); - __initialize((void *)(t),sizeof(int)); - t[0] = 1; - __initialize((void *)(& t[1]),sizeof(int)); - t[1] = 4; - __initialize((void *)(& t[2]),sizeof(int)); - t[2] = 4; - __initialize((void *)(& t[3]),sizeof(int)); - t[3] = 5; - __initialize((void *)(& t[4]),sizeof(int)); - t[4] = 5; - __initialize((void *)(& t[5]),sizeof(int)); - t[5] = 5; - __initialize((void *)(& t[6]),sizeof(int)); - t[6] = 7; - n = __e_acsl_sorted(t,7); - /*@ assert n ≡ 1; */ - { - mpz_t __e_acsl_n; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_n,(long)n); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_n), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"n == 1",25); - __gmpz_clear(__e_acsl_n); - __gmpz_clear(__e_acsl); - } - __retres = 0; - __delete_block((void *)(t)); - __e_acsl_memory_clean(); - 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 a5bf59395c9f283c9de2e158dd06991205359b47..479e7abf3f5c0b1495d3e6b236509d101da85dad 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c @@ -1,71 +1,5 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; typedef int ArrayInt[5]; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ ensures *\old(AverageAccel) ≡ (((((*\old(Accel))[4]+(*\old(Accel))[3])+(*\old(Accel))[2])+(*\old( @@ -74,8 +8,8 @@ predicate diffSize{L1, L2}(ℤ i) = */ void atp_NORMAL_computeAverageAccel(ArrayInt *Accel, int *AverageAccel) { - __store_block((void *)(& Accel),4U); - __store_block((void *)(& AverageAccel),4U); + __store_block((void *)(& Accel),8UL); + __store_block((void *)(& AverageAccel),8UL); __initialize((void *)AverageAccel,sizeof(int)); *AverageAccel = (((((*Accel)[4] + (*Accel)[3]) + (*Accel)[2]) + (*Accel)[1]) + (*Accel)[0]) / 5; __delete_block((void *)(& Accel)); @@ -98,19 +32,19 @@ void __e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, ArrayInt *__e_acsl_at_3; ArrayInt *__e_acsl_at_2; int *__e_acsl_at; - __store_block((void *)(& Accel),4U); - __store_block((void *)(& AverageAccel),4U); - __store_block((void *)(& __e_acsl_at_6),4U); + __store_block((void *)(& Accel),8UL); + __store_block((void *)(& AverageAccel),8UL); + __store_block((void *)(& __e_acsl_at_6),8UL); __e_acsl_at_6 = Accel; - __store_block((void *)(& __e_acsl_at_5),4U); + __store_block((void *)(& __e_acsl_at_5),8UL); __e_acsl_at_5 = Accel; - __store_block((void *)(& __e_acsl_at_4),4U); + __store_block((void *)(& __e_acsl_at_4),8UL); __e_acsl_at_4 = Accel; - __store_block((void *)(& __e_acsl_at_3),4U); + __store_block((void *)(& __e_acsl_at_3),8UL); __e_acsl_at_3 = Accel; - __store_block((void *)(& __e_acsl_at_2),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); __e_acsl_at_2 = Accel; - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at),8UL); __e_acsl_at = AverageAccel; atp_NORMAL_computeAverageAccel(Accel,AverageAccel); { @@ -124,40 +58,36 @@ void __e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, e_acsl_assert(__e_acsl_valid_read,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", (char *)"mem_access: \\valid_read((int *)*__e_acsl_at_6)", - 10); + 8); __e_acsl_valid_read_2 = __valid_read((void *)(& (*__e_acsl_at_5)[1]), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", - (char *)"mem_access: \\valid_read(&(*__e_acsl_at_5)[1])", - 10); + (char *)"mem_access: \\valid_read(&(*__e_acsl_at_5)[1])",8); __e_acsl_valid_read_3 = __valid_read((void *)(& (*__e_acsl_at_4)[2]), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", - (char *)"mem_access: \\valid_read(&(*__e_acsl_at_4)[2])", - 10); + (char *)"mem_access: \\valid_read(&(*__e_acsl_at_4)[2])",8); __e_acsl_valid_read_4 = __valid_read((void *)(& (*__e_acsl_at_3)[3]), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", - (char *)"mem_access: \\valid_read(&(*__e_acsl_at_3)[3])", - 10); + (char *)"mem_access: \\valid_read(&(*__e_acsl_at_3)[3])",8); __e_acsl_valid_read_5 = __valid_read((void *)(& (*__e_acsl_at_2)[4]), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_5,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", - (char *)"mem_access: \\valid_read(&(*__e_acsl_at_2)[4])", - 10); + (char *)"mem_access: \\valid_read(&(*__e_acsl_at_2)[4])",8); __e_acsl_valid_read_6 = __valid_read((void *)__e_acsl_at,sizeof(int)); e_acsl_assert(__e_acsl_valid_read_6,(char *)"RTE", (char *)"atp_NORMAL_computeAverageAccel", - (char *)"mem_access: \\valid_read(__e_acsl_at)",10); - e_acsl_assert(*__e_acsl_at == (((((long long)(*__e_acsl_at_2)[4] + (long long)(*__e_acsl_at_3)[3]) + (long long)(*__e_acsl_at_4)[2]) + (long long)(*__e_acsl_at_5)[1]) + (long long)(*__e_acsl_at_6)[0]) / (long long)5, + (char *)"mem_access: \\valid_read(__e_acsl_at)",8); + e_acsl_assert(*__e_acsl_at == (((((long)(*__e_acsl_at_2)[4] + (long)(*__e_acsl_at_3)[3]) + (long)(*__e_acsl_at_4)[2]) + (long)(*__e_acsl_at_5)[1]) + (long)(*__e_acsl_at_6)[0]) / (long)5, (char *)"Postcondition", (char *)"atp_NORMAL_computeAverageAccel", (char *)"*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4]+(*\\old(Accel))[3])+(*\\old(Accel))[2])+(*\\old(Accel))[1])+(*\n \\old(Accel))[0])/5", - 10); + 8); __delete_block((void *)(& Accel)); __delete_block((void *)(& AverageAccel)); return; @@ -169,8 +99,8 @@ int main(void) int __retres; ArrayInt Accel; int av; - __store_block((void *)(& av),4U); - __store_block((void *)(Accel),20U); + __store_block((void *)(& av),4UL); + __store_block((void *)(Accel),20UL); __initialize((void *)(Accel),sizeof(int)); Accel[0] = 1; __initialize((void *)(& Accel[1]),sizeof(int)); diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13262.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13262.c deleted file mode 100644 index c5e1dc20355e66da9357905a35084b5bab8597be..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13262.c +++ /dev/null @@ -1,253 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -typedef int ArrayInt[5]; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ ensures - *\old(AverageAccel) ≡ - (((((*\old(Accel))[4]+(*\old(Accel))[3])+(*\old(Accel))[2])+(*\old( - Accel))[1])+(* - \old(Accel))[0])/5; - */ -void atp_NORMAL_computeAverageAccel(ArrayInt *Accel, int *AverageAccel) -{ - __store_block((void *)(& Accel),4U); - __store_block((void *)(& AverageAccel),4U); - __initialize((void *)AverageAccel,sizeof(int)); - *AverageAccel = (((((*Accel)[4] + (*Accel)[3]) + (*Accel)[2]) + (*Accel)[1]) + (*Accel)[0]) / 5; - __delete_block((void *)(& Accel)); - __delete_block((void *)(& AverageAccel)); - return; -} - -/*@ ensures - *\old(AverageAccel) ≡ - (((((*\old(Accel))[4]+(*\old(Accel))[3])+(*\old(Accel))[2])+(*\old( - Accel))[1])+(* - \old(Accel))[0])/5; - */ -void __e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel, - int *AverageAccel) -{ - ArrayInt *__e_acsl_at_6; - ArrayInt *__e_acsl_at_5; - ArrayInt *__e_acsl_at_4; - ArrayInt *__e_acsl_at_3; - ArrayInt *__e_acsl_at_2; - int *__e_acsl_at; - __store_block((void *)(& Accel),4U); - __store_block((void *)(& AverageAccel),4U); - __store_block((void *)(& __e_acsl_at_6),4U); - __e_acsl_at_6 = Accel; - __store_block((void *)(& __e_acsl_at_5),4U); - __e_acsl_at_5 = Accel; - __store_block((void *)(& __e_acsl_at_4),4U); - __e_acsl_at_4 = Accel; - __store_block((void *)(& __e_acsl_at_3),4U); - __e_acsl_at_3 = Accel; - __store_block((void *)(& __e_acsl_at_2),4U); - __e_acsl_at_2 = Accel; - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = AverageAccel; - atp_NORMAL_computeAverageAccel(Accel,AverageAccel); - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - mpz_t __e_acsl_add; - mpz_t __e_acsl_4; - mpz_t __e_acsl_add_2; - mpz_t __e_acsl_5; - mpz_t __e_acsl_add_3; - mpz_t __e_acsl_6; - mpz_t __e_acsl_add_4; - mpz_t __e_acsl_7; - mpz_t __e_acsl_8; - int __e_acsl_div_guard; - mpz_t __e_acsl_div; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*__e_acsl_at); - __gmpz_init_set_si(__e_acsl_2,(long)(*__e_acsl_at_2)[4]); - __gmpz_init_set_si(__e_acsl_3,(long)(*__e_acsl_at_3)[3]); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init_set_si(__e_acsl_4,(long)(*__e_acsl_at_4)[2]); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_add), - (__mpz_struct const *)(__e_acsl_4)); - __gmpz_init_set_si(__e_acsl_5,(long)(*__e_acsl_at_5)[1]); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3,(__mpz_struct const *)(__e_acsl_add_2), - (__mpz_struct const *)(__e_acsl_5)); - __gmpz_init_set_si(__e_acsl_6,(long)(*__e_acsl_at_6)[0]); - __gmpz_init(__e_acsl_add_4); - __gmpz_add(__e_acsl_add_4,(__mpz_struct const *)(__e_acsl_add_3), - (__mpz_struct const *)(__e_acsl_6)); - __gmpz_init_set_si(__e_acsl_7,(long)5); - __gmpz_init_set_si(__e_acsl_8,0L); - __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl_7), - (__mpz_struct const *)(__e_acsl_8)); - __gmpz_init(__e_acsl_div); - /*@ assert E_ACSL: 5 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Postcondition", - (char *)"atp_NORMAL_computeAverageAccel",(char *)"5 == 0", - 11); - __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl_add_4), - (__mpz_struct const *)(__e_acsl_7)); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_div)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition", - (char *)"atp_NORMAL_computeAverageAccel", - (char *)"*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4]+(*\\old(Accel))[3])+(*\\old(Accel))[2])+(*\\old(Accel))[1])+(*\n \\old(Accel))[0])/5", - 10); - __delete_block((void *)(& Accel)); - __delete_block((void *)(& AverageAccel)); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_4); - __gmpz_clear(__e_acsl_add_2); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_add_3); - __gmpz_clear(__e_acsl_6); - __gmpz_clear(__e_acsl_add_4); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_div); - return; - } -} - -int main(void) -{ - int __retres; - ArrayInt Accel; - int av; - __store_block((void *)(& av),4U); - __store_block((void *)(Accel),20U); - __initialize((void *)(Accel),sizeof(int)); - Accel[0] = 1; - __initialize((void *)(& Accel[1]),sizeof(int)); - Accel[1] = 2; - __initialize((void *)(& Accel[2]),sizeof(int)); - Accel[2] = 3; - __initialize((void *)(& Accel[3]),sizeof(int)); - Accel[3] = 4; - __initialize((void *)(& Accel[4]),sizeof(int)); - Accel[4] = 5; - __e_acsl_atp_NORMAL_computeAverageAccel(& Accel,& av); - __retres = 0; - __delete_block((void *)(& av)); - __delete_block((void *)(Accel)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 95439a4657d03a382f8b8dfff5999a0c41f6e6e2..c2fd12eba03a641cdc46388ced02709888b4e23c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c @@ -1,80 +1,6 @@ /* Generated by Frama-C */ char *__e_acsl_literal_string; char *__e_acsl_literal_string_2; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ \offset(\old(ptr)); - assigns \result; - assigns \result \from ptr; - */ -extern __attribute__((__FC_BUILTIN__)) int __offset(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ behavior exists: assumes ∃ ℤ i; 0 ≤ i < n ∧ (int)*((char *)buf+i) ≡ c; ensures @@ -91,13 +17,14 @@ void *memchr(void const *buf, int c, size_t n) void *__retres; int i; char *s; - __store_block((void *)(& s),4U); - __store_block((void *)(& __retres),4U); - __store_block((void *)(& buf),4U); + __store_block((void *)(& s),8UL); + __store_block((void *)(& __retres),8UL); + __store_block((void *)(& buf),8UL); __full_init((void *)(& s)); s = (char *)buf; i = 0; while ((size_t)i < n) { + /*@ assert Value: mem_access: \valid_read(s); */ if ((int)*s == c) { __full_init((void *)(& __retres)); __retres = (void *)s; @@ -134,13 +61,13 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) void const *__e_acsl_at_2; int __e_acsl_at; void *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& buf),4U); + __store_block((void *)(& __retres),8UL); + __store_block((void *)(& buf),8UL); { int __e_acsl_forall_2; - unsigned int __e_acsl_k; + unsigned long __e_acsl_k; __e_acsl_forall_2 = 1; - __e_acsl_k = (unsigned int)0; + __e_acsl_k = (unsigned long)0; while (1) { if (__e_acsl_k < n) ; else break; { @@ -149,7 +76,7 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) sizeof(char)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"memchr", (char *)"mem_access: \\valid_read((char *)buf+__e_acsl_k)", - 15); + 12); if ((int)*((char *)buf + __e_acsl_k) != c) ; else { __e_acsl_forall_2 = 0; @@ -162,13 +89,13 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) __e_acsl_at_4 = __e_acsl_forall_2; } __e_acsl_at_3 = c; - __store_block((void *)(& __e_acsl_at_2),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); __e_acsl_at_2 = buf; { int __e_acsl_exists; - unsigned int __e_acsl_i; + unsigned long __e_acsl_i; __e_acsl_exists = 0; - __e_acsl_i = (unsigned int)0; + __e_acsl_i = (unsigned long)0; while (1) { if (__e_acsl_i < n) ; else break; { @@ -177,7 +104,7 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) sizeof(char)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"memchr", (char *)"mem_access: \\valid_read((char *)buf+__e_acsl_i)", - 11); + 8); if (! ((int)*((char *)buf + __e_acsl_i) == c)) ; else { __e_acsl_exists = 1; @@ -196,14 +123,14 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) if (! __e_acsl_at) __e_acsl_implies = 1; else { int __e_acsl_forall; - unsigned int __e_acsl_j; + unsigned long __e_acsl_j; __e_acsl_forall = 1; - __e_acsl_j = (unsigned int)0; + __e_acsl_j = (unsigned long)0; while (1) { { int __e_acsl_offset; __e_acsl_offset = __offset(__retres); - if (__e_acsl_j < (unsigned int)__e_acsl_offset) ; else break; + if (__e_acsl_j < (unsigned long)__e_acsl_offset) ; else break; } { int __e_acsl_valid_read_2; @@ -211,7 +138,7 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) sizeof(char)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"memchr", (char *)"mem_access: \\valid_read((char *)__e_acsl_at_2+__e_acsl_j)", - 13); + 10); if ((int)*((char *)__e_acsl_at_2 + __e_acsl_j) != __e_acsl_at_3) ; else { @@ -226,13 +153,13 @@ void *__e_acsl_memchr(void const *buf, int c, size_t n) } e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"memchr", (char *)"\\old(\\exists integer i; 0 <= i < n && (int)*((char *)buf+i) == c) ==>\n(\\forall int j;\n 0 <= j < \\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf)+j) != \\old(c))", - 13); + 10); if (! __e_acsl_at_4) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = __retres == (void *)0; e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition", (char *)"memchr", (char *)"\\old(\\forall integer k; 0 <= k < n ==> (int)*((char *)buf+k) != c) ==>\n\\result == (void *)0", - 16); + 13); __delete_block((void *)(& buf)); __delete_block((void *)(& __retres)); return __retres; @@ -256,9 +183,9 @@ int main(void) { int __retres; __e_acsl_memory_init(); - __e_acsl_memchr((void const *)__e_acsl_literal_string,'o',(unsigned int)4); + __e_acsl_memchr((void const *)__e_acsl_literal_string,'o',(unsigned long)4); __e_acsl_memchr((void const *)__e_acsl_literal_string_2,'o', - (unsigned int)4); + (unsigned long)4); __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13902.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13902.c deleted file mode 100644 index 4405fd55d8d2b5712208daeb6c6de7bf1dcd5f1c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13902.c +++ /dev/null @@ -1,412 +0,0 @@ -/* Generated by Frama-C */ -char *__e_acsl_literal_string; -char *__e_acsl_literal_string_2; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ \offset(\old(ptr)); - assigns \result; - assigns \result \from ptr; - */ -extern __attribute__((__FC_BUILTIN__)) int __offset(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ behavior exists: - assumes ∃ ℤ i; 0 ≤ i < n ∧ (int)*((char *)buf+i) ≡ c; - ensures - ∀ int j; - 0 ≤ j < \offset((char *)\result) ⇒ - (int)*((char *)\old(buf)+j) ≢ \old(c); - - behavior not_exists: - assumes ∀ ℤ k; 0 ≤ k < n ⇒ (int)*((char *)buf+k) ≢ c; - ensures \result ≡ (void *)0; - */ -void *memchr(void const *buf, int c, size_t n) -{ - void *__retres; - int i; - char *s; - __store_block((void *)(& s),4U); - __store_block((void *)(& __retres),4U); - __store_block((void *)(& buf),4U); - __full_init((void *)(& s)); - s = (char *)buf; - i = 0; - while ((size_t)i < n) { - if ((int)*s == c) { - __full_init((void *)(& __retres)); - __retres = (void *)s; - goto return_label; - } - __full_init((void *)(& s)); - s ++; - i ++; - } - __full_init((void *)(& __retres)); - __retres = (void *)0; - return_label: - __delete_block((void *)(& buf)); - __delete_block((void *)(& s)); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ behavior exists: - assumes ∃ ℤ i; 0 ≤ i < n ∧ (int)*((char *)buf+i) ≡ c; - ensures - ∀ int j; - 0 ≤ j < \offset((char *)\result) ⇒ - (int)*((char *)\old(buf)+j) ≢ \old(c); - - behavior not_exists: - assumes ∀ ℤ k; 0 ≤ k < n ⇒ (int)*((char *)buf+k) ≢ c; - ensures \result ≡ (void *)0; - */ -void *__e_acsl_memchr(void const *buf, int c, size_t n) -{ - int __e_acsl_at_4; - int __e_acsl_at_3; - void const *__e_acsl_at_2; - int __e_acsl_at; - void *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& buf),4U); - { - int __e_acsl_forall_2; - mpz_t __e_acsl_k; - __e_acsl_forall_2 = 1; - __gmpz_init(__e_acsl_k); - { - mpz_t __e_acsl_6; - __gmpz_init_set_si(__e_acsl_6,(long)0); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl_6)); - __gmpz_clear(__e_acsl_6); - } - while (1) { - { - mpz_t __e_acsl_n_2; - int __e_acsl_lt_3; - __gmpz_init_set_ui(__e_acsl_n_2,(unsigned long)n); - __e_acsl_lt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_n_2)); - if (__e_acsl_lt_3 < 0) ; else break; - __gmpz_clear(__e_acsl_n_2); - } - { - unsigned long __e_acsl_k_2; - mpz_t __e_acsl_cast_3; - mpz_t __e_acsl_c_2; - int __e_acsl_ne_2; - __e_acsl_k_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_k)); - __gmpz_init_set_si(__e_acsl_cast_3, - (long)((int)*((char *)buf + __e_acsl_k_2))); - __gmpz_init_set_si(__e_acsl_c_2,(long)c); - __e_acsl_ne_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_3), - (__mpz_struct const *)(__e_acsl_c_2)); - __gmpz_clear(__e_acsl_cast_3); - __gmpz_clear(__e_acsl_c_2); - if (__e_acsl_ne_2 != 0) ; - else { - __e_acsl_forall_2 = 0; - goto e_acsl_end_loop3; - } - } - { - mpz_t __e_acsl_7; - mpz_t __e_acsl_add_3; - __gmpz_init_set_si(__e_acsl_7,1L); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3,(__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_7)); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl_add_3)); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_add_3); - } - } - e_acsl_end_loop3: ; - __e_acsl_at_4 = __e_acsl_forall_2; - __gmpz_clear(__e_acsl_k); - } - __e_acsl_at_3 = c; - __store_block((void *)(& __e_acsl_at_2),4U); - __e_acsl_at_2 = buf; - { - int __e_acsl_exists; - mpz_t __e_acsl_i; - __e_acsl_exists = 0; - __gmpz_init(__e_acsl_i); - { - mpz_t __e_acsl; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl)); - __gmpz_clear(__e_acsl); - } - while (1) { - { - mpz_t __e_acsl_n; - int __e_acsl_lt; - __gmpz_init_set_ui(__e_acsl_n,(unsigned long)n); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_n)); - if (__e_acsl_lt < 0) ; else break; - __gmpz_clear(__e_acsl_n); - } - { - unsigned long __e_acsl_i_2; - mpz_t __e_acsl_cast; - mpz_t __e_acsl_c; - int __e_acsl_eq; - __e_acsl_i_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_i)); - __gmpz_init_set_si(__e_acsl_cast, - (long)((int)*((char *)buf + __e_acsl_i_2))); - __gmpz_init_set_si(__e_acsl_c,(long)c); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast), - (__mpz_struct const *)(__e_acsl_c)); - __gmpz_clear(__e_acsl_cast); - __gmpz_clear(__e_acsl_c); - if (! (__e_acsl_eq == 0)) ; - else { - __e_acsl_exists = 1; - goto e_acsl_end_loop1; - } - } - { - mpz_t __e_acsl_2; - mpz_t __e_acsl_add; - __gmpz_init_set_si(__e_acsl_2,1L); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_2)); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_add)); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_add); - } - } - e_acsl_end_loop1: ; - __e_acsl_at = __e_acsl_exists; - __gmpz_clear(__e_acsl_i); - } - __retres = memchr(buf,c,n); - { - int __e_acsl_implies; - int __e_acsl_implies_2; - if (! __e_acsl_at) __e_acsl_implies = 1; - else { - int __e_acsl_forall; - mpz_t __e_acsl_j; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_j); - { - mpz_t __e_acsl_4; - __gmpz_init_set_si(__e_acsl_4,(long)0); - __gmpz_set(__e_acsl_j,(__mpz_struct const *)(__e_acsl_4)); - __gmpz_clear(__e_acsl_4); - } - while (1) { - { - int __e_acsl_offset; - mpz_t __e_acsl_offset_2; - int __e_acsl_lt_2; - __e_acsl_offset = __offset(__retres); - __gmpz_init_set_si(__e_acsl_offset_2,(long)__e_acsl_offset); - __e_acsl_lt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_j), - (__mpz_struct const *)(__e_acsl_offset_2)); - if (__e_acsl_lt_2 < 0) ; else break; - __gmpz_clear(__e_acsl_offset_2); - } - { - unsigned long __e_acsl_j_2; - mpz_t __e_acsl_cast_2; - mpz_t __e_acsl_3; - int __e_acsl_ne; - __e_acsl_j_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_j)); - __gmpz_init_set_si(__e_acsl_cast_2, - (long)((int)*((char *)__e_acsl_at_2 + __e_acsl_j_2))); - __gmpz_init_set_si(__e_acsl_3,(long)__e_acsl_at_3); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_2), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_clear(__e_acsl_cast_2); - __gmpz_clear(__e_acsl_3); - if (__e_acsl_ne != 0) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop2; - } - } - { - mpz_t __e_acsl_5; - mpz_t __e_acsl_add_2; - __gmpz_init_set_si(__e_acsl_5,1L); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_j), - (__mpz_struct const *)(__e_acsl_5)); - __gmpz_set(__e_acsl_j,(__mpz_struct const *)(__e_acsl_add_2)); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_add_2); - } - } - e_acsl_end_loop2: ; - __e_acsl_implies = __e_acsl_forall; - __gmpz_clear(__e_acsl_j); - } - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"memchr", - (char *)"\\old(\\exists integer i; 0 <= i < n && (int)*((char *)buf+i) == c) ==>\n(\\forall int j;\n 0 <= j < \\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf)+j) != \\old(c))", - 13); - if (! __e_acsl_at_4) __e_acsl_implies_2 = 1; - else __e_acsl_implies_2 = __retres == (void *)0; - e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition", - (char *)"memchr", - (char *)"\\old(\\forall integer k; 0 <= k < n ==> (int)*((char *)buf+k) != c) ==>\n\\result == (void *)0", - 16); - __delete_block((void *)(& buf)); - __delete_block((void *)(& __retres)); - return __retres; - } -} - -void __e_acsl_memory_init(void) -{ - __e_acsl_literal_string = "toto"; - __store_block((void *)__e_acsl_literal_string,sizeof("toto")); - __full_init((void *)__e_acsl_literal_string); - __literal_string((void *)__e_acsl_literal_string); - __e_acsl_literal_string_2 = "tata"; - __store_block((void *)__e_acsl_literal_string_2,sizeof("tata")); - __full_init((void *)__e_acsl_literal_string_2); - __literal_string((void *)__e_acsl_literal_string_2); - return; -} - -int main(void) -{ - int __retres; - __e_acsl_memory_init(); - __e_acsl_memchr((void const *)__e_acsl_literal_string,'o',(unsigned int)4); - __e_acsl_memchr((void const *)__e_acsl_literal_string_2,'o', - (unsigned int)4); - __retres = 0; - __e_acsl_memory_clean(); - 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 97bd608c9bf3e8d9404530bb6027dcb372b6a2e0..e61c3232854b6664eca6470db61ee80eaccc021e 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c @@ -1,84 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -extern FILE *stdout; - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from *(format+(..)); */ -extern int printf(char const *format , ...); - int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13982.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13982.c deleted file mode 100644 index 97bd608c9bf3e8d9404530bb6027dcb372b6a2e0..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13982.c +++ /dev/null @@ -1,97 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -extern FILE *stdout; - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; -/*@ assigns *__fc_stdout; - assigns *__fc_stdout \from *(format+(..)); */ -extern int printf(char const *format , ...); - -int main(void) -{ - int __retres; - int x; - int t[2]; - int i; - x = 0; - i = 1; - t[0] = 1; - t[1] = 2; - printf("X=%d, t[0]=%d, t[1]=%d\n",x,t[0],t[i]); - __retres = 0; - return __retres; -} - - 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 11363caf14febf93e83232c0264b7384fae1155b..24dee898ba03d8a30f0bcc7871b03902377273af 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c @@ -1,174 +1,15 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; struct spongeStateStruct { unsigned char __attribute__((__aligned__(32))) state[1600 / 8] ; unsigned char __attribute__((__aligned__(32))) dataQueue[1536 / 8] ; unsigned int bitsInQueue ; } __attribute__((__aligned__(32))); typedef struct spongeStateStruct spongeState; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int main(void) { int __retres; spongeState *state; - __store_block((void *)(& state),4U); + __store_block((void *)(& state),8UL); __full_init((void *)(& state)); state = (spongeState *)__e_acsl_malloc(sizeof(spongeState)); __initialize((void *)(& state->bitsInQueue),sizeof(unsigned int)); @@ -180,14 +21,14 @@ int main(void) __e_acsl_valid_read = __valid_read((void *)(& state->bitsInQueue), sizeof(unsigned int)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(&state->bitsInQueue)",24); + (char *)"mem_access: \\valid_read(&state->bitsInQueue)",22); __e_acsl_initialized = __initialized((void *)(& state->dataQueue[ state->bitsInQueue / (unsigned int)8]), sizeof(unsigned char __attribute__(( __aligned__(32))))); e_acsl_assert(! __e_acsl_initialized,(char *)"Assertion",(char *)"main", (char *)"!\\initialized(&state->dataQueue[state->bitsInQueue/8])", - 24); + 22); } __e_acsl_free((void *)state); __retres = 0; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13992.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts13992.c deleted file mode 100644 index 85b487196c33c8be906d1bd6ce30cd132320fa6c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts13992.c +++ /dev/null @@ -1,262 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -struct spongeStateStruct { - unsigned char __attribute__((__aligned__(32))) state[1600 / 8] ; - unsigned char __attribute__((__aligned__(32))) dataQueue[1536 / 8] ; - unsigned int bitsInQueue ; -} __attribute__((__aligned__(32))); -typedef struct spongeStateStruct spongeState; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int main(void) -{ - int __retres; - spongeState *state; - __store_block((void *)(& state),4U); - __full_init((void *)(& state)); - state = (spongeState *)__e_acsl_malloc(sizeof(spongeState)); - __initialize((void *)(& state->bitsInQueue),sizeof(unsigned int)); - state->bitsInQueue = (unsigned int)16; - /*@ assert ¬\initialized(&state->dataQueue[state->bitsInQueue/8]); */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - int __e_acsl_div_guard; - mpz_t __e_acsl_div; - unsigned long __e_acsl_4; - int __e_acsl_initialized; - __gmpz_init_set_ui(__e_acsl,(unsigned long)state->bitsInQueue); - __gmpz_init_set_si(__e_acsl_2,(long)8); - __gmpz_init_set_si(__e_acsl_3,0L); - __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init(__e_acsl_div); - /*@ assert E_ACSL: 8 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"8 == 0",24); - __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_div)); - __e_acsl_initialized = __initialized((void *)(& state->dataQueue[__e_acsl_4]), - sizeof(unsigned char __attribute__(( - __aligned__(32))))); - e_acsl_assert(! __e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"!\\initialized(&state->dataQueue[state->bitsInQueue/8])", - 24); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_div); - } - __e_acsl_free((void *)state); - __retres = 0; - __delete_block((void *)(& state)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 de9f0a6c8650efc82f34727701c81f9418787def..b1c9a806cfb8b7e224bf92a9500887982221ca6c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c @@ -1,67 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int global_i; int *global_i_ptr = & global_i; @@ -84,12 +21,12 @@ void __e_acsl_loop(void) { int __e_acsl_valid; e_acsl_assert(global_i == 0,(char *)"Precondition",(char *)"loop", - (char *)"global_i == 0",11); + (char *)"global_i == 0",9); __e_acsl_valid = __valid((void *)global_i_ptr,sizeof(int)); e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"loop", - (char *)"\\valid(global_i_ptr)",12); + (char *)"\\valid(global_i_ptr)",10); e_acsl_assert(global_i_ptr == & global_i,(char *)"Precondition", - (char *)"loop",(char *)"global_i_ptr == &global_i",13); + (char *)"loop",(char *)"global_i_ptr == &global_i",11); loop(); } return; @@ -97,9 +34,9 @@ void __e_acsl_loop(void) void __e_acsl_memory_init(void) { - __store_block((void *)(& global_i_ptr),4U); + __store_block((void *)(& global_i_ptr),8UL); __full_init((void *)(& global_i_ptr)); - __store_block((void *)(& global_i),4U); + __store_block((void *)(& global_i),4UL); __full_init((void *)(& global_i)); return; } diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts14782.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts14782.c deleted file mode 100644 index 3be5246cfb3f3f6e7d3d20a7debc1a17dc60abb3..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts14782.c +++ /dev/null @@ -1,151 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int global_i; - -int *global_i_ptr = & global_i; -int global_i = 0; -/*@ requires global_i ≡ 0; - requires \valid(global_i_ptr); - requires global_i_ptr ≡ &global_i; - */ -void loop(void) -{ - return; -} - -/*@ requires global_i ≡ 0; - requires \valid(global_i_ptr); - requires global_i_ptr ≡ &global_i; - */ -void __e_acsl_loop(void) -{ - { - mpz_t __e_acsl_global_i; - mpz_t __e_acsl; - int __e_acsl_eq; - int __e_acsl_valid; - __gmpz_init_set_si(__e_acsl_global_i,(long)global_i); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_global_i), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Precondition",(char *)"loop", - (char *)"global_i == 0",11); - __e_acsl_valid = __valid((void *)global_i_ptr,sizeof(int)); - e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"loop", - (char *)"\\valid(global_i_ptr)",12); - e_acsl_assert(global_i_ptr == & global_i,(char *)"Precondition", - (char *)"loop",(char *)"global_i_ptr == &global_i",13); - __gmpz_clear(__e_acsl_global_i); - __gmpz_clear(__e_acsl); - loop(); - } - return; -} - -void __e_acsl_memory_init(void) -{ - __store_block((void *)(& global_i_ptr),4U); - __full_init((void *)(& global_i_ptr)); - __store_block((void *)(& global_i),4U); - __full_init((void *)(& global_i)); - return; -} - -int main(void) -{ - int __retres; - __e_acsl_memory_init(); - __e_acsl_loop(); - __retres = 0; - __delete_block((void *)(& global_i_ptr)); - __delete_block((void *)(& global_i)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 487a65e7f23cd3ef46b18d985612ff10757f8ba3..46ef38c78ca070c217202b9b069fe67e2ca5fcff 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c @@ -1,92 +1,20 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; struct toto { }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; struct toto s; struct toto *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& s),0U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& s),0UL); /*@ assert \valid(&s); */ { int __e_acsl_valid; __e_acsl_valid = __valid((void *)(& s),sizeof(struct toto)); e_acsl_assert(__e_acsl_valid,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&s)",10); + (char *)"\\valid(&s)",9); } __full_init((void *)(& p)); p = & s; @@ -102,7 +30,7 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid(p)",13); + (char *)"\\valid(p)",12); } __retres = 0; __delete_block((void *)(& p)); 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 bfd83983a86a46b25cb49bae40eb908e42a9d0cb..6972e4b71112b5436d9a8494cfc767f26cf85b9d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c @@ -1,83 +1,11 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; int a; int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& a),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& a),4UL); __full_init((void *)(& a)); a = 10; goto lbl_1; @@ -94,7 +22,7 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid(p)",13); + (char *)"\\valid(p)",10); } __retres = 0; goto return_label; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts17172.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts17172.c deleted file mode 100644 index bfd83983a86a46b25cb49bae40eb908e42a9d0cb..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts17172.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int a; - int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& a),4U); - __full_init((void *)(& a)); - a = 10; - goto lbl_1; - lbl_2: - /*@ assert \valid(p); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(& p),sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)p,sizeof(int)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid(p)",13); - } - __retres = 0; - goto return_label; - lbl_1: __full_init((void *)(& p)); - p = & a; - goto lbl_2; - return_label: - __delete_block((void *)(& p)); - __delete_block((void *)(& a)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 bfd83983a86a46b25cb49bae40eb908e42a9d0cb..fc8d950d02102730b9d03e2becd77f205580c7d4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c @@ -1,83 +1,11 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; int a; int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& a),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& a),4UL); __full_init((void *)(& a)); a = 10; goto lbl_1; diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts17182.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts17182.c deleted file mode 100644 index bfd83983a86a46b25cb49bae40eb908e42a9d0cb..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts17182.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int a; - int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& a),4U); - __full_init((void *)(& a)); - a = 10; - goto lbl_1; - lbl_2: - /*@ assert \valid(p); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(& p),sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)p,sizeof(int)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid(p)",13); - } - __retres = 0; - goto return_label; - lbl_1: __full_init((void *)(& p)); - p = & a; - goto lbl_2; - return_label: - __delete_block((void *)(& p)); - __delete_block((void *)(& a)); - __e_acsl_memory_clean(); - return __retres; -} - - 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 32445cb1f02704a681cefc0a633a3b5df006e254..d0c6085d6e45ffd3663ce4c99b754c51516ccacd 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c +++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c @@ -2,98 +2,14 @@ char *__e_acsl_literal_string_3; char *__e_acsl_literal_string; char *__e_acsl_literal_string_2; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ char *S = (char *)"foo"; int f(void) { int __retres; char *s1; char *s2; - __store_block((void *)(& s2),4U); - __store_block((void *)(& s1),4U); + __store_block((void *)(& s2),8UL); + __store_block((void *)(& s1),8UL); __full_init((void *)(& s1)); s1 = (char *)__e_acsl_literal_string; __full_init((void *)(& s2)); @@ -103,7 +19,7 @@ int f(void) int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)S,sizeof(char)); e_acsl_assert(__e_acsl_valid_read,(char *)"Assertion",(char *)"f", - (char *)"\\valid_read(S)",11); + (char *)"\\valid_read(S)",10); } /*@ assert \valid_read(s1); */ { @@ -117,7 +33,7 @@ int f(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"f", - (char *)"\\valid_read(s1)",12); + (char *)"\\valid_read(s1)",11); } /*@ assert \valid_read(s2); */ { @@ -131,7 +47,7 @@ int f(void) } else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"f", - (char *)"\\valid_read(s2)",13); + (char *)"\\valid_read(s2)",12); } __retres = 0; __delete_block((void *)(& s2)); @@ -153,7 +69,7 @@ void __e_acsl_memory_init(void) __store_block((void *)__e_acsl_literal_string_2,sizeof("bar")); __full_init((void *)__e_acsl_literal_string_2); __literal_string((void *)__e_acsl_literal_string_2); - __store_block((void *)(& S),4U); + __store_block((void *)(& S),8UL); __full_init((void *)(& S)); return; } @@ -168,13 +84,14 @@ int main(void) int tmp; { /* sequence */ tmp = i; + /*@ assert Value: signed_overflow: -2147483648 ≤ i-1; */ i --; ; } if (! tmp) break; { char *s; - __store_block((void *)(& s),4U); + __store_block((void *)(& s),8UL); __full_init((void *)(& s)); s = (char *)__e_acsl_literal_string_3; /*@ assert \valid_read(s); */ @@ -189,7 +106,7 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(s)",21); + (char *)"\\valid_read(s)",20); } /*@ assert ¬\valid(s); */ { @@ -203,7 +120,7 @@ int main(void) } else __e_acsl_and_2 = 0; e_acsl_assert(! __e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(s)",22); + (char *)"!\\valid(s)",21); __delete_block((void *)(& s)); } } diff --git a/src/plugins/e-acsl/tests/bts/test_config b/src/plugins/e-acsl/tests/bts/test_config index 31618f99b7d448ba68098010412e63a4a40aaa34..f996eb13e7da3e64c5bf2dac43f9bdaf9019e758 100644 --- a/src/plugins/e-acsl/tests/bts/test_config +++ b/src/plugins/e-acsl/tests/bts/test_config @@ -1,2 +1,3 @@ -OPT: -check -e-acsl -then-last -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results -OPT: -check -e-acsl -e-acsl-gmp-only -then-last -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results +LOG: gen_@PTEST_NAME@.c +OPT: -machdep gcc_x86_64 -check -e-acsl -then-last -load-script tests/print.cmxs -print -ocode tests/bts/result/gen_@PTEST_NAME@.c -kernel-verbose 0 -val -value-verbose 0 +EXECNOW: ./scripts/testrun.sh @PTEST_NAME@ bts "" "--frama-c=@frama-c@" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/addrOf.i b/src/plugins/e-acsl/tests/e-acsl-runtime/addrOf.i index 42c611babba9204a641953030ec827f30a0b9acf..c797facb0f9c1ea90d23dd783c7e380668314ce0 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/addrOf.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/addrOf.i @@ -1,7 +1,5 @@ /* run.config COMMENT: addrOf - EXECNOW: LOG gen_addrOf.c BIN gen_addrOf.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/addrOf.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_addrOf.c > /dev/null && ./gcc_runtime.sh addrOf - EXECNOW: LOG gen_addrOf2.c BIN gen_addrOf2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/addrOf.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_addrOf2.c > /dev/null && ./gcc_runtime.sh addrOf2 */ void f(){ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/alias.i b/src/plugins/e-acsl/tests/e-acsl-runtime/alias.i index 9919f2a34439f0e9ff1d15d6a0a1cf728666435e..b72de86ae978b540858d26329699dfd86a06e538 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/alias.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/alias.i @@ -1,7 +1,5 @@ /* run.config COMMENT: alias - EXECNOW: LOG gen_alias.c BIN gen_alias.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/alias.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_alias.c > /dev/null && ./gcc_runtime.sh alias - EXECNOW: LOG gen_alias2.c BIN gen_alias2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/alias.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_alias2.c > /dev/null && ./gcc_runtime.sh alias2 */ void f(int* dest, int val) diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/array.i b/src/plugins/e-acsl/tests/e-acsl-runtime/array.i deleted file mode 100644 index e6e805f9ad1705add962747265355dff1b5b4f15..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/array.i +++ /dev/null @@ -1,19 +0,0 @@ -/* run.config - COMMENT: arrays - STDOPT: #"-slevel 5" - EXECNOW: LOG gen_array.c BIN gen_array.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/array.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_array.c > /dev/null && ./gcc_runtime.sh array - EXECNOW: LOG gen_array2.c BIN gen_array2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/array.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_array2.c > /dev/null && ./gcc_runtime.sh array2 -*/ - -int T1[3],T2[4]; - -int main(void) { - - for(int i = 0; i < 3; i++) T1[i] = i; - for(int i = 0; i < 4; i++) T2[i] = 2*i; - - /*@ assert T1[0] == T2[0]; */ - /*@ assert T1[1] != T2[1]; */ - - return 0; -} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/call.c b/src/plugins/e-acsl/tests/e-acsl-runtime/call.c index 053d17c39d22f4e4e1b1388c1e7595c18a9b1b09..322370938d0c0d8eb0f7678bdedf889349b49510 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/call.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/call.c @@ -1,13 +1,11 @@ /* run.config COMMENT: function call - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_call.c BIN gen_call.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/call.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_call.c > /dev/null && ./gcc_runtime.sh call - EXECNOW: LOG gen_call2.c BIN gen_call2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/call.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_call2.c > /dev/null && ./gcc_runtime.sh call2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include <stdlib.h> -extern void *malloc(unsigned int size); +//extern void *malloc(unsigned int size); /*@ ensures \valid(\result); */ int *f(int *x, int *y) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/compound_initializers.c b/src/plugins/e-acsl/tests/e-acsl-runtime/compound_initializers.c index c83b3eb4eff1bcd7dcd75889e050f0d26e044f61..91ab2fbf050faa3fdfd192ea5ad2afffc34d7e9b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/compound_initializers.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/compound_initializers.c @@ -1,7 +1,5 @@ /* run.config COMMENT: Compound initializers - EXECNOW: LOG gen_compound_initializers.c BIN gen_compound_initializers.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/compound_initializers.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_compound_initializers.c > /dev/null && ./gcc_runtime.sh compound_initializers - EXECNOW: LOG gen_compound_initializers2.c BIN gen_compound_initializers2.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/compound_initializers.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_compound_initializers2.c > /dev/null && ./gcc_runtime.sh compound_initializers2 */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/empty.i b/src/plugins/e-acsl/tests/e-acsl-runtime/empty.i deleted file mode 100644 index bfe0e542270bfc176bb4fa34e4892b6a604d3ab1..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/empty.i +++ /dev/null @@ -1,5 +0,0 @@ -/* run.config - COMMENT: empty file - OPT: -e-acsl-check -e-acsl -then-on e-acsl -print - OPT: -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -*/ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/false.i b/src/plugins/e-acsl/tests/e-acsl-runtime/false.i index 4b551d0f45b00b45e73181cff0a15d7fa4e5d0d1..37de71490f85e836751d503498020cb626f4e9f8 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/false.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/false.i @@ -1,7 +1,5 @@ /* run.config COMMENT: assert \false - EXECNOW: LOG gen_false.c BIN gen_false.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/false.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_false.c > /dev/null && ./gcc_runtime.sh false - EXECNOW: LOG gen_false2.c BIN gen_false2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/false.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_false2.c > /dev/null && ./gcc_runtime.sh false2 */ int main(void) { int x = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/freeable.c b/src/plugins/e-acsl/tests/e-acsl-runtime/freeable.c index c5b020ec82962791d740c0e7d57134f1209c63ca..e4d9ad5a610240c9847a396520430409cbbdc4f1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/freeable.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/freeable.c @@ -1,8 +1,6 @@ /* run.config COMMENT: \freeable STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_freeable.c BIN gen_freeable.out @frama-c@ -machdep gcc_x86_64 -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/freeable.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_freeable.c > /dev/null && ./gcc_runtime.sh freeable - EXECNOW: LOG gen_freeable2.c BIN gen_freeable2.out @frama-c@ -machdep gcc_x86_64 -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/freeable.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_freeable2.c > /dev/null && ./gcc_runtime.sh freeable2 */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/function_contract.i b/src/plugins/e-acsl/tests/e-acsl-runtime/function_contract.i index c8e5ee4ee2441b609ffd34fb659312dff5c5e939..90eca5e7829d3e1e7911aca5d02d25ff4b61a872 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/function_contract.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/function_contract.i @@ -1,7 +1,5 @@ /* run.config COMMENT: function contract - EXECNOW: LOG gen_function_contract.c BIN gen_function_contract.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/function_contract.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_function_contract.c > /dev/null && ./gcc_runtime.sh function_contract - EXECNOW: LOG gen_function_contract2.c BIN gen_function_contract2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/function_contract.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_function_contract2.c > /dev/null && ./gcc_runtime.sh function_contract2 */ int X = 0, Y = 2; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/ghost.i b/src/plugins/e-acsl/tests/e-acsl-runtime/ghost.i index 85357b70a200dd68580b6a199d4e098dc46b1681..5eeadfd89eb866168e82b7d170cb14ce7961cf5d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/ghost.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/ghost.i @@ -1,8 +1,6 @@ /* run.config COMMENT: ghost code - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_ghost.c BIN gen_ghost.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ghost.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ghost.c > /dev/null && ./gcc_runtime.sh ghost - EXECNOW: LOG gen_ghost2.c BIN gen_ghost2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ghost.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ghost2.c > /dev/null && ./gcc_runtime.sh ghost2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ /*@ ghost int G = 0; */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/init.c index 2a6e3753ef9cc436126342a0ba874b558759cb1a..8f2372a2f2eccb17a2f4b3ac03b570e0093cb60f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/init.c @@ -1,7 +1,5 @@ /* run.config COMMENT: initialization of globals (bts #1818) - EXECNOW: LOG gen_init.c BIN gen_init.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/init.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_init.c > /dev/null && ./gcc_runtime.sh init - EXECNOW: LOG gen_init2.c BIN gen_init2.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/init.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_init2.c > /dev/null && ./gcc_runtime.sh init2 */ int a = 0, b; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/integer_constant.i b/src/plugins/e-acsl/tests/e-acsl-runtime/integer_constant.i deleted file mode 100644 index 41a8312b6aadf3a13ac0285109cae2d67366c642..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/integer_constant.i +++ /dev/null @@ -1,16 +0,0 @@ -/* run.config - COMMENT: integer constant + a stmt after the assertion - EXECNOW: LOG gen_integer_constant.c BIN gen_integer_constant.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/integer_constant.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_integer_constant.c > /dev/null && ./gcc_runtime.sh integer_constant - EXECNOW: LOG gen_integer_constant2.c BIN gen_integer_constant2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/integer_constant.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_integer_constant2.c > /dev/null && ./gcc_runtime.sh integer_constant2 -*/ -int main(void) { - int x; - /*@ assert 0 == 0; */ x = 0; - x++; /* prevent GCC's warning */ - /*@ assert 0 != 1; */ - /*@ assert 1152921504606846975 == 0xfffffffffffffff; */ - - /*@ assert 0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff; */ - - return 0; -} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i b/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i index 46b75dad8a9a74291bf97b8d28a94ecc8bfc0da4..5cf1d2275293ee8c1a3736460c00f1499e261b53 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/invariant.i @@ -1,8 +1,8 @@ /* run.config COMMENT: invariant - EXECNOW: LOG gen_invariant.c BIN gen_invariant.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/invariant.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_invariant.c > /dev/null && ./gcc_runtime.sh invariant - EXECNOW: LOG gen_invariant2.c BIN gen_invariant2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/invariant.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_invariant2.c > /dev/null && ./gcc_runtime.sh invariant2 + STDOPT: +"-slevel 11" */ + int main(void) { int x = 0; for(int i = 0; i < 10; i++) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/labeled_stmt.i b/src/plugins/e-acsl/tests/e-acsl-runtime/labeled_stmt.i index f5db6c5fe9db8e2be714fa96409a167bf4623c3c..1c4be5a49017c78ada50299b0efa4ccd603a8084 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/labeled_stmt.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/labeled_stmt.i @@ -1,7 +1,5 @@ /* run.config COMMENT: labeled stmt and gotos - EXECNOW: LOG gen_labeled_stmt.c BIN gen_labeled_stmt.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/labeled_stmt.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_labeled_stmt.c > /dev/null && ./gcc_runtime.sh labeled_stmt - EXECNOW: LOG gen_labeled_stmt2.c BIN gen_labeled_stmt2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/labeled_stmt.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_labeled_stmt2.c > /dev/null && ./gcc_runtime.sh labeled_stmt2 */ int X = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/lazy.i b/src/plugins/e-acsl/tests/e-acsl-runtime/lazy.i index 2f93252af577a73247496eda732fea632737a2e3..c63e2764e36df8481c526a948655c46d7fcc35a1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/lazy.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/lazy.i @@ -1,7 +1,5 @@ /* run.config COMMENT: terms and predicates using lazy operators - EXECNOW: LOG gen_lazy.c BIN gen_lazy.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/lazy.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_lazy.c > /dev/null && ./gcc_runtime.sh lazy -Wno-div-by-zero - EXECNOW: LOG gen_lazy2.c BIN gen_lazy2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/lazy.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_lazy2.c > /dev/null && ./gcc_runtime.sh lazy2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/linear_search.i b/src/plugins/e-acsl/tests/e-acsl-runtime/linear_search.i index f0324f6405dc1d5800fb571a2439291f4085ee97..deaecad449293967d541cf34c15763192f8397e7 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/linear_search.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/linear_search.i @@ -1,7 +1,5 @@ /* run.config COMMENT: linear search (example from the SAC'13 article) - EXECNOW: LOG gen_linear_search.c BIN gen_linear_search.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/linear_search.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_linear_search.c > /dev/null && ./gcc_runtime.sh linear_search - EXECNOW: LOG gen_linear_search2.c BIN gen_linear_search2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/linear_search.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_linear_search2.c > /dev/null && ./gcc_runtime.sh linear_search2 */ int A[10]; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/literal_string.i b/src/plugins/e-acsl/tests/e-acsl-runtime/literal_string.i index a089360b58b03e52eda81887cd11a2efbc572ec5..311aa4afae01b36ff1f05d534cef4e70567b101a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/literal_string.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/literal_string.i @@ -1,7 +1,5 @@ /* run.config COMMENT: literal string - EXECNOW: LOG gen_literal_string.c BIN gen_literal_string.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/literal_string.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_literal_string.c > /dev/null && ./gcc_runtime.sh literal_string - EXECNOW: LOG gen_literal_string2.c BIN gen_literal_string2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/literal_string.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_literal_string2.c > /dev/null && ./gcc_runtime.sh literal_string2 */ int main(void); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/localvar.c b/src/plugins/e-acsl/tests/e-acsl-runtime/localvar.c index 24d11e3ff91525c99c955a5d8bc7b39a7fa5ec0f..b5a3aae483b25df30e1815b3880da5915968174e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/localvar.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/localvar.c @@ -1,8 +1,6 @@ /* run.config COMMENT: allocation and de-allocation of local variables - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_localvar.c BIN gen_localvar.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/localvar.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_localvar.c > /dev/null && ./gcc_runtime.sh localvar - EXECNOW: LOG gen_localvar2.c BIN gen_localvar2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/localvar.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_localvar2.c > /dev/null && ./gcc_runtime.sh localvar2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include <stdlib.h> diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/longlong.i b/src/plugins/e-acsl/tests/e-acsl-runtime/longlong.i deleted file mode 100644 index 061276f4f38897578768573330ae281e37daa4ab..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/longlong.i +++ /dev/null @@ -1,21 +0,0 @@ -/* run.config - COMMENT: upgrading longlong to GMP - STDOPT: +"-no-eva -val-ignore-recursive-calls" - EXECNOW: LOG gen_longlong.c BIN gen_longlong.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/longlong.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_longlong.c > /dev/null && ./gcc_runtime.sh longlong - EXECNOW: LOG gen_longlong2.c BIN gen_longlong2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/longlong.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_longlong2.c > /dev/null && ./gcc_runtime.sh longlong2 -*/ - -unsigned long long my_pow(unsigned int x, unsigned int n) { - int tmp; - if (n <= 1) return 1; - tmp = my_pow(x, n / 2); - tmp *= tmp; - if (n % 2 == 0) return tmp; - return x * tmp; -} - -int main(void) { - unsigned long long x = my_pow(2, 63); - /*@ assert (2 * x + 1) % 2 == 1; */ - return 0; -} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/loop.i b/src/plugins/e-acsl/tests/e-acsl-runtime/loop.i index 85ed22b976cf08caf129b09bc4cd15fc1d5bed72..329c01164f94caa6e98649ac0e2e313922fd48ed 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/loop.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/loop.i @@ -1,8 +1,6 @@ /* run.config COMMENT: loop invariants STDOPT: +"-slevel 160" - EXECNOW: LOG gen_loop.c BIN gen_loop.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/loop.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_loop.c > /dev/null && ./gcc_runtime.sh loop - EXECNOW: LOG gen_loop2.c BIN gen_loop2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/loop.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_loop2.c > /dev/null && ./gcc_runtime.sh loop2 */ void simple_loop() { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/mainargs.c b/src/plugins/e-acsl/tests/e-acsl-runtime/mainargs.c index ea74ed80131302ec454c10cbe897db32239bf897..df475a66627b274afc57e9d7aab44d9af3172654 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/mainargs.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/mainargs.c @@ -1,7 +1,5 @@ /* run.config COMMENT: the contents of argv should be valid - EXECNOW: LOG gen_mainargs.c BIN gen_mainargs.out @frama-c@ -machdep x86_64 -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/mainargs.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_mainargs.c > /dev/null && ./gcc_test.sh e-acsl-runtime mainargs "" bar baz - EXECNOW: LOG gen_mainargs2.c BIN gen_mainargs2.out @frama-c@ -machdep x86_64 -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/mainargs.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_mainargs2.c > /dev/null && ./gcc_test.sh e-acsl-runtime mainargs2 "" bar baz */ #include <string.h> diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/memsize.c b/src/plugins/e-acsl/tests/e-acsl-runtime/memsize.c index 1d630e2aaaf89d6702f8fddc863e07b13eb16385..f4e3c0b89d77ae7180f9d6c2a60c00878e807ffd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/memsize.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/memsize.c @@ -1,7 +1,5 @@ /* run.config COMMENT: Checking heap memory size - EXECNOW: LOG gen_memsize.c BIN gen_memsize.out @frama-c@ -machdep=gcc_x86_$(getconf LONG_BIT) -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/memsize.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_memsize.c > /dev/null && ./gcc_runtime.sh memsize - EXECNOW: LOG gen_memsize2.c BIN gen_memsize2.out @frama-c@ -machdep=gcc_x86_$(getconf LONG_BIT) -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/memsize.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_memsize2.c > /dev/null && ./gcc_runtime.sh memsize2 */ #include <stdlib.h> diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/nested_code_annot.i b/src/plugins/e-acsl/tests/e-acsl-runtime/nested_code_annot.i index ccb46a1f663f3d5b941f94e5c01467ba9e9a8fcf..9e5f6cd72b5c6aeab1c25ab66040afdfbe450f76 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/nested_code_annot.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/nested_code_annot.i @@ -1,7 +1,5 @@ /* run.config COMMENT: structured stmt with several code annotations inside - EXECNOW: LOG gen_nested_code_annot.c BIN gen_nested_code_annot.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/nested_code_annot.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_nested_code_annot.c > /dev/null && ./gcc_runtime.sh nested_code_annot - EXECNOW: LOG gen_nested_code_annot2.c BIN gen_nested_code_annot2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/nested_code_annot.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_nested_code_annot2.c > /dev/null && ./gcc_runtime.sh nested_code_annot2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/not.i b/src/plugins/e-acsl/tests/e-acsl-runtime/not.i deleted file mode 100644 index 96476d72b09808d0793c56fde0a03f4c5f78a9e0..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/not.i +++ /dev/null @@ -1,11 +0,0 @@ -/* run.config - COMMENT: predicate [!p] - EXECNOW: LOG gen_not.c BIN gen_not.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/not.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_not.c > /dev/null && ./gcc_runtime.sh not - EXECNOW: LOG gen_not2.c BIN gen_not2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/not.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_not2.c > /dev/null && ./gcc_runtime.sh not2 -*/ -int main(void) { - int x = 0; - /*@ assert ! x; */ - if (x) /*@ assert x; */ ; - return 0; -} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/null.i b/src/plugins/e-acsl/tests/e-acsl-runtime/null.i index ff0a29e637cfecf3f31e05bd39f0353a5ec5fd2f..ac480613edf6b36516834eeb96a04de4f4ba6741 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/null.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/null.i @@ -1,7 +1,5 @@ /* run.config COMMENT: assert \null == 0 - EXECNOW: LOG gen_null.c BIN gen_null.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/null.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_null.c > /dev/null && ./gcc_runtime.sh null - EXECNOW: LOG gen_null2.c BIN gen_null2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/null.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_null2.c > /dev/null && ./gcc_runtime.sh null2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.0.res.oracle deleted file mode 100644 index 49684ab11266e7ec9733e2a32224b9e87322254a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.0.res.oracle +++ /dev/null @@ -1,20 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.1.res.oracle deleted file mode 100644 index 49684ab11266e7ec9733e2a32224b9e87322254a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.1.res.oracle +++ /dev/null @@ -1,20 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1326.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.0.res.oracle deleted file mode 100644 index 0c77241ff78f009ed001537fff98034ca770b4ce..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.0.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.1.res.oracle deleted file mode 100644 index 0c77241ff78f009ed001537fff98034ca770b4ce..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.1.res.oracle +++ /dev/null @@ -1,21 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialize -[value] using specification for function __delete_block -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1390.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1390.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.0.res.oracle deleted file mode 100644 index 2f339588463bc8f05aa1bf2ebac8874f03c071ed..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.0.res.oracle +++ /dev/null @@ -1,34 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - A ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __delete_block -[value] using specification for function e_acsl_assert -tests/e-acsl-runtime/at.i:14:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:14:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:53:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:53:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:54:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:54:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:55:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:55:[value] warning: assertion got status unknown. -[value] using specification for function __initialize -[value] using specification for function __valid_read -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/at.i:32:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:32:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:34:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:34:[value] warning: assertion got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.1.res.oracle deleted file mode 100644 index 67d328ebf2ebf9badfbda61edc5ba8c7ded90b39..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.1.res.oracle +++ /dev/null @@ -1,34 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156_0 -[value] using specification for function __initialize -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1390.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1390.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.res.oracle similarity index 55% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.res.oracle index faed34d88a8025557e34b38394dfc056d5839c3f..6c1a2b8cdcb152a308b37236f8449ce089685793 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.res.oracle @@ -1,10 +1,10 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/call.c:16:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/call.c:16:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/call.c:18:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/call.c:16:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -13,26 +13,6 @@ FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `assigns claus FRAMAC_SHARE/libc/stdlib.h:165:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156_0 -[value] using specification for function __initialize -[value] using specification for function __valid -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.0.res.oracle deleted file mode 100644 index 22916af593bc51d099f1c9fbd3f61d3bc28369bf..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.0.res.oracle +++ /dev/null @@ -1,40 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - _F ∈ {9} - _A[0] ∈ {{ "XX" }} - [1] ∈ {{ "YY" }} - _B ∈ {{ "ZZ" }} - _C ∈ {0} - _D[0] ∈ {44} - [1] ∈ {88} - _E ∈ {44} - _G[0].str ∈ {{ "First" }} - [0].num ∈ {99} - [1].str ∈ {{ "Second" }} - [1].num ∈ {147} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} - __e_acsl_literal_string_4 ∈ {0} - __e_acsl_literal_string_5 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.1.res.oracle deleted file mode 100644 index 033d0a1dab083b7871c7c9c419b1e24d76c8ed3a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.1.res.oracle +++ /dev/null @@ -1,43 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - _F ∈ {9} - _A[0] ∈ {{ "XX" }} - [1] ∈ {{ "YY" }} - _B ∈ {{ "ZZ" }} - _C ∈ {0} - _D[0] ∈ {44} - [1] ∈ {88} - _E ∈ {44} - _G[0].str ∈ {{ "First" }} - [0].num ∈ {99} - [1].str ∈ {{ "Second" }} - [1].num ∈ {147} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} - __e_acsl_literal_string_4 ∈ {0} - __e_acsl_literal_string_5 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1398.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1398.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.0.res.oracle deleted file mode 100644 index c96be87ab712aed7a4c980d6ac2e95c6d4b19287..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.0.res.oracle +++ /dev/null @@ -1,48 +0,0 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/empty.i (no preprocessing) -[e-acsl] beginning translation. -[e-acsl] warning: cannot find entry point `main'. - Please use option `-main' for specifying a valid entry point. - The generated program may miss memory instrumentation - if there are memory-related annotations. -[e-acsl] translation done in project "e-acsl". -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.1.res.oracle deleted file mode 100644 index c96be87ab712aed7a4c980d6ac2e95c6d4b19287..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.1.res.oracle +++ /dev/null @@ -1,48 +0,0 @@ -[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) -[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) -[kernel] Parsing tests/e-acsl-runtime/empty.i (no preprocessing) -[e-acsl] beginning translation. -[e-acsl] warning: cannot find entry point `main'. - Please use option `-main' for specifying a valid entry point. - The generated program may miss memory instrumentation - if there are memory-related annotations. -[e-acsl] translation done in project "e-acsl". -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.0.res.oracle deleted file mode 100644 index 6d6583f6638659ea52612540c3655184360bf209..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.0.res.oracle +++ /dev/null @@ -1,13 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle deleted file mode 100644 index 6d6583f6638659ea52612540c3655184360bf209..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.res.oracle +++ /dev/null @@ -1,13 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1398.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1398.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.1.res.oracle deleted file mode 100644 index 48a19d4a6d12defc4ec3a28f2ddcf5e33f07e8c1..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.1.res.oracle +++ /dev/null @@ -1,31 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/e-acsl-runtime/freeable.c:15:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/freeable.c:15:[value] completely invalid value in evaluation of - argument (void *)p -tests/e-acsl-runtime/freeable.c:15:[kernel] warning: accessing uninitialized left-value. assert \initialized(&p); -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1399.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.res.oracle similarity index 66% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.res.oracle index dfd6c7dcbab95dc74e4309982d4234ee5a5d2772..abe9c3312b1e7e0ddcf423b9bc5fcdf52edcd843 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.res.oracle @@ -1,11 +1,11 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/freeable.c:11:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/freeable.c:11:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/freeable.c:13:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/freeable.c:11:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -21,19 +21,5 @@ FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns claus Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -tests/e-acsl-runtime/freeable.c:15:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/freeable.c:15:[value] completely invalid value in evaluation of - argument (void *)p -tests/e-acsl-runtime/freeable.c:15:[kernel] warning: accessing uninitialized left-value. assert \initialized(&p); -[value] done for function main +tests/e-acsl-runtime/freeable.c:13:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/freeable.c:13:[kernel] warning: accessing uninitialized left-value. assert \initialized(&p); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.0.res.oracle deleted file mode 100644 index 1e2b88ff34e699465b85de3400d61a0e30a1420f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.0.res.oracle +++ /dev/null @@ -1,16 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} - Y ∈ {2} -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle deleted file mode 100644 index a5904b43663292ab0de1360a9433bd24c9feaecf..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} - Y ∈ {2} -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_add -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1399.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf.c index af4f3a3fd81e6a12e44cc40821871b136e2071d0..ee8d12e4a15ade44af12785feb26a5f0c52da7fd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf.c @@ -1,77 +1,12 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ void f(void) { int m; int *u; int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& u),4U); - __store_block((void *)(& m),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& u),8UL); + __store_block((void *)(& m),4UL); __full_init((void *)(& u)); u = & m; __full_init((void *)(& p)); @@ -83,7 +18,7 @@ void f(void) int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)p,sizeof(int)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"f", - (char *)"\\initialized(p)",12); + (char *)"\\initialized(p)",10); } __delete_block((void *)(& p)); __delete_block((void *)(& u)); @@ -99,7 +34,7 @@ int main(void) f(); /*@ assert &x ≡ &x; */ e_acsl_assert(& x == & x,(char *)"Assertion",(char *)"main", - (char *)"&x == &x",18); + (char *)"&x == &x",16); __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf2.c deleted file mode 100644 index af4f3a3fd81e6a12e44cc40821871b136e2071d0..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_addrOf2.c +++ /dev/null @@ -1,108 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -void f(void) -{ - int m; - int *u; - int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(& u),4U); - __store_block((void *)(& m),4U); - __full_init((void *)(& u)); - u = & m; - __full_init((void *)(& p)); - p = u; - __full_init((void *)(& m)); - m = 123; - /*@ assert \initialized(p); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)p,sizeof(int)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"f", - (char *)"\\initialized(p)",12); - } - __delete_block((void *)(& p)); - __delete_block((void *)(& u)); - __delete_block((void *)(& m)); - return; -} - -int main(void) -{ - int __retres; - int x; - x = 0; - f(); - /*@ assert &x ≡ &x; */ - e_acsl_assert(& x == & x,(char *)"Assertion",(char *)"main", - (char *)"&x == &x",18); - __retres = 0; - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias.c index 2fde55817581fc8c604cb479e9dd71e9ee66fcb7..b7f5e92bcd28570befb55fc6c4305faadadf5b68 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias.c @@ -1,78 +1,9 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ void f(int *dest, int val) { int *ptr; - __store_block((void *)(& ptr),4U); - __store_block((void *)(& dest),4U); + __store_block((void *)(& ptr),8UL); + __store_block((void *)(& dest),8UL); __full_init((void *)(& ptr)); ptr = dest; __initialize((void *)ptr,sizeof(int)); @@ -86,14 +17,14 @@ int main(void) { int __retres; int i; - __store_block((void *)(& i),4U); + __store_block((void *)(& i),4UL); f(& i,255); /*@ assert \initialized(&i); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)(& i),sizeof(int)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&i)",16); + (char *)"\\initialized(&i)",14); } __retres = 0; __delete_block((void *)(& i)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias2.c deleted file mode 100644 index 2fde55817581fc8c604cb479e9dd71e9ee66fcb7..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_alias2.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -void f(int *dest, int val) -{ - int *ptr; - __store_block((void *)(& ptr),4U); - __store_block((void *)(& dest),4U); - __full_init((void *)(& ptr)); - ptr = dest; - __initialize((void *)ptr,sizeof(int)); - *ptr = val; - __delete_block((void *)(& dest)); - __delete_block((void *)(& ptr)); - return; -} - -int main(void) -{ - int __retres; - int i; - __store_block((void *)(& i),4U); - f(& i,255); - /*@ assert \initialized(&i); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)(& i),sizeof(int)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&i)",16); - } - __retres = 0; - __delete_block((void *)(& i)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c deleted file mode 100644 index 5514e19c20ca70b21b61efa166a1da16452842e4..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - int y; - x = -3; - y = 2; - /*@ assert -3 ≡ x; */ - e_acsl_assert(-3 == x,(char *)"Assertion",(char *)"main",(char *)"-3 == x", - 12); - /*@ assert x ≡ -3; */ - e_acsl_assert(x == -3,(char *)"Assertion",(char *)"main",(char *)"x == -3", - 13); - /*@ assert 0 ≢ ~0; */ - e_acsl_assert(0 != ~ 0,(char *)"Assertion",(char *)"main", - (char *)"0 != ~0",14); - /*@ assert x+1 ≡ -2; */ - e_acsl_assert((long long)x + (long long)1 == (long long)(-2), - (char *)"Assertion",(char *)"main",(char *)"x+1 == -2",16); - /*@ assert x-1 ≡ -4; */ - e_acsl_assert((long long)x - (long long)1 == (long long)(-4), - (char *)"Assertion",(char *)"main",(char *)"x-1 == -4",17); - /*@ assert x*3 ≡ -9; */ - e_acsl_assert((long long)x * (long long)3 == (long long)(-9), - (char *)"Assertion",(char *)"main",(char *)"x*3 == -9",18); - /*@ assert x/3 ≡ -1; */ - e_acsl_assert(x / 3 == -1,(char *)"Assertion",(char *)"main", - (char *)"x/3 == -1",19); - /*@ assert 0xfffffffffff/0xfffffffffff ≡ 1; */ - e_acsl_assert(0xfffffffffff / 0xfffffffffff == 1,(char *)"Assertion", - (char *)"main",(char *)"0xfffffffffff/0xfffffffffff == 1",20); - /*@ assert x%2 ≡ -1; */ - e_acsl_assert(x % 2 == -1,(char *)"Assertion",(char *)"main", - (char *)"x%2 == -1",21); - /*@ assert -3%-2 ≡ -1; */ - e_acsl_assert(-3 % -2 == -1,(char *)"Assertion",(char *)"main", - (char *)"-3%-2 == -1",22); - /*@ assert 3%-2 ≡ 1; */ - e_acsl_assert(3 % -2 == 1,(char *)"Assertion",(char *)"main", - (char *)"3%-2 == 1",23); - /*@ assert ((x*2+(3+y))-4)+(x-y) ≡ -10; */ - e_acsl_assert((((long long)x * (long long)2 + ((long long)3 + (long long)y)) - (long long)4) + ( - (long long)x - (long long)y) == (long long)(-10), - (char *)"Assertion",(char *)"main", - (char *)"((x*2+(3+y))-4)+(x-y) == -10",25); - /*@ assert (0≡1) ≡ !(0≡0); */ - e_acsl_assert((0 == 1) == ! (0 == 0),(char *)"Assertion",(char *)"main", - (char *)"(0==1) == !(0==0)",27); - /*@ assert (0≤-1) ≡ (0>0); */ - e_acsl_assert((0 <= -1) == (0 > 0),(char *)"Assertion",(char *)"main", - (char *)"(0<=-1) == (0>0)",28); - /*@ assert (0≥-1) ≡ (0≤0); */ - e_acsl_assert((0 >= -1) == (0 <= 0),(char *)"Assertion",(char *)"main", - (char *)"(0>=-1) == (0<=0)",29); - /*@ assert (0≢1) ≡ !(0≢0); */ - e_acsl_assert((0 != 1) == ! (0 != 0),(char *)"Assertion",(char *)"main", - (char *)"(0!=1) == !(0!=0)",30); - /*@ assert (0≢0) ≡ !(1≢0); */ - e_acsl_assert((0 != 0) == ! (1 != 0),(char *)"Assertion",(char *)"main", - (char *)"(0!=0) == !(1!=0)",32); - /*@ assert 4/y ≡ 2; */ - e_acsl_assert(y != 0,(char *)"RTE",(char *)"main", - (char *)"division_by_zero: y != 0",33); - e_acsl_assert(4 / y == 2,(char *)"Assertion",(char *)"main", - (char *)"4/y == 2",33); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c deleted file mode 100644 index 35a2e76b508a8b21d03bd4bea1672e66d7dbb609..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int T1[3]; -int T2[4]; -int main(void) -{ - int __retres; - { - int i; - i = 0; - while (i < 3) { - T1[i] = i; - i ++; - } - } - { - int i_0; - i_0 = 0; - while (i_0 < 4) { - T2[i_0] = 2 * i_0; - i_0 ++; - } - } - /*@ assert T1[0] ≡ T2[0]; */ - e_acsl_assert(T1[0] == T2[0],(char *)"Assertion",(char *)"main", - (char *)"T1[0] == T2[0]",15); - /*@ assert T1[1] ≢ T2[1]; */ - e_acsl_assert(T1[1] != T2[1],(char *)"Assertion",(char *)"main", - (char *)"T1[1] != T2[1]",16); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c deleted file mode 100644 index 37e6324859786f9fade1c3805d4ce9655391d462..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_array2.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int T1[3]; -int T2[4]; -int main(void) -{ - int __retres; - { - int i; - i = 0; - while (i < 3) { - T1[i] = i; - i ++; - } - } - { - int i_0; - i_0 = 0; - while (i_0 < 4) { - T2[i_0] = 2 * i_0; - i_0 ++; - } - } - /*@ assert T1[0] ≡ T2[0]; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)T1[0]); - __gmpz_init_set_si(__e_acsl_2,(long)T2[0]); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"T1[0] == T2[0]",15); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - } - /*@ assert T1[1] ≢ T2[1]; */ - { - mpz_t __e_acsl_3; - mpz_t __e_acsl_4; - int __e_acsl_ne; - __gmpz_init_set_si(__e_acsl_3,(long)T1[1]); - __gmpz_init_set_si(__e_acsl_4,(long)T2[1]); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"T1[1] != T2[1]",16); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_4); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call.c index d8e01ffbb5d49b1671cfb6ccb5b22e510d764449..efb8e3d3aefd15d0da70e5d7973f5ed35884c4ae 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call.c @@ -1,110 +1,9 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ /*@ ensures \valid(\result); */ int *f(int *x, int *y) { - __store_block((void *)(& x),4U); - __store_block((void *)(& y),4U); + __store_block((void *)(& x),8UL); + __store_block((void *)(& y),8UL); __initialize((void *)y,sizeof(int)); *y = 1; __delete_block((void *)(& x)); @@ -116,15 +15,15 @@ int *f(int *x, int *y) int *__e_acsl_f(int *x, int *y) { int *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& x),4U); - __store_block((void *)(& y),4U); + __store_block((void *)(& __retres),8UL); + __store_block((void *)(& x),8UL); + __store_block((void *)(& y),8UL); __retres = f(x,y); { int __e_acsl_valid; __e_acsl_valid = __valid((void *)__retres,sizeof(int)); e_acsl_assert(__e_acsl_valid,(char *)"Postcondition",(char *)"f", - (char *)"\\valid(\\result)",12); + (char *)"\\valid(\\result)",10); __delete_block((void *)(& x)); __delete_block((void *)(& y)); __delete_block((void *)(& __retres)); @@ -139,9 +38,9 @@ int main(void) int *p; int *q; int *r; - __store_block((void *)(& q),4U); - __store_block((void *)(& p),4U); - __store_block((void *)(& x),4U); + __store_block((void *)(& q),8UL); + __store_block((void *)(& p),8UL); + __store_block((void *)(& x),4UL); __full_init((void *)(& x)); x = 0; __full_init((void *)(& q)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call2.c deleted file mode 100644 index d8e01ffbb5d49b1671cfb6ccb5b22e510d764449..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_call2.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -/*@ ensures \valid(\result); */ -int *f(int *x, int *y) -{ - __store_block((void *)(& x),4U); - __store_block((void *)(& y),4U); - __initialize((void *)y,sizeof(int)); - *y = 1; - __delete_block((void *)(& x)); - __delete_block((void *)(& y)); - return x; -} - -/*@ ensures \valid(\result); */ -int *__e_acsl_f(int *x, int *y) -{ - int *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& x),4U); - __store_block((void *)(& y),4U); - __retres = f(x,y); - { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)__retres,sizeof(int)); - e_acsl_assert(__e_acsl_valid,(char *)"Postcondition",(char *)"f", - (char *)"\\valid(\\result)",12); - __delete_block((void *)(& x)); - __delete_block((void *)(& y)); - __delete_block((void *)(& __retres)); - return __retres; - } -} - -int main(void) -{ - int __retres; - int x; - int *p; - int *q; - int *r; - __store_block((void *)(& q),4U); - __store_block((void *)(& p),4U); - __store_block((void *)(& x),4U); - __full_init((void *)(& x)); - x = 0; - __full_init((void *)(& q)); - q = (int *)__e_acsl_malloc(sizeof(int)); - r = (int *)__e_acsl_malloc(sizeof(int)); - __full_init((void *)(& p)); - p = __e_acsl_f(& x,q); - __full_init((void *)(& q)); - q = __e_acsl_f(& x,r); - __retres = 0; - __delete_block((void *)(& q)); - __delete_block((void *)(& p)); - __delete_block((void *)(& x)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c deleted file mode 100644 index 7ec7966af9338cf83a608049790b593c869f8dc4..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - long x; - int y; - x = (long)0; - y = 0; - /*@ assert (int)x ≡ y; */ - e_acsl_assert((int)x == y,(char *)"Assertion",(char *)"main", - (char *)"(int)x == y",12); - /*@ assert x ≡ (long)y; */ - e_acsl_assert(x == (long)y,(char *)"Assertion",(char *)"main", - (char *)"x == (long)y",13); - /*@ assert y ≡ (int)0; */ - e_acsl_assert(y == 0,(char *)"Assertion",(char *)"main", - (char *)"y == (int)0",15); - /*@ assert (unsigned int)y ≡ (unsigned int)0; */ - e_acsl_assert((unsigned int)y == (unsigned int)0,(char *)"Assertion", - (char *)"main",(char *)"(unsigned int)y == (unsigned int)0", - 16); - /*@ assert y ≢ (int)0xfffffffffffffff; */ - e_acsl_assert(y != (int)0xfffffffffffffff,(char *)"Assertion", - (char *)"main",(char *)"y != (int)0xfffffffffffffff",19); - /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ - e_acsl_assert((unsigned int)y != (unsigned int)0xfffffffffffffff, - (char *)"Assertion",(char *)"main", - (char *)"(unsigned int)y != (unsigned int)0xfffffffffffffff", - 20); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c deleted file mode 100644 index c45b13af2193bc8b0176187aa3e20aa03d214bfa..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_cast2.c +++ /dev/null @@ -1,199 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z, \result; - assigns *z \from *(str+(0 ..)), base; - assigns \result \from *(str+(0 ..)), base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, - char const *str, - int base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - long x; - int y; - x = (long)0; - y = 0; - /*@ assert (int)x ≡ y; */ - { - mpz_t __e_acsl_cast; - mpz_t __e_acsl_y; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_cast,(long)((int)x)); - __gmpz_init_set_si(__e_acsl_y,(long)y); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast), - (__mpz_struct const *)(__e_acsl_y)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"(int)x == y",12); - __gmpz_clear(__e_acsl_cast); - __gmpz_clear(__e_acsl_y); - } - /*@ assert x ≡ (long)y; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl_cast_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_x,x); - __gmpz_init_set_si(__e_acsl_cast_2,(long)y); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl_cast_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"x == (long)y",13); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl_cast_2); - } - /*@ assert y ≡ (int)0; */ - { - mpz_t __e_acsl_y_2; - mpz_t __e_acsl_cast_3; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_y_2,(long)y); - __gmpz_init_set_si(__e_acsl_cast_3,(long)0); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_2), - (__mpz_struct const *)(__e_acsl_cast_3)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"y == (int)0",15); - __gmpz_clear(__e_acsl_y_2); - __gmpz_clear(__e_acsl_cast_3); - } - /*@ assert (unsigned int)y ≡ (unsigned int)0; */ - { - mpz_t __e_acsl_cast_4; - mpz_t __e_acsl_cast_5; - int __e_acsl_eq_4; - __gmpz_init_set_ui(__e_acsl_cast_4,(unsigned long)((unsigned int)y)); - __gmpz_init_set_ui(__e_acsl_cast_5,(unsigned long)((unsigned int)0)); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_4), - (__mpz_struct const *)(__e_acsl_cast_5)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", - (char *)"(unsigned int)y == (unsigned int)0",16); - __gmpz_clear(__e_acsl_cast_4); - __gmpz_clear(__e_acsl_cast_5); - } - /*@ assert y ≢ (int)0xfffffffffffffff; */ - { - mpz_t __e_acsl_y_3; - mpz_t __e_acsl; - unsigned long __e_acsl_2; - mpz_t __e_acsl_cast_6; - int __e_acsl_ne; - __gmpz_init_set_si(__e_acsl_y_3,(long)y); - __gmpz_init_set_str(__e_acsl,"1152921504606846975",10); - __e_acsl_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl)); - __gmpz_init_set_si(__e_acsl_cast_6,(long)((int)__e_acsl_2)); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_3), - (__mpz_struct const *)(__e_acsl_cast_6)); - e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"y != (int)0xfffffffffffffff",19); - __gmpz_clear(__e_acsl_y_3); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_cast_6); - } - /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ - { - mpz_t __e_acsl_cast_7; - mpz_t __e_acsl_3; - unsigned long __e_acsl_4; - mpz_t __e_acsl_cast_8; - int __e_acsl_ne_2; - __gmpz_init_set_ui(__e_acsl_cast_7,(unsigned long)((unsigned int)y)); - __gmpz_init_set_str(__e_acsl_3,"1152921504606846975",10); - __e_acsl_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_3)); - __gmpz_init_set_ui(__e_acsl_cast_8, - (unsigned long)((unsigned int)__e_acsl_4)); - __e_acsl_ne_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_7), - (__mpz_struct const *)(__e_acsl_cast_8)); - e_acsl_assert(__e_acsl_ne_2 != 0,(char *)"Assertion",(char *)"main", - (char *)"(unsigned int)y != (unsigned int)0xfffffffffffffff", - 20); - __gmpz_clear(__e_acsl_cast_7); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_cast_8); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers.c index 27996ac8709e0d0fd748d7e102da690d3722b5af..5821a3b4a08153587fbf611e705b2e6e2dd58116 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers.c @@ -4,94 +4,10 @@ char *__e_acsl_literal_string; char *__e_acsl_literal_string_2; char *__e_acsl_literal_string_4; char *__e_acsl_literal_string_5; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; struct ST { char *str ; int num ; }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int _F; char *_A[2] = {(char *)"XX", (char *)"YY"}; @@ -150,7 +66,7 @@ int main(int argc, char **argv) int __e_acsl_valid; __e_acsl_valid = __valid((void *)(_A),sizeof(char *)); e_acsl_assert(__e_acsl_valid,(char *)"Assertion",(char *)"main", - (char *)"\\valid((char **)_A)",35); + (char *)"\\valid((char **)_A)",33); } /*@ assert \valid_read(_A[0]); */ { @@ -164,7 +80,7 @@ int main(int argc, char **argv) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_A[0])",36); + (char *)"\\valid_read(_A[0])",34); } /*@ assert \valid_read(_A[1]); */ { @@ -178,56 +94,56 @@ int main(int argc, char **argv) } else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_A[1])",37); + (char *)"\\valid_read(_A[1])",35); } /*@ assert \valid_read(_B); */ { int __e_acsl_valid_read_3; __e_acsl_valid_read_3 = __valid_read((void *)_B,sizeof(char)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_B)",38); + (char *)"\\valid_read(_B)",36); } /*@ assert \valid(&_C); */ { int __e_acsl_valid_2; __e_acsl_valid_2 = __valid((void *)(& _C),sizeof(char *)); e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_C)",39); + (char *)"\\valid(&_C)",37); } /*@ assert \valid((int *)_D); */ { int __e_acsl_valid_3; __e_acsl_valid_3 = __valid((void *)(_D),sizeof(int)); e_acsl_assert(__e_acsl_valid_3,(char *)"Assertion",(char *)"main", - (char *)"\\valid((int *)_D)",40); + (char *)"\\valid((int *)_D)",38); } /*@ assert \valid(&_E); */ { int __e_acsl_valid_4; __e_acsl_valid_4 = __valid((void *)(& _E),sizeof(int)); e_acsl_assert(__e_acsl_valid_4,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_E)",41); + (char *)"\\valid(&_E)",39); } /*@ assert \valid(&_F); */ { int __e_acsl_valid_5; __e_acsl_valid_5 = __valid((void *)(& _F),sizeof(int)); e_acsl_assert(__e_acsl_valid_5,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_F)",42); + (char *)"\\valid(&_F)",40); } /*@ assert _E ≡ 44; */ e_acsl_assert(_E == 44,(char *)"Assertion",(char *)"main", - (char *)"_E == 44",43); + (char *)"_E == 44",41); /*@ assert \valid(&_G); */ { int __e_acsl_valid_6; __e_acsl_valid_6 = __valid((void *)(& _G),sizeof(struct ST [2])); e_acsl_assert(__e_acsl_valid_6,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_G)",44); + (char *)"\\valid(&_G)",42); } /*@ assert _G[0].num ≡ 99; */ e_acsl_assert(_G[0].num == 99,(char *)"Assertion",(char *)"main", - (char *)"_G[0].num == 99",45); + (char *)"_G[0].num == 99",43); __retres = 0; __delete_block((void *)(_G)); __delete_block((void *)(& _E)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers2.c deleted file mode 100644 index 006f7b2a248b4d8f1c819547710bd269f940c1d1..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_compound_initializers2.c +++ /dev/null @@ -1,288 +0,0 @@ -/* Generated by Frama-C */ -char *__e_acsl_literal_string_3; -char *__e_acsl_literal_string; -char *__e_acsl_literal_string_2; -char *__e_acsl_literal_string_4; -char *__e_acsl_literal_string_5; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -struct ST { - char *str ; - int num ; -}; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int _F; - -char *_A[2] = {(char *)"XX", (char *)"YY"}; -char *_B = (char *)"ZZ"; -char *_C; -int _D[2] = {44, 88}; -int _E = 44; -int _F = 9; -struct ST _G[2] = - {{.str = (char *)"First", .num = 99}, {.str = (char *)"Second", .num = 147}}; -void __e_acsl_memory_init(void) -{ - __e_acsl_literal_string_3 = "ZZ"; - __store_block((void *)__e_acsl_literal_string_3,sizeof("ZZ")); - __full_init((void *)__e_acsl_literal_string_3); - __literal_string((void *)__e_acsl_literal_string_3); - __e_acsl_literal_string = "YY"; - __store_block((void *)__e_acsl_literal_string,sizeof("YY")); - __full_init((void *)__e_acsl_literal_string); - __literal_string((void *)__e_acsl_literal_string); - __e_acsl_literal_string_2 = "XX"; - __store_block((void *)__e_acsl_literal_string_2,sizeof("XX")); - __full_init((void *)__e_acsl_literal_string_2); - __literal_string((void *)__e_acsl_literal_string_2); - __e_acsl_literal_string_4 = "Second"; - __store_block((void *)__e_acsl_literal_string_4,sizeof("Second")); - __full_init((void *)__e_acsl_literal_string_4); - __literal_string((void *)__e_acsl_literal_string_4); - __e_acsl_literal_string_5 = "First"; - __store_block((void *)__e_acsl_literal_string_5,sizeof("First")); - __full_init((void *)__e_acsl_literal_string_5); - __literal_string((void *)__e_acsl_literal_string_5); - __store_block((void *)(_G),32UL); - __full_init((void *)(& _G)); - __store_block((void *)(& _E),4UL); - __full_init((void *)(& _E)); - __store_block((void *)(_D),8UL); - __full_init((void *)(& _D)); - __store_block((void *)(& _C),8UL); - __full_init((void *)(& _C)); - __store_block((void *)(& _B),8UL); - __full_init((void *)(& _B)); - __store_block((void *)(_A),16UL); - __full_init((void *)(& _A)); - __store_block((void *)(& _F),4UL); - __full_init((void *)(& _F)); - return; -} - -int main(int argc, char **argv) -{ - int __retres; - __e_acsl_memory_init(); - /*@ assert \valid((char **)_A); */ - { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)(_A),sizeof(char *)); - e_acsl_assert(__e_acsl_valid,(char *)"Assertion",(char *)"main", - (char *)"\\valid((char **)_A)",35); - } - /*@ assert \valid_read(_A[0]); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(_A),sizeof(char *)); - if (__e_acsl_initialized) { - int __e_acsl_valid_read; - __e_acsl_valid_read = __valid_read((void *)_A[0],sizeof(char)); - __e_acsl_and = __e_acsl_valid_read; - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_A[0])",36); - } - /*@ assert \valid_read(_A[1]); */ - { - int __e_acsl_initialized_2; - int __e_acsl_and_2; - __e_acsl_initialized_2 = __initialized((void *)(& _A[1]),sizeof(char *)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid_read_2; - __e_acsl_valid_read_2 = __valid_read((void *)_A[1],sizeof(char)); - __e_acsl_and_2 = __e_acsl_valid_read_2; - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_A[1])",37); - } - /*@ assert \valid_read(_B); */ - { - int __e_acsl_valid_read_3; - __e_acsl_valid_read_3 = __valid_read((void *)_B,sizeof(char)); - e_acsl_assert(__e_acsl_valid_read_3,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(_B)",38); - } - /*@ assert \valid(&_C); */ - { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)(& _C),sizeof(char *)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_C)",39); - } - /*@ assert \valid((int *)_D); */ - { - int __e_acsl_valid_3; - __e_acsl_valid_3 = __valid((void *)(_D),sizeof(int)); - e_acsl_assert(__e_acsl_valid_3,(char *)"Assertion",(char *)"main", - (char *)"\\valid((int *)_D)",40); - } - /*@ assert \valid(&_E); */ - { - int __e_acsl_valid_4; - __e_acsl_valid_4 = __valid((void *)(& _E),sizeof(int)); - e_acsl_assert(__e_acsl_valid_4,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_E)",41); - } - /*@ assert \valid(&_F); */ - { - int __e_acsl_valid_5; - __e_acsl_valid_5 = __valid((void *)(& _F),sizeof(int)); - e_acsl_assert(__e_acsl_valid_5,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_F)",42); - } - /*@ assert _E ≡ 44; */ - { - mpz_t __e_acsl__E; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl__E,(long)_E); - __gmpz_init_set_si(__e_acsl,(long)44); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl__E), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"_E == 44",43); - __gmpz_clear(__e_acsl__E); - __gmpz_clear(__e_acsl); - } - /*@ assert \valid(&_G); */ - { - int __e_acsl_valid_6; - __e_acsl_valid_6 = __valid((void *)(& _G),sizeof(struct ST [2])); - e_acsl_assert(__e_acsl_valid_6,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&_G)",44); - } - /*@ assert _G[0].num ≡ 99; */ - { - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_2,(long)_G[0].num); - __gmpz_init_set_si(__e_acsl_3,(long)99); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"_G[0].num == 99",45); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - } - __retres = 0; - __delete_block((void *)(_G)); - __delete_block((void *)(& _E)); - __delete_block((void *)(_D)); - __delete_block((void *)(& _C)); - __delete_block((void *)(& _B)); - __delete_block((void *)(_A)); - __delete_block((void *)(& _F)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c index f5f1034d24985c3bc201e90dc70fce0b443b0396..63f0f0cd62edec69db2bfcd2d7027689be58a4ac 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -46,7 +6,7 @@ int main(void) x = 0; if (x) /*@ assert \false; */ - e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false",8); + e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false",6); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c deleted file mode 100644 index f5f1034d24985c3bc201e90dc70fce0b443b0396..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_false2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - if (x) - /*@ assert \false; */ - e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false",8); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable.c index a0f898886369d8a7f219edc1c72767a2d653b952..9d21ec0863e4d25cc776d05c9cec877825ba40a2 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable.c @@ -1,141 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int main(void) { int __retres; @@ -144,16 +7,17 @@ int main(void) /*@ assert ¬\freeable(p); */ { int __e_acsl_freeable; + /*@ assert Value: initialisation: \initialized(&p); */ __e_acsl_freeable = __freeable((void *)p); e_acsl_assert(! __e_acsl_freeable,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p)",15); + (char *)"!\\freeable(p)",13); } /*@ assert ¬\freeable((void *)0); */ { int __e_acsl_freeable_2; __e_acsl_freeable_2 = __freeable((void *)0); e_acsl_assert(! __e_acsl_freeable_2,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable((void *)0)",16); + (char *)"!\\freeable((void *)0)",14); } __full_init((void *)(& p)); p = (int *)__e_acsl_malloc((unsigned long)4 * sizeof(int)); @@ -162,14 +26,14 @@ int main(void) int __e_acsl_freeable_3; __e_acsl_freeable_3 = __freeable((void *)(p + 1)); e_acsl_assert(! __e_acsl_freeable_3,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p+1)",18); + (char *)"!\\freeable(p+1)",16); } /*@ assert \freeable(p); */ { int __e_acsl_freeable_4; __e_acsl_freeable_4 = __freeable((void *)p); e_acsl_assert(__e_acsl_freeable_4,(char *)"Assertion",(char *)"main", - (char *)"\\freeable(p)",19); + (char *)"\\freeable(p)",17); } __e_acsl_free((void *)p); /*@ assert ¬\freeable(p); */ @@ -177,7 +41,7 @@ int main(void) int __e_acsl_freeable_5; __e_acsl_freeable_5 = __freeable((void *)p); e_acsl_assert(! __e_acsl_freeable_5,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p)",21); + (char *)"!\\freeable(p)",19); } __retres = 0; __delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable2.c deleted file mode 100644 index a2f9948ec8b2b8d915f8cddab60a0e6038fcae2c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_freeable2.c +++ /dev/null @@ -1,188 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int main(void) -{ - int __retres; - int *p; - __store_block((void *)(& p),8UL); - /*@ assert ¬\freeable(p); */ - { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable((void *)p); - e_acsl_assert(! __e_acsl_freeable,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p)",15); - } - /*@ assert ¬\freeable((void *)0); */ - { - int __e_acsl_freeable_2; - __e_acsl_freeable_2 = __freeable((void *)0); - e_acsl_assert(! __e_acsl_freeable_2,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable((void *)0)",16); - } - __full_init((void *)(& p)); - p = (int *)__e_acsl_malloc((unsigned long)4 * sizeof(int)); - /*@ assert ¬\freeable(p+1); */ - { - int __e_acsl_freeable_3; - __e_acsl_freeable_3 = __freeable((void *)(p + (long)1)); - e_acsl_assert(! __e_acsl_freeable_3,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p+1)",18); - } - /*@ assert \freeable(p); */ - { - int __e_acsl_freeable_4; - __e_acsl_freeable_4 = __freeable((void *)p); - e_acsl_assert(__e_acsl_freeable_4,(char *)"Assertion",(char *)"main", - (char *)"\\freeable(p)",19); - } - __e_acsl_free((void *)p); - /*@ assert ¬\freeable(p); */ - { - int __e_acsl_freeable_5; - __e_acsl_freeable_5 = __freeable((void *)p); - e_acsl_assert(! __e_acsl_freeable_5,(char *)"Assertion",(char *)"main", - (char *)"!\\freeable(p)",21); - } - __retres = 0; - __delete_block((void *)(& p)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c index 02887746306ca35fc5d113bf4058dd65d33bcc52..88f02b5b1ad5b70d798124a35d8f0d3be8e8a7c7 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int X = 0; int Y = 2; /*@ ensures X ≡ 1; */ @@ -53,7 +13,7 @@ void __e_acsl_f(void) { f(); e_acsl_assert(X == 1,(char *)"Postcondition",(char *)"f",(char *)"X == 1", - 10); + 8); return; } @@ -71,9 +31,9 @@ void __e_acsl_g(void) { g(); e_acsl_assert(X == 2,(char *)"Postcondition",(char *)"g",(char *)"X == 2", - 14); + 12); e_acsl_assert(Y == 2,(char *)"Postcondition",(char *)"g",(char *)"Y == 2", - 15); + 13); return; } @@ -88,7 +48,7 @@ void h(void) void __e_acsl_h(void) { e_acsl_assert(X == 2,(char *)"Precondition",(char *)"h",(char *)"X == 2", - 19); + 17); h(); return; } @@ -106,9 +66,9 @@ void i(void) void __e_acsl_i(void) { e_acsl_assert(X == 3,(char *)"Precondition",(char *)"i",(char *)"X == 3", - 23); + 21); e_acsl_assert(Y == 2,(char *)"Precondition",(char *)"i",(char *)"Y == 2", - 24); + 22); i(); return; } @@ -140,16 +100,16 @@ void j(void) void __e_acsl_j(void) { e_acsl_assert(X == 5,(char *)"Precondition",(char *)"j",(char *)"X == 5", - 29); - e_acsl_assert((long long)X == (long long)3 + (long long)Y, - (char *)"Precondition",(char *)"j",(char *)"X == 3+Y",32); + 27); + e_acsl_assert((long)X == (long)3 + (long)Y,(char *)"Precondition", + (char *)"j",(char *)"X == 3+Y",30); e_acsl_assert(Y == 2,(char *)"Precondition",(char *)"j",(char *)"Y == 2", - 33); + 31); j(); e_acsl_assert(X == 3,(char *)"Postcondition",(char *)"j",(char *)"X == 3", - 30); - e_acsl_assert((long long)X == (long long)Y + (long long)1, - (char *)"Postcondition",(char *)"j",(char *)"X == Y+1",34); + 28); + e_acsl_assert((long)X == (long)Y + (long)1,(char *)"Postcondition", + (char *)"j",(char *)"X == Y+1",32); return; } @@ -189,17 +149,17 @@ void __e_acsl_k(void) int __e_acsl_implies_3; if (! (X == 1)) __e_acsl_implies = 1; else __e_acsl_implies = X == 0; e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"k", - (char *)"X == 1 ==> X == 0",40); + (char *)"X == 1 ==> X == 0",38); if (X == 3) __e_acsl_and = Y == 2; else __e_acsl_and = 0; if (! __e_acsl_and) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = X == 3; e_acsl_assert(__e_acsl_implies_2,(char *)"Precondition",(char *)"k", - (char *)"X == 3 && Y == 2 ==> X == 3",44); + (char *)"X == 3 && Y == 2 ==> X == 3",42); if (X == 3) __e_acsl_and_2 = Y == 2; else __e_acsl_and_2 = 0; if (! __e_acsl_and_2) __e_acsl_implies_3 = 1; - else __e_acsl_implies_3 = (long long)X + (long long)Y == (long long)5; + else __e_acsl_implies_3 = (long)X + (long)Y == (long)5; e_acsl_assert(__e_acsl_implies_3,(char *)"Precondition",(char *)"k", - (char *)"X == 3 && Y == 2 ==> X+Y == 5",45); + (char *)"X == 3 && Y == 2 ==> X+Y == 5",43); k(); } return; @@ -209,7 +169,7 @@ void __e_acsl_k(void) int l(void) { /*@ assert Y ≡ 2; */ - e_acsl_assert(Y == 2,(char *)"Assertion",(char *)"l",(char *)"Y == 2",51); + e_acsl_assert(Y == 2,(char *)"Assertion",(char *)"l",(char *)"Y == 2",49); return X; } @@ -219,7 +179,7 @@ int __e_acsl_l(void) int __retres; __retres = l(); e_acsl_assert(X == 5,(char *)"Postcondition",(char *)"l",(char *)"X == 5", - 49); + 47); return __retres; } @@ -274,15 +234,15 @@ void __e_acsl_m(void) int __e_acsl_implies_3; if (! __e_acsl_at) __e_acsl_implies = 1; else __e_acsl_implies = X == 95; e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 7) ==> X == 95",58); + (char *)"\\old(X == 7) ==> X == 95",56); if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = X == 7; e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 5 && Y == 2) ==> X == 7",62); + (char *)"\\old(X == 5 && Y == 2) ==> X == 7",60); if (! __e_acsl_at_3) __e_acsl_implies_3 = 1; - else __e_acsl_implies_3 = (long long)X == (long long)__e_acsl_at_4 + (long long)Y; + else __e_acsl_implies_3 = (long)X == (long)__e_acsl_at_4 + (long)Y; e_acsl_assert(__e_acsl_implies_3,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 5 && Y == 2) ==> X == \\old(X)+Y",63); + (char *)"\\old(X == 5 && Y == 2) ==> X == \\old(X)+Y",61); return; } } @@ -319,9 +279,9 @@ void __e_acsl_n(void) { int __e_acsl_at_2; int __e_acsl_at; - e_acsl_assert(X > 0,(char *)"Precondition",(char *)"n",(char *)"X > 0",67); + e_acsl_assert(X > 0,(char *)"Precondition",(char *)"n",(char *)"X > 0",65); e_acsl_assert(X < 10,(char *)"Precondition",(char *)"n",(char *)"X < 10", - 68); + 66); __e_acsl_at_2 = X == 5; __e_acsl_at = X == 7; n(); @@ -330,11 +290,11 @@ void __e_acsl_n(void) int __e_acsl_implies_2; if (! __e_acsl_at) __e_acsl_implies = 1; else __e_acsl_implies = X == 8; e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"n", - (char *)"\\old(X == 7) ==> X == 8",71); + (char *)"\\old(X == 7) ==> X == 8",69); if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = X == 98; e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"n", - (char *)"\\old(X == 5) ==> X == 98",74); + (char *)"\\old(X == 5) ==> X == 98",72); return; } } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c deleted file mode 100644 index 329843c1b49ed25ad473048f7581ca044351cf0b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_function_contract2.c +++ /dev/null @@ -1,779 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int X = 0; -int Y = 2; -/*@ ensures X ≡ 1; */ -void f(void) -{ - X = 1; - return; -} - -/*@ ensures X ≡ 1; */ -void __e_acsl_f(void) -{ - f(); - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"f", - (char *)"X == 1",10); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - return; - } -} - -/*@ ensures X ≡ 2; - ensures Y ≡ 2; */ -void g(void) -{ - X = 2; - return; -} - -/*@ ensures X ≡ 2; - ensures Y ≡ 2; */ -void __e_acsl_g(void) -{ - g(); - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - mpz_t __e_acsl_Y; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)2); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"g", - (char *)"X == 2",14); - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Postcondition",(char *)"g", - (char *)"Y == 2",15); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_Y); - return; - } -} - -/*@ requires X ≡ 2; */ -void h(void) -{ - X ++; - return; -} - -/*@ requires X ≡ 2; */ -void __e_acsl_h(void) -{ - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)2); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Precondition",(char *)"h", - (char *)"X == 2",19); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - h(); - } - return; -} - -/*@ requires X ≡ 3; - requires Y ≡ 2; */ -void i(void) -{ - X += Y; - return; -} - -/*@ requires X ≡ 3; - requires Y ≡ 2; */ -void __e_acsl_i(void) -{ - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - mpz_t __e_acsl_Y; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)3); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Precondition",(char *)"i", - (char *)"X == 3",23); - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __gmpz_init_set_si(__e_acsl_2,(long)2); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Precondition",(char *)"i", - (char *)"Y == 2",24); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_Y); - __gmpz_clear(__e_acsl_2); - i(); - } - return; -} - -/*@ behavior b1: - requires X ≡ 5; - ensures X ≡ 3; - - behavior b2: - requires X ≡ 3+Y; - requires Y ≡ 2; - ensures X ≡ Y+1; - */ -void j(void) -{ - X = 3; - return; -} - -/*@ behavior b1: - requires X ≡ 5; - ensures X ≡ 3; - - behavior b2: - requires X ≡ 3+Y; - requires Y ≡ 2; - ensures X ≡ Y+1; - */ -void __e_acsl_j(void) -{ - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - mpz_t __e_acsl_2; - mpz_t __e_acsl_Y; - mpz_t __e_acsl_add; - int __e_acsl_eq_2; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)5); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Precondition",(char *)"j", - (char *)"X == 5",29); - __gmpz_init_set_si(__e_acsl_2,(long)3); - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_Y)); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl_add)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Precondition",(char *)"j", - (char *)"X == 3+Y",32); - __gmpz_init_set_si(__e_acsl_3,(long)2); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Precondition",(char *)"j", - (char *)"Y == 2",33); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_Y); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_3); - j(); - } - { - mpz_t __e_acsl_X_2; - mpz_t __e_acsl_4; - int __e_acsl_eq_4; - mpz_t __e_acsl_Y_2; - mpz_t __e_acsl_5; - mpz_t __e_acsl_add_2; - int __e_acsl_eq_5; - __gmpz_init_set_si(__e_acsl_X_2,(long)X); - __gmpz_init_set_si(__e_acsl_4,(long)3); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Postcondition",(char *)"j", - (char *)"X == 3",30); - __gmpz_init_set_si(__e_acsl_Y_2,(long)Y); - __gmpz_init_set_si(__e_acsl_5,(long)1); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_Y_2), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_add_2)); - e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Postcondition",(char *)"j", - (char *)"X == Y+1",34); - __gmpz_clear(__e_acsl_X_2); - __gmpz_clear(__e_acsl_4); - __gmpz_clear(__e_acsl_Y_2); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_add_2); - return; - } -} - -/*@ behavior b1: - assumes X ≡ 1; - requires X ≡ 0; - - behavior b2: - assumes X ≡ 3; - assumes Y ≡ 2; - requires X ≡ 3; - requires X+Y ≡ 5; - */ -void k(void) -{ - X += Y; - return; -} - -/*@ behavior b1: - assumes X ≡ 1; - requires X ≡ 0; - - behavior b2: - assumes X ≡ 3; - assumes Y ≡ 2; - requires X ≡ 3; - requires X+Y ≡ 5; - */ -void __e_acsl_k(void) -{ - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - int __e_acsl_implies; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - int __e_acsl_and; - int __e_acsl_implies_2; - int __e_acsl_eq_6; - int __e_acsl_and_2; - int __e_acsl_implies_3; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - if (! (__e_acsl_eq == 0)) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_X_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X_2,(long)X); - __gmpz_init_set_si(__e_acsl_2,(long)0); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_implies = __e_acsl_eq_2 == 0; - __gmpz_clear(__e_acsl_X_2); - __gmpz_clear(__e_acsl_2); - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"k", - (char *)"X == 1 ==> X == 0",40); - __gmpz_init_set_si(__e_acsl_3,(long)3); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl_3)); - if (__e_acsl_eq_3 == 0) { - mpz_t __e_acsl_Y; - mpz_t __e_acsl_4; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __gmpz_init_set_si(__e_acsl_4,(long)2); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl_4)); - __e_acsl_and = __e_acsl_eq_4 == 0; - __gmpz_clear(__e_acsl_Y); - __gmpz_clear(__e_acsl_4); - } - else __e_acsl_and = 0; - if (! __e_acsl_and) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_X_3; - mpz_t __e_acsl_5; - int __e_acsl_eq_5; - __gmpz_init_set_si(__e_acsl_X_3,(long)X); - __gmpz_init_set_si(__e_acsl_5,(long)3); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_3), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_implies_2 = __e_acsl_eq_5 == 0; - __gmpz_clear(__e_acsl_X_3); - __gmpz_clear(__e_acsl_5); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Precondition",(char *)"k", - (char *)"X == 3 && Y == 2 ==> X == 3",44); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl_3)); - if (__e_acsl_eq_6 == 0) { - mpz_t __e_acsl_Y_2; - mpz_t __e_acsl_6; - int __e_acsl_eq_7; - __gmpz_init_set_si(__e_acsl_Y_2,(long)Y); - __gmpz_init_set_si(__e_acsl_6,(long)2); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y_2), - (__mpz_struct const *)(__e_acsl_6)); - __e_acsl_and_2 = __e_acsl_eq_7 == 0; - __gmpz_clear(__e_acsl_Y_2); - __gmpz_clear(__e_acsl_6); - } - else __e_acsl_and_2 = 0; - if (! __e_acsl_and_2) __e_acsl_implies_3 = 1; - else { - mpz_t __e_acsl_X_4; - mpz_t __e_acsl_Y_3; - mpz_t __e_acsl_add; - mpz_t __e_acsl_7; - int __e_acsl_eq_8; - __gmpz_init_set_si(__e_acsl_X_4,(long)X); - __gmpz_init_set_si(__e_acsl_Y_3,(long)Y); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_X_4), - (__mpz_struct const *)(__e_acsl_Y_3)); - __gmpz_init_set_si(__e_acsl_7,(long)5); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_add), - (__mpz_struct const *)(__e_acsl_7)); - __e_acsl_implies_3 = __e_acsl_eq_8 == 0; - __gmpz_clear(__e_acsl_X_4); - __gmpz_clear(__e_acsl_Y_3); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_7); - } - e_acsl_assert(__e_acsl_implies_3,(char *)"Precondition",(char *)"k", - (char *)"X == 3 && Y == 2 ==> X+Y == 5",45); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_3); - k(); - } - return; -} - -/*@ ensures X ≡ 5; */ -int l(void) -{ - /*@ assert Y ≡ 2; */ - { - mpz_t __e_acsl_Y; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __gmpz_init_set_si(__e_acsl,(long)2); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"l", - (char *)"Y == 2",51); - __gmpz_clear(__e_acsl_Y); - __gmpz_clear(__e_acsl); - } - return X; -} - -/*@ ensures X ≡ 5; */ -int __e_acsl_l(void) -{ - int __retres; - __retres = l(); - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)5); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"l", - (char *)"X == 5",49); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - return __retres; - } -} - -/*@ behavior b1: - assumes X ≡ 7; - ensures X ≡ 95; - - behavior b2: - assumes X ≡ 5; - assumes Y ≡ 2; - ensures X ≡ 7; - ensures X ≡ \old(X)+Y; - */ -void m(void) -{ - X += Y; - return; -} - -/*@ behavior b1: - assumes X ≡ 7; - ensures X ≡ 95; - - behavior b2: - assumes X ≡ 5; - assumes Y ≡ 2; - ensures X ≡ 7; - ensures X ≡ \old(X)+Y; - */ -void __e_acsl_m(void) -{ - int __e_acsl_at_4; - int __e_acsl_at_3; - int __e_acsl_at_2; - int __e_acsl_at; - __e_acsl_at_4 = X; - { - mpz_t __e_acsl_X_5; - mpz_t __e_acsl_6; - int __e_acsl_eq_6; - int __e_acsl_and_2; - __gmpz_init_set_si(__e_acsl_X_5,(long)X); - __gmpz_init_set_si(__e_acsl_6,(long)5); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_5), - (__mpz_struct const *)(__e_acsl_6)); - if (__e_acsl_eq_6 == 0) { - mpz_t __e_acsl_Y_2; - mpz_t __e_acsl_7; - int __e_acsl_eq_7; - __gmpz_init_set_si(__e_acsl_Y_2,(long)Y); - __gmpz_init_set_si(__e_acsl_7,(long)2); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y_2), - (__mpz_struct const *)(__e_acsl_7)); - __e_acsl_and_2 = __e_acsl_eq_7 == 0; - __gmpz_clear(__e_acsl_Y_2); - __gmpz_clear(__e_acsl_7); - } - else __e_acsl_and_2 = 0; - __e_acsl_at_3 = __e_acsl_and_2; - __gmpz_clear(__e_acsl_X_5); - __gmpz_clear(__e_acsl_6); - } - { - mpz_t __e_acsl_X_3; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl_X_3,(long)X); - __gmpz_init_set_si(__e_acsl_3,(long)5); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_3), - (__mpz_struct const *)(__e_acsl_3)); - if (__e_acsl_eq_3 == 0) { - mpz_t __e_acsl_Y; - mpz_t __e_acsl_4; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __gmpz_init_set_si(__e_acsl_4,(long)2); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_Y), - (__mpz_struct const *)(__e_acsl_4)); - __e_acsl_and = __e_acsl_eq_4 == 0; - __gmpz_clear(__e_acsl_Y); - __gmpz_clear(__e_acsl_4); - } - else __e_acsl_and = 0; - __e_acsl_at_2 = __e_acsl_and; - __gmpz_clear(__e_acsl_X_3); - __gmpz_clear(__e_acsl_3); - } - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)7); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - __e_acsl_at = __e_acsl_eq == 0; - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - } - m(); - { - int __e_acsl_implies; - int __e_acsl_implies_2; - int __e_acsl_implies_3; - if (! __e_acsl_at) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_X_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X_2,(long)X); - __gmpz_init_set_si(__e_acsl_2,(long)95); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_implies = __e_acsl_eq_2 == 0; - __gmpz_clear(__e_acsl_X_2); - __gmpz_clear(__e_acsl_2); - } - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 7) ==> X == 95",58); - if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_X_4; - mpz_t __e_acsl_5; - int __e_acsl_eq_5; - __gmpz_init_set_si(__e_acsl_X_4,(long)X); - __gmpz_init_set_si(__e_acsl_5,(long)7); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_4), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_implies_2 = __e_acsl_eq_5 == 0; - __gmpz_clear(__e_acsl_X_4); - __gmpz_clear(__e_acsl_5); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 5 && Y == 2) ==> X == 7",62); - if (! __e_acsl_at_3) __e_acsl_implies_3 = 1; - else { - mpz_t __e_acsl_X_6; - mpz_t __e_acsl_8; - mpz_t __e_acsl_Y_3; - mpz_t __e_acsl_add; - int __e_acsl_eq_8; - __gmpz_init_set_si(__e_acsl_X_6,(long)X); - __gmpz_init_set_si(__e_acsl_8,(long)__e_acsl_at_4); - __gmpz_init_set_si(__e_acsl_Y_3,(long)Y); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_8), - (__mpz_struct const *)(__e_acsl_Y_3)); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_6), - (__mpz_struct const *)(__e_acsl_add)); - __e_acsl_implies_3 = __e_acsl_eq_8 == 0; - __gmpz_clear(__e_acsl_X_6); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_Y_3); - __gmpz_clear(__e_acsl_add); - } - e_acsl_assert(__e_acsl_implies_3,(char *)"Postcondition",(char *)"m", - (char *)"\\old(X == 5 && Y == 2) ==> X == \\old(X)+Y",63); - return; - } -} - -/*@ requires X > 0; - requires X < 10; - - behavior b1: - assumes X ≡ 7; - ensures X ≡ 8; - - behavior b2: - assumes X ≡ 5; - ensures X ≡ 98; - */ -void n(void) -{ - X ++; - return; -} - -/*@ requires X > 0; - requires X < 10; - - behavior b1: - assumes X ≡ 7; - ensures X ≡ 8; - - behavior b2: - assumes X ≡ 5; - ensures X ≡ 98; - */ -void __e_acsl_n(void) -{ - int __e_acsl_at_2; - int __e_acsl_at; - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_gt; - mpz_t __e_acsl_2; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_gt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_gt > 0,(char *)"Precondition",(char *)"n", - (char *)"X > 0",67); - __gmpz_init_set_si(__e_acsl_2,(long)10); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_lt < 0,(char *)"Precondition",(char *)"n", - (char *)"X < 10",68); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - { - mpz_t __e_acsl_X_4; - mpz_t __e_acsl_5; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_X_4,(long)X); - __gmpz_init_set_si(__e_acsl_5,(long)5); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_4), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_at_2 = __e_acsl_eq_3 == 0; - __gmpz_clear(__e_acsl_X_4); - __gmpz_clear(__e_acsl_5); - } - { - mpz_t __e_acsl_X_2; - mpz_t __e_acsl_3; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X_2,(long)X); - __gmpz_init_set_si(__e_acsl_3,(long)7); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_3)); - __e_acsl_at = __e_acsl_eq == 0; - __gmpz_clear(__e_acsl_X_2); - __gmpz_clear(__e_acsl_3); - } - n(); - } - { - int __e_acsl_implies; - int __e_acsl_implies_2; - if (! __e_acsl_at) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_X_3; - mpz_t __e_acsl_4; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X_3,(long)X); - __gmpz_init_set_si(__e_acsl_4,(long)8); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_3), - (__mpz_struct const *)(__e_acsl_4)); - __e_acsl_implies = __e_acsl_eq_2 == 0; - __gmpz_clear(__e_acsl_X_3); - __gmpz_clear(__e_acsl_4); - } - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"n", - (char *)"\\old(X == 7) ==> X == 8",71); - if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_X_5; - mpz_t __e_acsl_6; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_X_5,(long)X); - __gmpz_init_set_si(__e_acsl_6,(long)98); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_5), - (__mpz_struct const *)(__e_acsl_6)); - __e_acsl_implies_2 = __e_acsl_eq_4 == 0; - __gmpz_clear(__e_acsl_X_5); - __gmpz_clear(__e_acsl_6); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"n", - (char *)"\\old(X == 5) ==> X == 98",74); - return; - } -} - -int main(void) -{ - int __retres; - __e_acsl_f(); - __e_acsl_g(); - __e_acsl_h(); - __e_acsl_i(); - __e_acsl_j(); - __e_acsl_k(); - __e_acsl_l(); - __e_acsl_m(); - __e_acsl_n(); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost.c index 7f0e671807c13441f13ca02fe5467a8326202627..54b300aad5edf58bde07f5d77d74df27734babc1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost.c @@ -1,96 +1,11 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int G = 0; int *P; void __e_acsl_memory_init(void) { - __store_block((void *)(& P),4U); + __store_block((void *)(& P),8UL); __full_init((void *)(& P)); - __store_block((void *)(& G),4U); + __store_block((void *)(& G),4UL); __full_init((void *)(& G)); return; } @@ -100,7 +15,7 @@ int main(void) int __retres; int *q; __e_acsl_memory_init(); - __store_block((void *)(& q),4U); + __store_block((void *)(& q),8UL); P = & G; __full_init((void *)(& q)); q = P; @@ -110,10 +25,10 @@ int main(void) __initialize((void *)P,sizeof(int)); __e_acsl_valid_read = __valid_read((void *)P,sizeof(int)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(P)",16); + (char *)"mem_access: \\valid_read(P)",14); __e_acsl_valid = __valid((void *)P,sizeof(int)); e_acsl_assert(__e_acsl_valid,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid(P)",16); + (char *)"mem_access: \\valid(P)",14); (*P) ++; } /*@ assert *q ≡ G; */ @@ -128,9 +43,9 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(q)",17); + (char *)"mem_access: \\valid_read(q)",15); e_acsl_assert(*q == G,(char *)"Assertion",(char *)"main", - (char *)"*q == G",17); + (char *)"*q == G",15); } __retres = 0; __delete_block((void *)(& P)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost2.c deleted file mode 100644 index 2b76c7ef6826fbf0900f0a4135c74fdb0c3e0b6f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ghost2.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int G = 0; -int *P; -void __e_acsl_memory_init(void) -{ - __store_block((void *)(& P),4U); - __full_init((void *)(& P)); - __store_block((void *)(& G),4U); - __full_init((void *)(& G)); - return; -} - -int main(void) -{ - int __retres; - int *q; - __e_acsl_memory_init(); - __store_block((void *)(& q),4U); - P = & G; - __full_init((void *)(& q)); - q = P; - { - int __e_acsl_valid_read; - int __e_acsl_valid; - __initialize((void *)P,sizeof(int)); - __e_acsl_valid_read = __valid_read((void *)P,sizeof(int)); - e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(P)",16); - __e_acsl_valid = __valid((void *)P,sizeof(int)); - e_acsl_assert(__e_acsl_valid,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid(P)",16); - (*P) ++; - } - /*@ assert *q ≡ G; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_G; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*q); - __gmpz_init_set_si(__e_acsl_G,(long)G); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_G)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"*q == G",17); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_G); - } - __retres = 0; - __delete_block((void *)(& P)); - __delete_block((void *)(& G)); - __delete_block((void *)(& q)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init.c index 862762c900984c1f591c44269a91a779e5d18a5f..ce0685c3e303d4b6836c949aeaf18c033fc01f6a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init.c @@ -1,69 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int a = 0; int b; void __e_acsl_memory_init(void) @@ -89,20 +24,20 @@ int main(void) q = & b; /*@ assert \initialized(&b); */ e_acsl_assert(1,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&b)",11); + (char *)"\\initialized(&b)",9); /*@ assert \initialized(q); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)q,sizeof(int)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(q)",12); + (char *)"\\initialized(q)",10); } /*@ assert \initialized(p); */ { int __e_acsl_initialized_2; __e_acsl_initialized_2 = __initialized((void *)p,sizeof(int)); e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(p)",13); + (char *)"\\initialized(p)",11); } __retres = 0; __delete_block((void *)(& b)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init2.c deleted file mode 100644 index 862762c900984c1f591c44269a91a779e5d18a5f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_init2.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int a = 0; -int b; -void __e_acsl_memory_init(void) -{ - __store_block((void *)(& b),4UL); - __full_init((void *)(& b)); - __store_block((void *)(& a),4UL); - __full_init((void *)(& a)); - return; -} - -int main(void) -{ - int __retres; - int *p; - int *q; - __e_acsl_memory_init(); - __store_block((void *)(& q),8UL); - __store_block((void *)(& p),8UL); - __full_init((void *)(& p)); - p = & a; - __full_init((void *)(& q)); - q = & b; - /*@ assert \initialized(&b); */ - e_acsl_assert(1,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&b)",11); - /*@ assert \initialized(q); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)q,sizeof(int)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(q)",12); - } - /*@ assert \initialized(p); */ - { - int __e_acsl_initialized_2; - __e_acsl_initialized_2 = __initialized((void *)p,sizeof(int)); - e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(p)",13); - } - __retres = 0; - __delete_block((void *)(& b)); - __delete_block((void *)(& a)); - __delete_block((void *)(& q)); - __delete_block((void *)(& p)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c deleted file mode 100644 index e817129f94b57a869ba8ddb422a7ff1911cb369e..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z, \result; - assigns *z \from *(str+(0 ..)), base; - assigns \result \from *(str+(0 ..)), base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, - char const *str, - int base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - /*@ assert 0 ≡ 0; */ - e_acsl_assert(0 == 0,(char *)"Assertion",(char *)"main",(char *)"0 == 0",8); - x = 0; - x ++; - /*@ assert 0 ≢ 1; */ - e_acsl_assert(0 != 1,(char *)"Assertion",(char *)"main",(char *)"0 != 1", - 10); - /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ - e_acsl_assert(1152921504606846975 == 0xfffffffffffffff,(char *)"Assertion", - (char *)"main", - (char *)"1152921504606846975 == 0xfffffffffffffff",11); - /*@ assert - 0xffffffffffffffffffffffffffffffff ≡ - 0xffffffffffffffffffffffffffffffff; - */ - { - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_str(__e_acsl,"340282366920938463463374607431768211455", - 10); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff", - 13); - __gmpz_clear(__e_acsl); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c deleted file mode 100644 index c6747b03d2826605d21acdd19657886c4c22ceeb..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_integer_constant2.c +++ /dev/null @@ -1,139 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z, \result; - assigns *z \from *(str+(0 ..)), base; - assigns \result \from *(str+(0 ..)), base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, - char const *str, - int base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - /*@ assert 0 ≡ 0; */ - { - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"0 == 0",8); - __gmpz_clear(__e_acsl); - } - x = 0; - x ++; - /*@ assert 0 ≢ 1; */ - { - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - int __e_acsl_ne; - __gmpz_init_set_si(__e_acsl_2,(long)0); - __gmpz_init_set_si(__e_acsl_3,(long)1); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"0 != 1",10); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - } - /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ - { - mpz_t __e_acsl_4; - int __e_acsl_eq_2; - __gmpz_init_set_str(__e_acsl_4,"1152921504606846975",10); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_4), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"1152921504606846975 == 0xfffffffffffffff",11); - __gmpz_clear(__e_acsl_4); - } - /*@ assert - 0xffffffffffffffffffffffffffffffff ≡ - 0xffffffffffffffffffffffffffffffff; - */ - { - mpz_t __e_acsl_5; - int __e_acsl_eq_3; - __gmpz_init_set_str(__e_acsl_5,"340282366920938463463374607431768211455", - 10); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), - (__mpz_struct const *)(__e_acsl_5)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff", - 13); - __gmpz_clear(__e_acsl_5); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c index 17edc7547d30849fc7fef2f5e0ab3023b91e59cd..44ffb1a229f464d950b3ff49c7123dc4701e1221 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c deleted file mode 100644 index 43521357a7b6ac017a0ec271432f495632c65406..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_invariant2.c +++ /dev/null @@ -1,124 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - { - int i; - i = 0; - while (i < 10) { - /*@ invariant 0 ≤ i < 10; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_i; - int __e_acsl_le; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_init_set_si(__e_acsl_i,(long)i); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_i)); - if (__e_acsl_le <= 0) { - mpz_t __e_acsl_i_2; - mpz_t __e_acsl_2; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_i_2,(long)i); - __gmpz_init_set_si(__e_acsl_2,(long)10); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_and = __e_acsl_lt < 0; - __gmpz_clear(__e_acsl_i_2); - __gmpz_clear(__e_acsl_2); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"main", - (char *)"0 <= i < 10",9); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_i); - } - x += i; - /*@ invariant i ≤ x; */ - { - mpz_t __e_acsl_i_3; - mpz_t __e_acsl_x; - int __e_acsl_le_2; - __gmpz_init_set_si(__e_acsl_i_3,(long)i); - __gmpz_init_set_si(__e_acsl_x,(long)x); - __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_3), - (__mpz_struct const *)(__e_acsl_x)); - e_acsl_assert(__e_acsl_le_2 <= 0,(char *)"Invariant",(char *)"main", - (char *)"i <= x",11); - __gmpz_clear(__e_acsl_i_3); - __gmpz_clear(__e_acsl_x); - } - i ++; - } - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c index f9514e7699f98b9668297940f078ea39bbd6c5be..d882d43852c347aec2539907aceca0848d6328ff 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int X = 0; /*@ ensures X ≡ 3; */ int __e_acsl_main(void) @@ -48,7 +8,7 @@ int __e_acsl_main(void) L1: /*@ assert X ≡ 0; */ e_acsl_assert(X == 0,(char *)"Assertion",(char *)"main",(char *)"X == 0", - 12); + 10); X = 1; goto L2; L2: @@ -56,10 +16,10 @@ int __e_acsl_main(void) ensures X ≡ 2; */ { e_acsl_assert(X == 1,(char *)"Precondition",(char *)"main", - (char *)"X == 1",14); + (char *)"X == 1",12); X = 2; e_acsl_assert(X == 2,(char *)"Postcondition",(char *)"main", - (char *)"X == 2",14); + (char *)"X == 2",12); } if (X) { X = 3; @@ -76,7 +36,7 @@ int main(void) int __retres; __retres = __e_acsl_main(); e_acsl_assert(X == 3,(char *)"Postcondition",(char *)"main", - (char *)"X == 3",9); + (char *)"X == 3",7); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c deleted file mode 100644 index 65543717ad65ecdd60dd4c1778acb0a4960cf86d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_labeled_stmt2.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int X = 0; -/*@ ensures X ≡ 3; */ -int __e_acsl_main(void) -{ - int __retres; - goto L1; - L1: - /*@ assert X ≡ 0; */ - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"X == 0",12); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - } - X = 1; - goto L2; - L2: - /*@ requires X ≡ 1; - ensures X ≡ 2; */ - { - mpz_t __e_acsl_X_3; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - { - mpz_t __e_acsl_X_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_X_2,(long)X); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_2), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Precondition", - (char *)"main",(char *)"X == 1",14); - __gmpz_clear(__e_acsl_X_2); - __gmpz_clear(__e_acsl_2); - X = 2; - } - __gmpz_init_set_si(__e_acsl_X_3,(long)X); - __gmpz_init_set_si(__e_acsl_3,(long)2); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X_3), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Postcondition", - (char *)"main",(char *)"X == 2",14); - __gmpz_clear(__e_acsl_X_3); - __gmpz_clear(__e_acsl_3); - } - if (X) { - X = 3; - __retres = 0; - goto return_label; - } - __retres = 0; - return_label: return __retres; -} - -/*@ ensures X ≡ 3; */ -int main(void) -{ - int __retres; - __retres = __e_acsl_main(); - { - mpz_t __e_acsl_X; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_X,(long)X); - __gmpz_init_set_si(__e_acsl,(long)3); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_X), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"main", - (char *)"X == 3",9); - __gmpz_clear(__e_acsl_X); - __gmpz_clear(__e_acsl); - return __retres; - } -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c index d3ce4ce6b8b7fa706b49dfb59460cc5c265a0fa0..a619b4c190a3b84a66e62b2a1f4ef9a912cbe928 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -51,26 +11,26 @@ int main(void) int __e_acsl_and; if (x == 0) __e_acsl_and = y == 1; else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"x == 0 && y == 1",11); + (char *)"x == 0 && y == 1",9); } /*@ assert ¬(x ≢ 0 ∧ y ≡ 1/0); */ { int __e_acsl_and_2; if (x != 0) { e_acsl_assert(0 != 0,(char *)"RTE",(char *)"main", - (char *)"division_by_zero: 0 != 0",12); + (char *)"division_by_zero: 0 != 0",10); __e_acsl_and_2 = y == 1 / 0; } else __e_acsl_and_2 = 0; e_acsl_assert(! __e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"!(x != 0 && y == 1/0)",12); + (char *)"!(x != 0 && y == 1/0)",10); } /*@ assert y ≡ 1 ∨ x ≡ 1; */ { int __e_acsl_or; if (y == 1) __e_acsl_or = 1; else __e_acsl_or = x == 1; e_acsl_assert(__e_acsl_or,(char *)"Assertion",(char *)"main", - (char *)"y == 1 || x == 1",13); + (char *)"y == 1 || x == 1",11); } /*@ assert x ≡ 0 ∨ y ≡ 1/0; */ { @@ -78,18 +38,18 @@ int main(void) if (x == 0) __e_acsl_or_2 = 1; else { e_acsl_assert(0 != 0,(char *)"RTE",(char *)"main", - (char *)"division_by_zero: 0 != 0",14); + (char *)"division_by_zero: 0 != 0",12); __e_acsl_or_2 = y == 1 / 0; } e_acsl_assert(__e_acsl_or_2,(char *)"Assertion",(char *)"main", - (char *)"x == 0 || y == 1/0",14); + (char *)"x == 0 || y == 1/0",12); } /*@ assert x ≡ 0 ⇒ y ≡ 1; */ { int __e_acsl_implies; if (! (x == 0)) __e_acsl_implies = 1; else __e_acsl_implies = y == 1; e_acsl_assert(__e_acsl_implies,(char *)"Assertion",(char *)"main", - (char *)"x == 0 ==> y == 1",15); + (char *)"x == 0 ==> y == 1",13); } /*@ assert x ≡ 1 ⇒ y ≡ 1/0; */ { @@ -97,32 +57,32 @@ int main(void) if (! (x == 1)) __e_acsl_implies_2 = 1; else { e_acsl_assert(0 != 0,(char *)"RTE",(char *)"main", - (char *)"division_by_zero: 0 != 0",16); + (char *)"division_by_zero: 0 != 0",14); __e_acsl_implies_2 = y == 1 / 0; } e_acsl_assert(__e_acsl_implies_2,(char *)"Assertion",(char *)"main", - (char *)"x == 1 ==> y == 1/0",16); + (char *)"x == 1 ==> y == 1/0",14); } /*@ assert x≢0? x ≢ 0: y ≢ 0; */ { int __e_acsl_if; if (x != 0) __e_acsl_if = x != 0; else __e_acsl_if = y != 0; e_acsl_assert(__e_acsl_if,(char *)"Assertion",(char *)"main", - (char *)"x!=0? x != 0: y != 0",17); + (char *)"x!=0? x != 0: y != 0",15); } /*@ assert y≢0? y ≢ 0: x ≢ 0; */ { int __e_acsl_if_2; if (y != 0) __e_acsl_if_2 = y != 0; else __e_acsl_if_2 = x != 0; e_acsl_assert(__e_acsl_if_2,(char *)"Assertion",(char *)"main", - (char *)"y!=0? y != 0: x != 0",18); + (char *)"y!=0? y != 0: x != 0",16); } /*@ assert x≡1? x ≡ 18: x ≡ 0; */ { int __e_acsl_if_3; if (x == 1) __e_acsl_if_3 = x == 18; else __e_acsl_if_3 = x == 0; e_acsl_assert(__e_acsl_if_3,(char *)"Assertion",(char *)"main", - (char *)"x==1? x == 18: x == 0",19); + (char *)"x==1? x == 18: x == 0",17); } /*@ assert x ≡ 2 ⇔ y ≡ 3; */ { @@ -137,7 +97,7 @@ int main(void) } else __e_acsl_equiv = 0; e_acsl_assert(__e_acsl_equiv,(char *)"Assertion",(char *)"main", - (char *)"x == 2 <==> y == 3",22); + (char *)"x == 2 <==> y == 3",20); } /*@ assert x ≡ 0 ⇔ y ≡ 1; */ { @@ -152,14 +112,14 @@ int main(void) } else __e_acsl_equiv_2 = 0; e_acsl_assert(__e_acsl_equiv_2,(char *)"Assertion",(char *)"main", - (char *)"x == 0 <==> y == 1",23); + (char *)"x == 0 <==> y == 1",21); } /*@ assert ((x≢0? x: y)≢0) ≡ (x≡0); */ { int __e_acsl_if_4; if (x != 0) __e_acsl_if_4 = x; else __e_acsl_if_4 = y; e_acsl_assert((__e_acsl_if_4 != 0) == (x == 0),(char *)"Assertion", - (char *)"main",(char *)"((x!=0? x: y)!=0) == (x==0)",26); + (char *)"main",(char *)"((x!=0? x: y)!=0) == (x==0)",24); } /*@ assert (x ≢ 0 ∧ y ≢ 0) ∨ y ≢ 0; */ { @@ -168,7 +128,7 @@ int main(void) if (x != 0) __e_acsl_and_3 = y != 0; else __e_acsl_and_3 = 0; if (__e_acsl_and_3) __e_acsl_or_3 = 1; else __e_acsl_or_3 = y != 0; e_acsl_assert(__e_acsl_or_3,(char *)"Assertion",(char *)"main", - (char *)"(x != 0 && y != 0) || y != 0",27); + (char *)"(x != 0 && y != 0) || y != 0",25); } /*@ assert (x ≢ 0 ∨ y ≢ 0) ∧ y ≡ 1; */ { @@ -177,21 +137,21 @@ int main(void) if (x != 0) __e_acsl_or_4 = 1; else __e_acsl_or_4 = y != 0; if (__e_acsl_or_4) __e_acsl_and_4 = y == 1; else __e_acsl_and_4 = 0; e_acsl_assert(__e_acsl_and_4,(char *)"Assertion",(char *)"main", - (char *)"(x != 0 || y != 0) && y == 1",28); + (char *)"(x != 0 || y != 0) && y == 1",26); } /*@ assert (x≢0∨y≢0) ≡ (y≢0); */ { int __e_acsl_or_5; if (x != 0) __e_acsl_or_5 = 1; else __e_acsl_or_5 = y != 0; e_acsl_assert(__e_acsl_or_5 == (y != 0),(char *)"Assertion", - (char *)"main",(char *)"(x!=0||y!=0) == (y!=0)",29); + (char *)"main",(char *)"(x!=0||y!=0) == (y!=0)",27); } /*@ assert (x≢0 ∧ y≢0) ≡ (x≢0); */ { int __e_acsl_and_5; if (x != 0) __e_acsl_and_5 = y != 0; else __e_acsl_and_5 = 0; e_acsl_assert(__e_acsl_and_5 == (x != 0),(char *)"Assertion", - (char *)"main",(char *)"(x!=0 && y!=0) == (x!=0)",30); + (char *)"main",(char *)"(x!=0 && y!=0) == (x!=0)",28); } __retres = 0; return __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c deleted file mode 100644 index 56c8f4f7969849e946c34848c4371681d52d9e79..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_lazy2.c +++ /dev/null @@ -1,755 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires \valid_read(z_orig); - requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from *z_orig; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - int y; - x = 0; - y = 1; - /*@ assert x ≡ 0 ∧ y ≡ 1; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl; - int __e_acsl_eq; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl_x,(long)x); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl)); - if (__e_acsl_eq == 0) { - mpz_t __e_acsl_y; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_y,(long)y); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_and = __e_acsl_eq_2 == 0; - __gmpz_clear(__e_acsl_y); - __gmpz_clear(__e_acsl_2); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"x == 0 && y == 1",11); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl); - } - /*@ assert ¬(x ≢ 0 ∧ y ≡ 1/0); */ - { - mpz_t __e_acsl_x_2; - mpz_t __e_acsl_3; - int __e_acsl_ne; - int __e_acsl_and_2; - __gmpz_init_set_si(__e_acsl_x_2,(long)x); - __gmpz_init_set_si(__e_acsl_3,(long)0); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), - (__mpz_struct const *)(__e_acsl_3)); - if (__e_acsl_ne != 0) { - mpz_t __e_acsl_y_2; - mpz_t __e_acsl_4; - mpz_t __e_acsl_5; - int __e_acsl_div_guard; - mpz_t __e_acsl_div; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_y_2,(long)y); - __gmpz_init_set_si(__e_acsl_4,(long)1); - __gmpz_init_set_si(__e_acsl_5,(long)0); - __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), - (__mpz_struct const *)(__e_acsl_5)); - __gmpz_init(__e_acsl_div); - /*@ assert E_ACSL: 0 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"0 == 0",12); - __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl_4), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_2), - (__mpz_struct const *)(__e_acsl_div)); - __e_acsl_and_2 = __e_acsl_eq_3 == 0; - __gmpz_clear(__e_acsl_y_2); - __gmpz_clear(__e_acsl_4); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_div); - } - else __e_acsl_and_2 = 0; - e_acsl_assert(! __e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"!(x != 0 && y == 1/0)",12); - __gmpz_clear(__e_acsl_x_2); - __gmpz_clear(__e_acsl_3); - } - /*@ assert y ≡ 1 ∨ x ≡ 1; */ - { - mpz_t __e_acsl_y_3; - mpz_t __e_acsl_6; - int __e_acsl_eq_4; - int __e_acsl_or; - __gmpz_init_set_si(__e_acsl_y_3,(long)y); - __gmpz_init_set_si(__e_acsl_6,(long)1); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_3), - (__mpz_struct const *)(__e_acsl_6)); - if (__e_acsl_eq_4 == 0) __e_acsl_or = 1; - else { - mpz_t __e_acsl_x_3; - mpz_t __e_acsl_7; - int __e_acsl_eq_5; - __gmpz_init_set_si(__e_acsl_x_3,(long)x); - __gmpz_init_set_si(__e_acsl_7,(long)1); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_3), - (__mpz_struct const *)(__e_acsl_7)); - __e_acsl_or = __e_acsl_eq_5 == 0; - __gmpz_clear(__e_acsl_x_3); - __gmpz_clear(__e_acsl_7); - } - e_acsl_assert(__e_acsl_or,(char *)"Assertion",(char *)"main", - (char *)"y == 1 || x == 1",13); - __gmpz_clear(__e_acsl_y_3); - __gmpz_clear(__e_acsl_6); - } - /*@ assert x ≡ 0 ∨ y ≡ 1/0; */ - { - mpz_t __e_acsl_x_4; - mpz_t __e_acsl_8; - int __e_acsl_eq_6; - int __e_acsl_or_2; - __gmpz_init_set_si(__e_acsl_x_4,(long)x); - __gmpz_init_set_si(__e_acsl_8,(long)0); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_4), - (__mpz_struct const *)(__e_acsl_8)); - if (__e_acsl_eq_6 == 0) __e_acsl_or_2 = 1; - else { - mpz_t __e_acsl_y_4; - mpz_t __e_acsl_9; - mpz_t __e_acsl_10; - int __e_acsl_div_guard_2; - mpz_t __e_acsl_div_2; - int __e_acsl_eq_7; - __gmpz_init_set_si(__e_acsl_y_4,(long)y); - __gmpz_init_set_si(__e_acsl_9,(long)1); - __gmpz_init_set_si(__e_acsl_10,(long)0); - __e_acsl_div_guard_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_10), - (__mpz_struct const *)(__e_acsl_10)); - __gmpz_init(__e_acsl_div_2); - /*@ assert E_ACSL: 0 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard_2 == 0),(char *)"Assertion", - (char *)"main",(char *)"0 == 0",14); - __gmpz_tdiv_q(__e_acsl_div_2,(__mpz_struct const *)(__e_acsl_9), - (__mpz_struct const *)(__e_acsl_10)); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_4), - (__mpz_struct const *)(__e_acsl_div_2)); - __e_acsl_or_2 = __e_acsl_eq_7 == 0; - __gmpz_clear(__e_acsl_y_4); - __gmpz_clear(__e_acsl_9); - __gmpz_clear(__e_acsl_10); - __gmpz_clear(__e_acsl_div_2); - } - e_acsl_assert(__e_acsl_or_2,(char *)"Assertion",(char *)"main", - (char *)"x == 0 || y == 1/0",14); - __gmpz_clear(__e_acsl_x_4); - __gmpz_clear(__e_acsl_8); - } - /*@ assert x ≡ 0 ⇒ y ≡ 1; */ - { - mpz_t __e_acsl_x_5; - mpz_t __e_acsl_11; - int __e_acsl_eq_8; - int __e_acsl_implies; - __gmpz_init_set_si(__e_acsl_x_5,(long)x); - __gmpz_init_set_si(__e_acsl_11,(long)0); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_5), - (__mpz_struct const *)(__e_acsl_11)); - if (! (__e_acsl_eq_8 == 0)) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_y_5; - mpz_t __e_acsl_12; - int __e_acsl_eq_9; - __gmpz_init_set_si(__e_acsl_y_5,(long)y); - __gmpz_init_set_si(__e_acsl_12,(long)1); - __e_acsl_eq_9 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_5), - (__mpz_struct const *)(__e_acsl_12)); - __e_acsl_implies = __e_acsl_eq_9 == 0; - __gmpz_clear(__e_acsl_y_5); - __gmpz_clear(__e_acsl_12); - } - e_acsl_assert(__e_acsl_implies,(char *)"Assertion",(char *)"main", - (char *)"x == 0 ==> y == 1",15); - __gmpz_clear(__e_acsl_x_5); - __gmpz_clear(__e_acsl_11); - } - /*@ assert x ≡ 1 ⇒ y ≡ 1/0; */ - { - mpz_t __e_acsl_x_6; - mpz_t __e_acsl_13; - int __e_acsl_eq_10; - int __e_acsl_implies_2; - __gmpz_init_set_si(__e_acsl_x_6,(long)x); - __gmpz_init_set_si(__e_acsl_13,(long)1); - __e_acsl_eq_10 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_6), - (__mpz_struct const *)(__e_acsl_13)); - if (! (__e_acsl_eq_10 == 0)) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_y_6; - mpz_t __e_acsl_14; - mpz_t __e_acsl_15; - int __e_acsl_div_guard_3; - mpz_t __e_acsl_div_3; - int __e_acsl_eq_11; - __gmpz_init_set_si(__e_acsl_y_6,(long)y); - __gmpz_init_set_si(__e_acsl_14,(long)1); - __gmpz_init_set_si(__e_acsl_15,(long)0); - __e_acsl_div_guard_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_15), - (__mpz_struct const *)(__e_acsl_15)); - __gmpz_init(__e_acsl_div_3); - /*@ assert E_ACSL: 0 ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard_3 == 0),(char *)"Assertion", - (char *)"main",(char *)"0 == 0",16); - __gmpz_tdiv_q(__e_acsl_div_3,(__mpz_struct const *)(__e_acsl_14), - (__mpz_struct const *)(__e_acsl_15)); - __e_acsl_eq_11 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_6), - (__mpz_struct const *)(__e_acsl_div_3)); - __e_acsl_implies_2 = __e_acsl_eq_11 == 0; - __gmpz_clear(__e_acsl_y_6); - __gmpz_clear(__e_acsl_14); - __gmpz_clear(__e_acsl_15); - __gmpz_clear(__e_acsl_div_3); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Assertion",(char *)"main", - (char *)"x == 1 ==> y == 1/0",16); - __gmpz_clear(__e_acsl_x_6); - __gmpz_clear(__e_acsl_13); - } - /*@ assert x≢0? x ≢ 0: y ≢ 0; */ - { - mpz_t __e_acsl_x_7; - mpz_t __e_acsl_16; - int __e_acsl_ne_2; - int __e_acsl_if; - __gmpz_init_set_si(__e_acsl_x_7,(long)x); - __gmpz_init_set_si(__e_acsl_16,0L); - __e_acsl_ne_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_7), - (__mpz_struct const *)(__e_acsl_16)); - if (__e_acsl_ne_2 != 0) { - mpz_t __e_acsl_x_8; - mpz_t __e_acsl_17; - int __e_acsl_ne_3; - __gmpz_init_set_si(__e_acsl_x_8,(long)x); - __gmpz_init_set_si(__e_acsl_17,0L); - __e_acsl_ne_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_8), - (__mpz_struct const *)(__e_acsl_17)); - __e_acsl_if = __e_acsl_ne_3 != 0; - __gmpz_clear(__e_acsl_x_8); - __gmpz_clear(__e_acsl_17); - } - else { - mpz_t __e_acsl_y_7; - mpz_t __e_acsl_18; - int __e_acsl_ne_4; - __gmpz_init_set_si(__e_acsl_y_7,(long)y); - __gmpz_init_set_si(__e_acsl_18,0L); - __e_acsl_ne_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_7), - (__mpz_struct const *)(__e_acsl_18)); - __e_acsl_if = __e_acsl_ne_4 != 0; - __gmpz_clear(__e_acsl_y_7); - __gmpz_clear(__e_acsl_18); - } - e_acsl_assert(__e_acsl_if,(char *)"Assertion",(char *)"main", - (char *)"x!=0? x != 0: y != 0",17); - __gmpz_clear(__e_acsl_x_7); - __gmpz_clear(__e_acsl_16); - } - /*@ assert y≢0? y ≢ 0: x ≢ 0; */ - { - mpz_t __e_acsl_y_8; - mpz_t __e_acsl_19; - int __e_acsl_ne_5; - int __e_acsl_if_2; - __gmpz_init_set_si(__e_acsl_y_8,(long)y); - __gmpz_init_set_si(__e_acsl_19,0L); - __e_acsl_ne_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_8), - (__mpz_struct const *)(__e_acsl_19)); - if (__e_acsl_ne_5 != 0) { - mpz_t __e_acsl_y_9; - mpz_t __e_acsl_20; - int __e_acsl_ne_6; - __gmpz_init_set_si(__e_acsl_y_9,(long)y); - __gmpz_init_set_si(__e_acsl_20,0L); - __e_acsl_ne_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_9), - (__mpz_struct const *)(__e_acsl_20)); - __e_acsl_if_2 = __e_acsl_ne_6 != 0; - __gmpz_clear(__e_acsl_y_9); - __gmpz_clear(__e_acsl_20); - } - else { - mpz_t __e_acsl_x_9; - mpz_t __e_acsl_21; - int __e_acsl_ne_7; - __gmpz_init_set_si(__e_acsl_x_9,(long)x); - __gmpz_init_set_si(__e_acsl_21,0L); - __e_acsl_ne_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_9), - (__mpz_struct const *)(__e_acsl_21)); - __e_acsl_if_2 = __e_acsl_ne_7 != 0; - __gmpz_clear(__e_acsl_x_9); - __gmpz_clear(__e_acsl_21); - } - e_acsl_assert(__e_acsl_if_2,(char *)"Assertion",(char *)"main", - (char *)"y!=0? y != 0: x != 0",18); - __gmpz_clear(__e_acsl_y_8); - __gmpz_clear(__e_acsl_19); - } - /*@ assert x≡1? x ≡ 18: x ≡ 0; */ - { - mpz_t __e_acsl_x_10; - mpz_t __e_acsl_22; - int __e_acsl_eq_12; - int __e_acsl_if_3; - __gmpz_init_set_si(__e_acsl_x_10,(long)x); - __gmpz_init_set_si(__e_acsl_22,(long)1); - __e_acsl_eq_12 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_10), - (__mpz_struct const *)(__e_acsl_22)); - if (__e_acsl_eq_12 == 0) { - mpz_t __e_acsl_x_11; - mpz_t __e_acsl_23; - int __e_acsl_eq_13; - __gmpz_init_set_si(__e_acsl_x_11,(long)x); - __gmpz_init_set_si(__e_acsl_23,(long)18); - __e_acsl_eq_13 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_11), - (__mpz_struct const *)(__e_acsl_23)); - __e_acsl_if_3 = __e_acsl_eq_13 == 0; - __gmpz_clear(__e_acsl_x_11); - __gmpz_clear(__e_acsl_23); - } - else { - mpz_t __e_acsl_x_12; - mpz_t __e_acsl_24; - int __e_acsl_eq_14; - __gmpz_init_set_si(__e_acsl_x_12,(long)x); - __gmpz_init_set_si(__e_acsl_24,(long)0); - __e_acsl_eq_14 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_12), - (__mpz_struct const *)(__e_acsl_24)); - __e_acsl_if_3 = __e_acsl_eq_14 == 0; - __gmpz_clear(__e_acsl_x_12); - __gmpz_clear(__e_acsl_24); - } - e_acsl_assert(__e_acsl_if_3,(char *)"Assertion",(char *)"main", - (char *)"x==1? x == 18: x == 0",19); - __gmpz_clear(__e_acsl_x_10); - __gmpz_clear(__e_acsl_22); - } - /*@ assert x ≡ 2 ⇔ y ≡ 3; */ - { - mpz_t __e_acsl_x_13; - mpz_t __e_acsl_25; - int __e_acsl_eq_15; - int __e_acsl_implies_3; - int __e_acsl_equiv; - __gmpz_init_set_si(__e_acsl_x_13,(long)x); - __gmpz_init_set_si(__e_acsl_25,(long)2); - __e_acsl_eq_15 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_13), - (__mpz_struct const *)(__e_acsl_25)); - if (! (__e_acsl_eq_15 == 0)) __e_acsl_implies_3 = 1; - else { - mpz_t __e_acsl_y_10; - mpz_t __e_acsl_26; - int __e_acsl_eq_16; - __gmpz_init_set_si(__e_acsl_y_10,(long)y); - __gmpz_init_set_si(__e_acsl_26,(long)3); - __e_acsl_eq_16 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_10), - (__mpz_struct const *)(__e_acsl_26)); - __e_acsl_implies_3 = __e_acsl_eq_16 == 0; - __gmpz_clear(__e_acsl_y_10); - __gmpz_clear(__e_acsl_26); - } - if (__e_acsl_implies_3) { - mpz_t __e_acsl_y_11; - mpz_t __e_acsl_27; - int __e_acsl_eq_17; - int __e_acsl_implies_4; - __gmpz_init_set_si(__e_acsl_y_11,(long)y); - __gmpz_init_set_si(__e_acsl_27,(long)3); - __e_acsl_eq_17 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_11), - (__mpz_struct const *)(__e_acsl_27)); - if (! (__e_acsl_eq_17 == 0)) __e_acsl_implies_4 = 1; - else { - mpz_t __e_acsl_x_14; - mpz_t __e_acsl_28; - int __e_acsl_eq_18; - __gmpz_init_set_si(__e_acsl_x_14,(long)x); - __gmpz_init_set_si(__e_acsl_28,(long)2); - __e_acsl_eq_18 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_14), - (__mpz_struct const *)(__e_acsl_28)); - __e_acsl_implies_4 = __e_acsl_eq_18 == 0; - __gmpz_clear(__e_acsl_x_14); - __gmpz_clear(__e_acsl_28); - } - __e_acsl_equiv = __e_acsl_implies_4; - __gmpz_clear(__e_acsl_y_11); - __gmpz_clear(__e_acsl_27); - } - else __e_acsl_equiv = 0; - e_acsl_assert(__e_acsl_equiv,(char *)"Assertion",(char *)"main", - (char *)"x == 2 <==> y == 3",22); - __gmpz_clear(__e_acsl_x_13); - __gmpz_clear(__e_acsl_25); - } - /*@ assert x ≡ 0 ⇔ y ≡ 1; */ - { - mpz_t __e_acsl_x_15; - mpz_t __e_acsl_29; - int __e_acsl_eq_19; - int __e_acsl_implies_5; - int __e_acsl_equiv_2; - __gmpz_init_set_si(__e_acsl_x_15,(long)x); - __gmpz_init_set_si(__e_acsl_29,(long)0); - __e_acsl_eq_19 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_15), - (__mpz_struct const *)(__e_acsl_29)); - if (! (__e_acsl_eq_19 == 0)) __e_acsl_implies_5 = 1; - else { - mpz_t __e_acsl_y_12; - mpz_t __e_acsl_30; - int __e_acsl_eq_20; - __gmpz_init_set_si(__e_acsl_y_12,(long)y); - __gmpz_init_set_si(__e_acsl_30,(long)1); - __e_acsl_eq_20 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_12), - (__mpz_struct const *)(__e_acsl_30)); - __e_acsl_implies_5 = __e_acsl_eq_20 == 0; - __gmpz_clear(__e_acsl_y_12); - __gmpz_clear(__e_acsl_30); - } - if (__e_acsl_implies_5) { - mpz_t __e_acsl_y_13; - mpz_t __e_acsl_31; - int __e_acsl_eq_21; - int __e_acsl_implies_6; - __gmpz_init_set_si(__e_acsl_y_13,(long)y); - __gmpz_init_set_si(__e_acsl_31,(long)1); - __e_acsl_eq_21 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_13), - (__mpz_struct const *)(__e_acsl_31)); - if (! (__e_acsl_eq_21 == 0)) __e_acsl_implies_6 = 1; - else { - mpz_t __e_acsl_x_16; - mpz_t __e_acsl_32; - int __e_acsl_eq_22; - __gmpz_init_set_si(__e_acsl_x_16,(long)x); - __gmpz_init_set_si(__e_acsl_32,(long)0); - __e_acsl_eq_22 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_16), - (__mpz_struct const *)(__e_acsl_32)); - __e_acsl_implies_6 = __e_acsl_eq_22 == 0; - __gmpz_clear(__e_acsl_x_16); - __gmpz_clear(__e_acsl_32); - } - __e_acsl_equiv_2 = __e_acsl_implies_6; - __gmpz_clear(__e_acsl_y_13); - __gmpz_clear(__e_acsl_31); - } - else __e_acsl_equiv_2 = 0; - e_acsl_assert(__e_acsl_equiv_2,(char *)"Assertion",(char *)"main", - (char *)"x == 0 <==> y == 1",23); - __gmpz_clear(__e_acsl_x_15); - __gmpz_clear(__e_acsl_29); - } - /*@ assert ((x≢0? x: y)≢0) ≡ (x≡0); */ - { - mpz_t __e_acsl_x_17; - mpz_t __e_acsl_33; - int __e_acsl_ne_8; - mpz_t __e_acsl_if_4; - int __e_acsl_ne_9; - mpz_t __e_acsl_34; - int __e_acsl_eq_23; - mpz_t __e_acsl_35; - int __e_acsl_eq_24; - __gmpz_init_set_si(__e_acsl_x_17,(long)x); - __gmpz_init_set_si(__e_acsl_33,0L); - __e_acsl_ne_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_17), - (__mpz_struct const *)(__e_acsl_33)); - if (__e_acsl_ne_8 != 0) { - mpz_t __e_acsl_x_18; - __gmpz_init_set_si(__e_acsl_x_18,(long)x); - __gmpz_init_set(__e_acsl_if_4,(__mpz_struct const *)(__e_acsl_x_18)); - __gmpz_clear(__e_acsl_x_18); - } - else { - mpz_t __e_acsl_y_14; - __gmpz_init_set_si(__e_acsl_y_14,(long)y); - __gmpz_init_set(__e_acsl_if_4,(__mpz_struct const *)(__e_acsl_y_14)); - __gmpz_clear(__e_acsl_y_14); - } - __e_acsl_ne_9 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_if_4), - (__mpz_struct const *)(__e_acsl_33)); - __gmpz_init_set_si(__e_acsl_34,(long)(__e_acsl_ne_9 != 0)); - __e_acsl_eq_23 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_17), - (__mpz_struct const *)(__e_acsl_33)); - __gmpz_init_set_si(__e_acsl_35,(long)(__e_acsl_eq_23 == 0)); - __e_acsl_eq_24 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_34), - (__mpz_struct const *)(__e_acsl_35)); - e_acsl_assert(__e_acsl_eq_24 == 0,(char *)"Assertion",(char *)"main", - (char *)"((x!=0? x: y)!=0) == (x==0)",26); - __gmpz_clear(__e_acsl_x_17); - __gmpz_clear(__e_acsl_33); - __gmpz_clear(__e_acsl_if_4); - __gmpz_clear(__e_acsl_34); - __gmpz_clear(__e_acsl_35); - } - /*@ assert (x ≢ 0 ∧ y ≢ 0) ∨ y ≢ 0; */ - { - mpz_t __e_acsl_x_19; - mpz_t __e_acsl_36; - int __e_acsl_ne_10; - int __e_acsl_and_3; - int __e_acsl_or_3; - __gmpz_init_set_si(__e_acsl_x_19,(long)x); - __gmpz_init_set_si(__e_acsl_36,0L); - __e_acsl_ne_10 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_19), - (__mpz_struct const *)(__e_acsl_36)); - if (__e_acsl_ne_10 != 0) { - mpz_t __e_acsl_y_15; - mpz_t __e_acsl_37; - int __e_acsl_ne_11; - __gmpz_init_set_si(__e_acsl_y_15,(long)y); - __gmpz_init_set_si(__e_acsl_37,0L); - __e_acsl_ne_11 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_15), - (__mpz_struct const *)(__e_acsl_37)); - __e_acsl_and_3 = __e_acsl_ne_11 != 0; - __gmpz_clear(__e_acsl_y_15); - __gmpz_clear(__e_acsl_37); - } - else __e_acsl_and_3 = 0; - if (__e_acsl_and_3) __e_acsl_or_3 = 1; - else { - mpz_t __e_acsl_y_16; - mpz_t __e_acsl_38; - int __e_acsl_ne_12; - __gmpz_init_set_si(__e_acsl_y_16,(long)y); - __gmpz_init_set_si(__e_acsl_38,0L); - __e_acsl_ne_12 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_16), - (__mpz_struct const *)(__e_acsl_38)); - __e_acsl_or_3 = __e_acsl_ne_12 != 0; - __gmpz_clear(__e_acsl_y_16); - __gmpz_clear(__e_acsl_38); - } - e_acsl_assert(__e_acsl_or_3,(char *)"Assertion",(char *)"main", - (char *)"(x != 0 && y != 0) || y != 0",27); - __gmpz_clear(__e_acsl_x_19); - __gmpz_clear(__e_acsl_36); - } - /*@ assert (x ≢ 0 ∨ y ≢ 0) ∧ y ≡ 1; */ - { - mpz_t __e_acsl_x_20; - mpz_t __e_acsl_39; - int __e_acsl_ne_13; - int __e_acsl_or_4; - int __e_acsl_and_4; - __gmpz_init_set_si(__e_acsl_x_20,(long)x); - __gmpz_init_set_si(__e_acsl_39,0L); - __e_acsl_ne_13 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_20), - (__mpz_struct const *)(__e_acsl_39)); - if (__e_acsl_ne_13 != 0) __e_acsl_or_4 = 1; - else { - mpz_t __e_acsl_y_17; - mpz_t __e_acsl_40; - int __e_acsl_ne_14; - __gmpz_init_set_si(__e_acsl_y_17,(long)y); - __gmpz_init_set_si(__e_acsl_40,0L); - __e_acsl_ne_14 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_17), - (__mpz_struct const *)(__e_acsl_40)); - __e_acsl_or_4 = __e_acsl_ne_14 != 0; - __gmpz_clear(__e_acsl_y_17); - __gmpz_clear(__e_acsl_40); - } - if (__e_acsl_or_4) { - mpz_t __e_acsl_y_18; - mpz_t __e_acsl_41; - int __e_acsl_eq_25; - __gmpz_init_set_si(__e_acsl_y_18,(long)y); - __gmpz_init_set_si(__e_acsl_41,(long)1); - __e_acsl_eq_25 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_18), - (__mpz_struct const *)(__e_acsl_41)); - __e_acsl_and_4 = __e_acsl_eq_25 == 0; - __gmpz_clear(__e_acsl_y_18); - __gmpz_clear(__e_acsl_41); - } - else __e_acsl_and_4 = 0; - e_acsl_assert(__e_acsl_and_4,(char *)"Assertion",(char *)"main", - (char *)"(x != 0 || y != 0) && y == 1",28); - __gmpz_clear(__e_acsl_x_20); - __gmpz_clear(__e_acsl_39); - } - /*@ assert (x≢0∨y≢0) ≡ (y≢0); */ - { - mpz_t __e_acsl_x_21; - mpz_t __e_acsl_42; - int __e_acsl_ne_15; - mpz_t __e_acsl_or_5; - mpz_t __e_acsl_y_20; - int __e_acsl_ne_17; - mpz_t __e_acsl_45; - int __e_acsl_eq_26; - __gmpz_init_set_si(__e_acsl_x_21,(long)x); - __gmpz_init_set_si(__e_acsl_42,0L); - __e_acsl_ne_15 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_21), - (__mpz_struct const *)(__e_acsl_42)); - if (__e_acsl_ne_15 != 0) __gmpz_init_set_si(__e_acsl_or_5,1L); - else { - mpz_t __e_acsl_y_19; - mpz_t __e_acsl_43; - int __e_acsl_ne_16; - mpz_t __e_acsl_44; - __gmpz_init_set_si(__e_acsl_y_19,(long)y); - __gmpz_init_set_si(__e_acsl_43,0L); - __e_acsl_ne_16 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_19), - (__mpz_struct const *)(__e_acsl_43)); - __gmpz_init_set_si(__e_acsl_44,(long)(__e_acsl_ne_16 != 0)); - __gmpz_init_set(__e_acsl_or_5,(__mpz_struct const *)(__e_acsl_44)); - __gmpz_clear(__e_acsl_y_19); - __gmpz_clear(__e_acsl_43); - __gmpz_clear(__e_acsl_44); - } - __gmpz_init_set_si(__e_acsl_y_20,(long)y); - __e_acsl_ne_17 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_20), - (__mpz_struct const *)(__e_acsl_42)); - __gmpz_init_set_si(__e_acsl_45,(long)(__e_acsl_ne_17 != 0)); - __e_acsl_eq_26 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_or_5), - (__mpz_struct const *)(__e_acsl_45)); - e_acsl_assert(__e_acsl_eq_26 == 0,(char *)"Assertion",(char *)"main", - (char *)"(x!=0||y!=0) == (y!=0)",29); - __gmpz_clear(__e_acsl_x_21); - __gmpz_clear(__e_acsl_42); - __gmpz_clear(__e_acsl_or_5); - __gmpz_clear(__e_acsl_y_20); - __gmpz_clear(__e_acsl_45); - } - /*@ assert (x≢0 ∧ y≢0) ≡ (x≢0); */ - { - mpz_t __e_acsl_x_22; - mpz_t __e_acsl_46; - int __e_acsl_ne_18; - mpz_t __e_acsl_and_5; - int __e_acsl_ne_20; - mpz_t __e_acsl_49; - int __e_acsl_eq_27; - __gmpz_init_set_si(__e_acsl_x_22,(long)x); - __gmpz_init_set_si(__e_acsl_46,0L); - __e_acsl_ne_18 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_22), - (__mpz_struct const *)(__e_acsl_46)); - if (__e_acsl_ne_18 != 0) { - mpz_t __e_acsl_y_21; - mpz_t __e_acsl_47; - int __e_acsl_ne_19; - mpz_t __e_acsl_48; - __gmpz_init_set_si(__e_acsl_y_21,(long)y); - __gmpz_init_set_si(__e_acsl_47,0L); - __e_acsl_ne_19 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_21), - (__mpz_struct const *)(__e_acsl_47)); - __gmpz_init_set_si(__e_acsl_48,(long)(__e_acsl_ne_19 != 0)); - __gmpz_init_set(__e_acsl_and_5,(__mpz_struct const *)(__e_acsl_48)); - __gmpz_clear(__e_acsl_y_21); - __gmpz_clear(__e_acsl_47); - __gmpz_clear(__e_acsl_48); - } - else __gmpz_init_set_si(__e_acsl_and_5,0L); - __e_acsl_ne_20 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_22), - (__mpz_struct const *)(__e_acsl_46)); - __gmpz_init_set_si(__e_acsl_49,(long)(__e_acsl_ne_20 != 0)); - __e_acsl_eq_27 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_and_5), - (__mpz_struct const *)(__e_acsl_49)); - e_acsl_assert(__e_acsl_eq_27 == 0,(char *)"Assertion",(char *)"main", - (char *)"(x!=0 && y!=0) == (x!=0)",30); - __gmpz_clear(__e_acsl_x_22); - __gmpz_clear(__e_acsl_46); - __gmpz_clear(__e_acsl_and_5); - __gmpz_clear(__e_acsl_49); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c index 50947884763a4351ee0d1210b054de77acbe3179..87412c30836b27c464b881ca5f547ae1244a87fb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int A[10]; /*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i+1]; @@ -64,9 +24,9 @@ int search(int elt) while (1) { if (__e_acsl_i < k) ; else break; e_acsl_assert(__e_acsl_i < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: __e_acsl_i < 10",20); + (char *)"index_bound: __e_acsl_i < 10",18); e_acsl_assert(0 <= __e_acsl_i,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= __e_acsl_i",20); + (char *)"index_bound: 0 <= __e_acsl_i",18); if (A[__e_acsl_i] < elt) ; else { __e_acsl_forall = 0; @@ -76,10 +36,10 @@ int search(int elt) } e_acsl_end_loop1: ; e_acsl_assert(__e_acsl_forall,(char *)"Invariant",(char *)"search", - (char *)"\\forall integer i; 0 <= i < k ==> A[i] < elt",20); + (char *)"\\forall integer i; 0 <= i < k ==> A[i] < elt",18); if (0 <= k) __e_acsl_and = k <= 10; else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"search", - (char *)"0 <= k <= 10",19); + (char *)"0 <= k <= 10",17); /*@ loop invariant 0 ≤ k ≤ 10; loop invariant ∀ ℤ i; 0 ≤ i < k ⇒ A[i] < elt; */ @@ -100,15 +60,15 @@ int search(int elt) k ++; if (0 <= k) __e_acsl_and_2 = k <= 10; else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Invariant",(char *)"search", - (char *)"0 <= k <= 10",19); + (char *)"0 <= k <= 10",17); __e_acsl_forall_2 = 1; __e_acsl_i_2 = 0; while (1) { if (__e_acsl_i_2 < k) ; else break; e_acsl_assert(__e_acsl_i_2 < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: __e_acsl_i_2 < 10",20); + (char *)"index_bound: __e_acsl_i_2 < 10",18); e_acsl_assert(0 <= __e_acsl_i_2,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= __e_acsl_i_2",20); + (char *)"index_bound: 0 <= __e_acsl_i_2",18); if (A[__e_acsl_i_2] < elt) ; else { __e_acsl_forall_2 = 0; @@ -119,7 +79,7 @@ int search(int elt) e_acsl_end_loop2: ; e_acsl_assert(__e_acsl_forall_2,(char *)"Invariant",(char *)"search", (char *)"\\forall integer i; 0 <= i < k ==> A[i] < elt", - 20); + 18); } } } @@ -150,13 +110,13 @@ int __e_acsl_search(int elt) while (1) { if (__e_acsl_i < 9) ; else break; e_acsl_assert(__e_acsl_i + 1 < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: (int)(__e_acsl_i+1) < 10",9); + (char *)"index_bound: (int)(__e_acsl_i+1) < 10",7); e_acsl_assert(0 <= __e_acsl_i + 1,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= (int)(__e_acsl_i+1)",9); + (char *)"index_bound: 0 <= (int)(__e_acsl_i+1)",7); e_acsl_assert(__e_acsl_i < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: __e_acsl_i < 10",9); + (char *)"index_bound: __e_acsl_i < 10",7); e_acsl_assert(0 <= __e_acsl_i,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= __e_acsl_i",9); + (char *)"index_bound: 0 <= __e_acsl_i",7); if (A[__e_acsl_i] <= A[__e_acsl_i + 1]) ; else { __e_acsl_forall = 0; @@ -167,7 +127,7 @@ int __e_acsl_search(int elt) e_acsl_end_loop3: ; e_acsl_assert(__e_acsl_forall,(char *)"Precondition",(char *)"search", (char *)"\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i+1]", - 9); + 7); { int __e_acsl_forall_2; int __e_acsl_j_2; @@ -176,9 +136,9 @@ int __e_acsl_search(int elt) while (1) { if (__e_acsl_j_2 < 10) ; else break; e_acsl_assert(__e_acsl_j_2 < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: __e_acsl_j_2 < 10",14); + (char *)"index_bound: __e_acsl_j_2 < 10",12); e_acsl_assert(0 <= __e_acsl_j_2,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= __e_acsl_j_2",14); + (char *)"index_bound: 0 <= __e_acsl_j_2",12); if (A[__e_acsl_j_2] != elt) ; else { __e_acsl_forall_2 = 0; @@ -197,9 +157,9 @@ int __e_acsl_search(int elt) while (1) { if (__e_acsl_j < 10) ; else break; e_acsl_assert(__e_acsl_j < 10,(char *)"RTE",(char *)"search", - (char *)"index_bound: __e_acsl_j < 10",11); + (char *)"index_bound: __e_acsl_j < 10",9); e_acsl_assert(0 <= __e_acsl_j,(char *)"RTE",(char *)"search", - (char *)"index_bound: 0 <= __e_acsl_j",11); + (char *)"index_bound: 0 <= __e_acsl_j",9); if (! (A[__e_acsl_j] == elt)) ; else { __e_acsl_exists = 1; @@ -219,13 +179,13 @@ int __e_acsl_search(int elt) else __e_acsl_implies = __retres == 1; e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"search", (char *)"\\old(\\exists integer j; 0 <= j < 10 && A[j] == elt) ==> \\result == 1", - 12); + 10); if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = __retres == 0; e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition", (char *)"search", (char *)"\\old(\\forall integer j; 0 <= j < 10 ==> A[j] != elt) ==> \\result == 0", - 15); + 13); return __retres; } } @@ -245,11 +205,11 @@ int main(void) found = __e_acsl_search(36); /*@ assert found ≡ 1; */ e_acsl_assert(found == 1,(char *)"Assertion",(char *)"main", - (char *)"found == 1",33); + (char *)"found == 1",31); found = __e_acsl_search(5); /*@ assert found ≡ 0; */ e_acsl_assert(found == 0,(char *)"Assertion",(char *)"main", - (char *)"found == 0",36); + (char *)"found == 0",34); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c deleted file mode 100644 index 6f087c5d81dcd74aa58f9a173f639ce047b1f4f5..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_linear_search2.c +++ /dev/null @@ -1,573 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int A[10]; -/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i+1]; - - behavior exists: - assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt; - ensures \result ≡ 1; - - behavior not_exists: - assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt; - ensures \result ≡ 0; - */ -int search(int elt) -{ - int __retres; - int k; - k = 0; - { - int __e_acsl_forall; - mpz_t __e_acsl_i; - mpz_t __e_acsl_4; - mpz_t __e_acsl_k_2; - int __e_acsl_le; - int __e_acsl_and; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_i); - { - mpz_t __e_acsl_2; - __gmpz_init_set_si(__e_acsl_2,(long)0); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_2)); - __gmpz_clear(__e_acsl_2); - } - while (1) { - { - mpz_t __e_acsl_k; - int __e_acsl_lt_2; - __gmpz_init_set_si(__e_acsl_k,(long)k); - __e_acsl_lt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_k)); - if (__e_acsl_lt_2 < 0) ; else break; - __gmpz_clear(__e_acsl_k); - } - { - unsigned long __e_acsl_i_2; - mpz_t __e_acsl; - mpz_t __e_acsl_elt; - int __e_acsl_lt; - __e_acsl_i_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_i)); - __gmpz_init_set_si(__e_acsl,(long)A[__e_acsl_i_2]); - __gmpz_init_set_si(__e_acsl_elt,(long)elt); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_elt)); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_elt); - if (__e_acsl_lt < 0) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop1; - } - } - { - mpz_t __e_acsl_3; - mpz_t __e_acsl_add; - __gmpz_init_set_si(__e_acsl_3,1L); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_add)); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_add); - } - } - e_acsl_end_loop1: ; - e_acsl_assert(__e_acsl_forall,(char *)"Invariant",(char *)"search", - (char *)"\\forall integer i; 0 <= i < k ==> A[i] < elt",20); - __gmpz_init_set_si(__e_acsl_4,(long)0); - __gmpz_init_set_si(__e_acsl_k_2,(long)k); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl_4), - (__mpz_struct const *)(__e_acsl_k_2)); - if (__e_acsl_le <= 0) { - mpz_t __e_acsl_k_3; - mpz_t __e_acsl_5; - int __e_acsl_le_2; - __gmpz_init_set_si(__e_acsl_k_3,(long)k); - __gmpz_init_set_si(__e_acsl_5,(long)10); - __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_5)); - __e_acsl_and = __e_acsl_le_2 <= 0; - __gmpz_clear(__e_acsl_k_3); - __gmpz_clear(__e_acsl_5); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"search", - (char *)"0 <= k <= 10",19); - __gmpz_clear(__e_acsl_i); - __gmpz_clear(__e_acsl_4); - __gmpz_clear(__e_acsl_k_2); - /*@ loop invariant 0 ≤ k ≤ 10; - loop invariant ∀ ℤ i; 0 ≤ i < k ⇒ A[i] < elt; - */ - while (k < 10) { - if (A[k] == elt) { - __retres = 1; - goto return_label; - } - else - if (A[k] > elt) { - __retres = 0; - goto return_label; - } - { - mpz_t __e_acsl_6; - mpz_t __e_acsl_k_4; - int __e_acsl_le_3; - int __e_acsl_and_2; - int __e_acsl_forall_2; - mpz_t __e_acsl_i_3; - k ++; - __gmpz_init_set_si(__e_acsl_6,(long)0); - __gmpz_init_set_si(__e_acsl_k_4,(long)k); - __e_acsl_le_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_6), - (__mpz_struct const *)(__e_acsl_k_4)); - if (__e_acsl_le_3 <= 0) { - mpz_t __e_acsl_k_5; - mpz_t __e_acsl_7; - int __e_acsl_le_4; - __gmpz_init_set_si(__e_acsl_k_5,(long)k); - __gmpz_init_set_si(__e_acsl_7,(long)10); - __e_acsl_le_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k_5), - (__mpz_struct const *)(__e_acsl_7)); - __e_acsl_and_2 = __e_acsl_le_4 <= 0; - __gmpz_clear(__e_acsl_k_5); - __gmpz_clear(__e_acsl_7); - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Invariant",(char *)"search", - (char *)"0 <= k <= 10",19); - __e_acsl_forall_2 = 1; - __gmpz_init(__e_acsl_i_3); - { - mpz_t __e_acsl_9; - __gmpz_init_set_si(__e_acsl_9,(long)0); - __gmpz_set(__e_acsl_i_3,(__mpz_struct const *)(__e_acsl_9)); - __gmpz_clear(__e_acsl_9); - } - while (1) { - { - mpz_t __e_acsl_k_6; - int __e_acsl_lt_4; - __gmpz_init_set_si(__e_acsl_k_6,(long)k); - __e_acsl_lt_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_3), - (__mpz_struct const *)(__e_acsl_k_6)); - if (__e_acsl_lt_4 < 0) ; else break; - __gmpz_clear(__e_acsl_k_6); - } - { - unsigned long __e_acsl_i_4; - mpz_t __e_acsl_8; - mpz_t __e_acsl_elt_2; - int __e_acsl_lt_3; - __e_acsl_i_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_i_3)); - __gmpz_init_set_si(__e_acsl_8,(long)A[__e_acsl_i_4]); - __gmpz_init_set_si(__e_acsl_elt_2,(long)elt); - __e_acsl_lt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_8), - (__mpz_struct const *)(__e_acsl_elt_2)); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_elt_2); - if (__e_acsl_lt_3 < 0) ; - else { - __e_acsl_forall_2 = 0; - goto e_acsl_end_loop2; - } - } - { - mpz_t __e_acsl_10; - mpz_t __e_acsl_add_2; - __gmpz_init_set_si(__e_acsl_10,1L); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_i_3), - (__mpz_struct const *)(__e_acsl_10)); - __gmpz_set(__e_acsl_i_3,(__mpz_struct const *)(__e_acsl_add_2)); - __gmpz_clear(__e_acsl_10); - __gmpz_clear(__e_acsl_add_2); - } - } - e_acsl_end_loop2: ; - e_acsl_assert(__e_acsl_forall_2,(char *)"Invariant",(char *)"search", - (char *)"\\forall integer i; 0 <= i < k ==> A[i] < elt", - 20); - __gmpz_clear(__e_acsl_6); - __gmpz_clear(__e_acsl_k_4); - __gmpz_clear(__e_acsl_i_3); - } - } - } - __retres = 0; - return_label: return __retres; -} - -/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i+1]; - - behavior exists: - assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt; - ensures \result ≡ 1; - - behavior not_exists: - assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt; - ensures \result ≡ 0; - */ -int __e_acsl_search(int elt) -{ - int __e_acsl_at_2; - int __e_acsl_at; - int __retres; - { - int __e_acsl_forall; - mpz_t __e_acsl_i; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_i); - { - mpz_t __e_acsl_5; - __gmpz_init_set_si(__e_acsl_5,(long)0); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_5)); - __gmpz_clear(__e_acsl_5); - } - while (1) { - { - mpz_t __e_acsl_6; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_6,(long)9); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_6)); - if (__e_acsl_lt < 0) ; else break; - __gmpz_clear(__e_acsl_6); - } - { - unsigned long __e_acsl_i_2; - mpz_t __e_acsl; - mpz_t __e_acsl_2; - mpz_t __e_acsl_add; - unsigned long __e_acsl_3; - mpz_t __e_acsl_4; - int __e_acsl_le; - __e_acsl_i_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_i)); - __gmpz_init_set_si(__e_acsl,(long)A[__e_acsl_i_2]); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_3 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_add)); - __gmpz_init_set_si(__e_acsl_4,(long)A[__e_acsl_3]); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_4)); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_4); - if (__e_acsl_le <= 0) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop3; - } - } - { - mpz_t __e_acsl_7; - mpz_t __e_acsl_add_2; - __gmpz_init_set_si(__e_acsl_7,1L); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_7)); - __gmpz_set(__e_acsl_i,(__mpz_struct const *)(__e_acsl_add_2)); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_add_2); - } - } - e_acsl_end_loop3: ; - e_acsl_assert(__e_acsl_forall,(char *)"Precondition",(char *)"search", - (char *)"\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i+1]", - 9); - __gmpz_clear(__e_acsl_i); - { - int __e_acsl_forall_2; - mpz_t __e_acsl_j_3; - __e_acsl_forall_2 = 1; - __gmpz_init(__e_acsl_j_3); - { - mpz_t __e_acsl_14; - __gmpz_init_set_si(__e_acsl_14,(long)0); - __gmpz_set(__e_acsl_j_3,(__mpz_struct const *)(__e_acsl_14)); - __gmpz_clear(__e_acsl_14); - } - while (1) { - { - mpz_t __e_acsl_15; - int __e_acsl_lt_3; - __gmpz_init_set_si(__e_acsl_15,(long)10); - __e_acsl_lt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_j_3), - (__mpz_struct const *)(__e_acsl_15)); - if (__e_acsl_lt_3 < 0) ; else break; - __gmpz_clear(__e_acsl_15); - } - { - unsigned long __e_acsl_j_4; - mpz_t __e_acsl_13; - mpz_t __e_acsl_elt_2; - int __e_acsl_ne; - __e_acsl_j_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_j_3)); - __gmpz_init_set_si(__e_acsl_13,(long)A[__e_acsl_j_4]); - __gmpz_init_set_si(__e_acsl_elt_2,(long)elt); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_13), - (__mpz_struct const *)(__e_acsl_elt_2)); - __gmpz_clear(__e_acsl_13); - __gmpz_clear(__e_acsl_elt_2); - if (__e_acsl_ne != 0) ; - else { - __e_acsl_forall_2 = 0; - goto e_acsl_end_loop5; - } - } - { - mpz_t __e_acsl_16; - mpz_t __e_acsl_add_4; - __gmpz_init_set_si(__e_acsl_16,1L); - __gmpz_init(__e_acsl_add_4); - __gmpz_add(__e_acsl_add_4,(__mpz_struct const *)(__e_acsl_j_3), - (__mpz_struct const *)(__e_acsl_16)); - __gmpz_set(__e_acsl_j_3,(__mpz_struct const *)(__e_acsl_add_4)); - __gmpz_clear(__e_acsl_16); - __gmpz_clear(__e_acsl_add_4); - } - } - e_acsl_end_loop5: ; - __e_acsl_at_2 = __e_acsl_forall_2; - __gmpz_clear(__e_acsl_j_3); - } - { - int __e_acsl_exists; - mpz_t __e_acsl_j; - __e_acsl_exists = 0; - __gmpz_init(__e_acsl_j); - { - mpz_t __e_acsl_9; - __gmpz_init_set_si(__e_acsl_9,(long)0); - __gmpz_set(__e_acsl_j,(__mpz_struct const *)(__e_acsl_9)); - __gmpz_clear(__e_acsl_9); - } - while (1) { - { - mpz_t __e_acsl_10; - int __e_acsl_lt_2; - __gmpz_init_set_si(__e_acsl_10,(long)10); - __e_acsl_lt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_j), - (__mpz_struct const *)(__e_acsl_10)); - if (__e_acsl_lt_2 < 0) ; else break; - __gmpz_clear(__e_acsl_10); - } - { - unsigned long __e_acsl_j_2; - mpz_t __e_acsl_8; - mpz_t __e_acsl_elt; - int __e_acsl_eq; - __e_acsl_j_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_j)); - __gmpz_init_set_si(__e_acsl_8,(long)A[__e_acsl_j_2]); - __gmpz_init_set_si(__e_acsl_elt,(long)elt); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_8), - (__mpz_struct const *)(__e_acsl_elt)); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_elt); - if (! (__e_acsl_eq == 0)) ; - else { - __e_acsl_exists = 1; - goto e_acsl_end_loop4; - } - } - { - mpz_t __e_acsl_11; - mpz_t __e_acsl_add_3; - __gmpz_init_set_si(__e_acsl_11,1L); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3,(__mpz_struct const *)(__e_acsl_j), - (__mpz_struct const *)(__e_acsl_11)); - __gmpz_set(__e_acsl_j,(__mpz_struct const *)(__e_acsl_add_3)); - __gmpz_clear(__e_acsl_11); - __gmpz_clear(__e_acsl_add_3); - } - } - e_acsl_end_loop4: ; - __e_acsl_at = __e_acsl_exists; - __gmpz_clear(__e_acsl_j); - } - __retres = search(elt); - } - { - int __e_acsl_implies; - int __e_acsl_implies_2; - if (! __e_acsl_at) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_result; - mpz_t __e_acsl_12; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_result,(long)__retres); - __gmpz_init_set_si(__e_acsl_12,(long)1); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), - (__mpz_struct const *)(__e_acsl_12)); - __e_acsl_implies = __e_acsl_eq_2 == 0; - __gmpz_clear(__e_acsl_result); - __gmpz_clear(__e_acsl_12); - } - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"search", - (char *)"\\old(\\exists integer j; 0 <= j < 10 && A[j] == elt) ==> \\result == 1", - 12); - if (! __e_acsl_at_2) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_result_2; - mpz_t __e_acsl_17; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_result_2,(long)__retres); - __gmpz_init_set_si(__e_acsl_17,(long)0); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result_2), - (__mpz_struct const *)(__e_acsl_17)); - __e_acsl_implies_2 = __e_acsl_eq_3 == 0; - __gmpz_clear(__e_acsl_result_2); - __gmpz_clear(__e_acsl_17); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition", - (char *)"search", - (char *)"\\old(\\forall integer j; 0 <= j < 10 ==> A[j] != elt) ==> \\result == 0", - 15); - return __retres; - } -} - -int main(void) -{ - int __retres; - int found; - { - int i; - i = 0; - while (i < 10) { - A[i] = i * i; - i ++; - } - } - found = __e_acsl_search(36); - /*@ assert found ≡ 1; */ - { - mpz_t __e_acsl_found; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_found,(long)found); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_found), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"found == 1",33); - __gmpz_clear(__e_acsl_found); - __gmpz_clear(__e_acsl); - } - found = __e_acsl_search(5); - /*@ assert found ≡ 0; */ - { - mpz_t __e_acsl_found_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_found_2,(long)found); - __gmpz_init_set_si(__e_acsl_2,(long)0); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_found_2), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"found == 0",36); - __gmpz_clear(__e_acsl_found_2); - __gmpz_clear(__e_acsl_2); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string.c index ec689d560787bfd68d91ecffbbb85fc06b802764..b1acd2ae35252b59b6d024fbcbfd745ab8ca5a06 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string.c @@ -3,90 +3,6 @@ char *__e_acsl_literal_string; char *__e_acsl_literal_string_4; char *__e_acsl_literal_string_3; char *__e_acsl_literal_string_2; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void); char *T = (char *)"bar"; @@ -98,9 +14,9 @@ void f(void) int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)(T + G),sizeof(char)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"f", - (char *)"mem_access: \\valid_read(T+G)",13); + (char *)"mem_access: \\valid_read(T+G)",11); e_acsl_assert((int)*(T + G) == 'b',(char *)"Assertion",(char *)"f", - (char *)"*(T+G) == \'b\'",13); + (char *)"*(T+G) == \'b\'",11); } G ++; return; @@ -129,11 +45,11 @@ void __e_acsl_memory_init(void) __store_block((void *)__e_acsl_literal_string_2,sizeof("bar")); __full_init((void *)__e_acsl_literal_string_2); __literal_string((void *)__e_acsl_literal_string_2); - __store_block((void *)(& S2),4U); + __store_block((void *)(& S2),8UL); __full_init((void *)(& S2)); - __store_block((void *)(& S),4U); + __store_block((void *)(& S),8UL); __full_init((void *)(& S)); - __store_block((void *)(& T),4U); + __store_block((void *)(& T),8UL); __full_init((void *)(& T)); return; } @@ -143,7 +59,7 @@ int main(void) int __retres; char *SS; __e_acsl_memory_init(); - __store_block((void *)(& SS),4U); + __store_block((void *)(& SS),8UL); __full_init((void *)(& SS)); SS = (char *)__e_acsl_literal_string; /*@ assert *(S+G2) ≡ 'o'; */ @@ -151,23 +67,23 @@ int main(void) int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)(S + G2),sizeof(char)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(S+G2)",24); + (char *)"mem_access: \\valid_read(S+G2)",22); e_acsl_assert((int)*(S + G2) == 'o',(char *)"Assertion",(char *)"main", - (char *)"*(S+G2) == \'o\'",24); + (char *)"*(S+G2) == \'o\'",22); } /*@ assert \initialized(S); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)S,sizeof(char)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(S)",25); + (char *)"\\initialized(S)",23); } /*@ assert \valid_read(S2); */ { int __e_acsl_valid_read_2; __e_acsl_valid_read_2 = __valid_read((void *)S2,sizeof(char)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(S2)",26); + (char *)"\\valid_read(S2)",24); } /*@ assert ¬\valid(SS); */ { @@ -181,7 +97,7 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(SS)",27); + (char *)"!\\valid(SS)",25); } f(); __retres = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string2.c deleted file mode 100644 index 97cb30890d153325e4c7dbc38086c731c0bd5b83..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_literal_string2.c +++ /dev/null @@ -1,229 +0,0 @@ -/* Generated by Frama-C */ -char *__e_acsl_literal_string; -char *__e_acsl_literal_string_4; -char *__e_acsl_literal_string_3; -char *__e_acsl_literal_string_2; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void); - -char *T = (char *)"bar"; -int G = 0; -void f(void) -{ - /*@ assert *(T+G) ≡ 'b'; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*(T + (long)G)); - __gmpz_init_set_si(__e_acsl_2,(long)'b'); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"f", - (char *)"*(T+G) == \'b\'",13); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - } - G ++; - return; -} - -char *S = (char *)"foo"; -char *S2 = (char *)"foo2"; -int IDX = 1; -int G2 = 2; -char *U = (char *)"baz"; -void __e_acsl_memory_init(void) -{ - __e_acsl_literal_string = "ss"; - __store_block((void *)__e_acsl_literal_string,sizeof("ss")); - __full_init((void *)__e_acsl_literal_string); - __literal_string((void *)__e_acsl_literal_string); - __e_acsl_literal_string_4 = "foo2"; - __store_block((void *)__e_acsl_literal_string_4,sizeof("foo2")); - __full_init((void *)__e_acsl_literal_string_4); - __literal_string((void *)__e_acsl_literal_string_4); - __e_acsl_literal_string_3 = "foo"; - __store_block((void *)__e_acsl_literal_string_3,sizeof("foo")); - __full_init((void *)__e_acsl_literal_string_3); - __literal_string((void *)__e_acsl_literal_string_3); - __e_acsl_literal_string_2 = "bar"; - __store_block((void *)__e_acsl_literal_string_2,sizeof("bar")); - __full_init((void *)__e_acsl_literal_string_2); - __literal_string((void *)__e_acsl_literal_string_2); - __store_block((void *)(& S2),4U); - __full_init((void *)(& S2)); - __store_block((void *)(& S),4U); - __full_init((void *)(& S)); - __store_block((void *)(& T),4U); - __full_init((void *)(& T)); - return; -} - -int main(void) -{ - int __retres; - char *SS; - __e_acsl_memory_init(); - __store_block((void *)(& SS),4U); - __full_init((void *)(& SS)); - SS = (char *)__e_acsl_literal_string; - /*@ assert *(S+G2) ≡ 'o'; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*(S + (long)G2)); - __gmpz_init_set_si(__e_acsl_2,(long)'o'); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"*(S+G2) == \'o\'",24); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - } - /*@ assert \initialized(S); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)S,sizeof(char)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(S)",25); - } - /*@ assert \valid_read(S2); */ - { - int __e_acsl_valid_read; - __e_acsl_valid_read = __valid_read((void *)S2,sizeof(char)); - e_acsl_assert(__e_acsl_valid_read,(char *)"Assertion",(char *)"main", - (char *)"\\valid_read(S2)",26); - } - /*@ assert ¬\valid(SS); */ - { - int __e_acsl_initialized_2; - int __e_acsl_and; - __e_acsl_initialized_2 = __initialized((void *)(& SS),sizeof(char *)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)SS,sizeof(char)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(SS)",27); - } - f(); - __retres = 0; - __delete_block((void *)(& S2)); - __delete_block((void *)(& S)); - __delete_block((void *)(& T)); - __delete_block((void *)(& SS)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar.c index b012a7b28ffba5907f3d64e925207111a6b06b32..73b5ba3e8f6b737bc1b11d2aa484ca35261ca5e3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar.c @@ -1,123 +1,13 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; struct list { int element ; struct list *next ; }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ struct list *add(struct list *l, int i) { struct list *new; - __store_block((void *)(& new),4U); - __store_block((void *)(& l),4U); + __store_block((void *)(& new),8UL); + __store_block((void *)(& l),8UL); __full_init((void *)(& new)); new = (struct list *)__e_acsl_malloc(sizeof(struct list)); /*@ assert \valid(new); */ @@ -133,7 +23,7 @@ struct list *add(struct list *l, int i) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"add", - (char *)"\\valid(new)",20); + (char *)"\\valid(new)",18); } __initialize((void *)(& new->element),sizeof(int)); new->element = i; @@ -148,7 +38,7 @@ int main(void) { int __retres; struct list *l; - __store_block((void *)(& l),4U); + __store_block((void *)(& l),8UL); __full_init((void *)(& l)); l = (struct list *)0; __full_init((void *)(& l)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar2.c deleted file mode 100644 index b012a7b28ffba5907f3d64e925207111a6b06b32..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_localvar2.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -struct list { - int element ; - struct list *next ; -}; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -struct list *add(struct list *l, int i) -{ - struct list *new; - __store_block((void *)(& new),4U); - __store_block((void *)(& l),4U); - __full_init((void *)(& new)); - new = (struct list *)__e_acsl_malloc(sizeof(struct list)); - /*@ assert \valid(new); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(& new), - sizeof(struct list *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)new,sizeof(struct list)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Assertion",(char *)"add", - (char *)"\\valid(new)",20); - } - __initialize((void *)(& new->element),sizeof(int)); - new->element = i; - __initialize((void *)(& new->next),sizeof(struct list *)); - new->next = l; - __delete_block((void *)(& l)); - __delete_block((void *)(& new)); - return new; -} - -int main(void) -{ - int __retres; - struct list *l; - __store_block((void *)(& l),4U); - __full_init((void *)(& l)); - l = (struct list *)0; - __full_init((void *)(& l)); - l = add(l,4); - __full_init((void *)(& l)); - l = add(l,7); - __retres = 0; - __delete_block((void *)(& l)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong.c deleted file mode 100644 index acac3c564bb909bb30466ba9847de8fe3d767f20..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong.c +++ /dev/null @@ -1,193 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_import(__mpz_struct * /*[1]*/ z, - size_t, int, - size_t, int, - size_t, - void const *base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -unsigned long long my_pow(unsigned int x, unsigned int n) -{ - unsigned long long __retres; - int tmp; - unsigned long long tmp_0; - if (n <= (unsigned int)1) { - __retres = (unsigned long long)1; - goto return_label; - } - { /* sequence */ - tmp_0 = my_pow(x,n / (unsigned int)2); - tmp = (int)tmp_0; - } - tmp *= tmp; - if (n % (unsigned int)2 == (unsigned int)0) { - __retres = (unsigned long long)tmp; - goto return_label; - } - __retres = (unsigned long long)(x * (unsigned int)tmp); - return_label: return __retres; -} - -int main(void) -{ - int __retres; - unsigned long long x; - x = my_pow((unsigned int)2,(unsigned int)63); - /*@ assert (2*x+1)%2 ≡ 1; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_x; - mpz_t __e_acsl_mul; - mpz_t __e_acsl_2; - mpz_t __e_acsl_add; - mpz_t __e_acsl_3; - int __e_acsl_mod_guard; - mpz_t __e_acsl_mod; - unsigned long __e_acsl_4; - __gmpz_init_set_si(__e_acsl,(long)2); - __gmpz_init(__e_acsl_x); - __gmpz_import(__e_acsl_x,1U,1,8U,0,0U,(void const *)(& x)); - __gmpz_init(__e_acsl_mul); - __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_x)); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_mul), - (__mpz_struct const *)(__e_acsl_2)); - __gmpz_init_set_si(__e_acsl_3,0L); - __e_acsl_mod_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init(__e_acsl_mod); - /*@ assert E_ACSL: 2 ≢ 0; */ - e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"2 == 0",19); - __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_add), - (__mpz_struct const *)(__e_acsl)); - __e_acsl_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_mod)); - e_acsl_assert(__e_acsl_4 == 1,(char *)"Assertion",(char *)"main", - (char *)"(2*x+1)%2 == 1",19); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl_mul); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_mod); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong2.c deleted file mode 100644 index a885cae43163acac46f1352e2f05a17855b2fa42..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_longlong2.c +++ /dev/null @@ -1,189 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_import(__mpz_struct * /*[1]*/ z, - size_t, int, - size_t, int, - size_t, - void const *base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -unsigned long long my_pow(unsigned int x, unsigned int n) -{ - unsigned long long __retres; - int tmp; - unsigned long long tmp_0; - if (n <= (unsigned int)1) { - __retres = (unsigned long long)1; - goto return_label; - } - { /* sequence */ - tmp_0 = my_pow(x,n / (unsigned int)2); - tmp = (int)tmp_0; - } - tmp *= tmp; - if (n % (unsigned int)2 == (unsigned int)0) { - __retres = (unsigned long long)tmp; - goto return_label; - } - __retres = (unsigned long long)(x * (unsigned int)tmp); - return_label: return __retres; -} - -int main(void) -{ - int __retres; - unsigned long long x; - x = my_pow((unsigned int)2,(unsigned int)63); - /*@ assert (2*x+1)%2 ≡ 1; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_x; - mpz_t __e_acsl_mul; - mpz_t __e_acsl_2; - mpz_t __e_acsl_add; - mpz_t __e_acsl_3; - int __e_acsl_mod_guard; - mpz_t __e_acsl_mod; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)2); - __gmpz_init(__e_acsl_x); - __gmpz_import(__e_acsl_x,1U,1,8U,0,0U,(void const *)(& x)); - __gmpz_init(__e_acsl_mul); - __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_x)); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_mul), - (__mpz_struct const *)(__e_acsl_2)); - __gmpz_init_set_si(__e_acsl_3,0L); - __e_acsl_mod_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init(__e_acsl_mod); - /*@ assert E_ACSL: 2 ≢ 0; */ - e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"2 == 0",19); - __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_add), - (__mpz_struct const *)(__e_acsl)); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"(2*x+1)%2 == 1",19); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl_mul); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_mod); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop.c index 017d65d08d5ca775270cf50198ba6e46e306687e..4f299753998be76b2fd7b5a4f528a5cb0991fc25 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ void simple_loop(void) { int sum; @@ -50,7 +10,7 @@ void simple_loop(void) int __e_acsl_and; if (0 <= i) __e_acsl_and = i <= 10; else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"simple_loop", - (char *)"0 <= i <= 10",10); + (char *)"0 <= i <= 10",8); /*@ loop invariant 0 ≤ i ≤ 10; */ while (i < 10) { sum += i; @@ -59,7 +19,7 @@ void simple_loop(void) i ++; if (0 <= i) __e_acsl_and_2 = i <= 10; else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"simple_loop",(char *)"0 <= i <= 10",10); + (char *)"simple_loop",(char *)"0 <= i <= 10",8); } } } @@ -76,7 +36,7 @@ void nested_loops(void) int __e_acsl_and; if (0 <= i) __e_acsl_and = i <= 10; else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"nested_loops", - (char *)"0 <= i <= 10",17); + (char *)"0 <= i <= 10",15); /*@ loop invariant 0 ≤ i ≤ 10; */ while (i < 10) { { @@ -96,17 +56,17 @@ void nested_loops(void) if (__e_acsl_l < j) ; else break; e_acsl_assert(__e_acsl_l < 15,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: __e_acsl_l < 15",21); + (char *)"index_bound: __e_acsl_l < 15",19); e_acsl_assert(0 <= __e_acsl_l,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: 0 <= __e_acsl_l",21); + (char *)"index_bound: 0 <= __e_acsl_l",19); e_acsl_assert(__e_acsl_k < 10,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: __e_acsl_k < 10",21); + (char *)"index_bound: __e_acsl_k < 10",19); e_acsl_assert(0 <= __e_acsl_k,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: 0 <= __e_acsl_k",21); - if ((long long)t[__e_acsl_k][__e_acsl_l] == (long long)__e_acsl_k * (long long)__e_acsl_l) + (char *)"index_bound: 0 <= __e_acsl_k",19); + if ((long)t[__e_acsl_k][__e_acsl_l] == (long)__e_acsl_k * (long)__e_acsl_l) ; else { __e_acsl_forall = 0; @@ -120,10 +80,10 @@ void nested_loops(void) e_acsl_assert(__e_acsl_forall,(char *)"Invariant", (char *)"nested_loops", (char *)"\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k*l", - 21); + 19); if (0 <= j) __e_acsl_and_2 = j <= 15; else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= j <= 15",19); + (char *)"nested_loops",(char *)"0 <= j <= 15",17); /*@ loop invariant 0 ≤ j ≤ 15; loop invariant ∀ ℤ k, ℤ l; @@ -139,7 +99,7 @@ void nested_loops(void) j ++; if (0 <= j) __e_acsl_and_3 = j <= 15; else __e_acsl_and_3 = 0; e_acsl_assert(__e_acsl_and_3,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= j <= 15",19); + (char *)"nested_loops",(char *)"0 <= j <= 15",17); __e_acsl_forall_2 = 1; __e_acsl_k_2 = 0; while (1) { @@ -149,17 +109,21 @@ void nested_loops(void) if (__e_acsl_l_2 < j) ; else break; e_acsl_assert(__e_acsl_l_2 < 15,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: __e_acsl_l_2 < 15",21); + (char *)"index_bound: __e_acsl_l_2 < 15",19); e_acsl_assert(0 <= __e_acsl_l_2,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: 0 <= __e_acsl_l_2",21); + (char *)"index_bound: 0 <= __e_acsl_l_2",19); e_acsl_assert(__e_acsl_k_2 < 10,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: __e_acsl_k_2 < 10",21); + (char *)"index_bound: __e_acsl_k_2 < 10",19); e_acsl_assert(0 <= __e_acsl_k_2,(char *)"RTE", (char *)"nested_loops", - (char *)"index_bound: 0 <= __e_acsl_k_2",21); - if ((long long)t[__e_acsl_k_2][__e_acsl_l_2] == (long long)__e_acsl_k_2 * (long long)__e_acsl_l_2) + (char *)"index_bound: 0 <= __e_acsl_k_2",19); + /*@ assert + Value: initialisation: + \initialized(&t[__e_acsl_k_2][__e_acsl_l_2]); + */ + if ((long)t[__e_acsl_k_2][__e_acsl_l_2] == (long)__e_acsl_k_2 * (long)__e_acsl_l_2) ; else { __e_acsl_forall_2 = 0; @@ -173,7 +137,7 @@ void nested_loops(void) e_acsl_assert(__e_acsl_forall_2,(char *)"Invariant", (char *)"nested_loops", (char *)"\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k*l", - 21); + 19); } } } @@ -183,7 +147,7 @@ void nested_loops(void) i ++; if (0 <= i) __e_acsl_and_4 = i <= 10; else __e_acsl_and_4 = 0; e_acsl_assert(__e_acsl_and_4,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= i <= 10",17); + (char *)"nested_loops",(char *)"0 <= i <= 10",15); } } } @@ -201,7 +165,7 @@ void unnatural_loop(void) int __e_acsl_and; if (0 <= i) __e_acsl_and = i <= 6; else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"Invariant", - (char *)"unnatural_loop",(char *)"0 <= i <= 6",28); + (char *)"unnatural_loop",(char *)"0 <= i <= 6",26); /*@ loop invariant 0 ≤ i ≤ 6; */ while (i < 10) { if (x == 5) break; @@ -211,7 +175,7 @@ void unnatural_loop(void) i ++; if (0 <= i) __e_acsl_and_2 = i <= 6; else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"unnatural_loop",(char *)"0 <= i <= 6",28); + (char *)"unnatural_loop",(char *)"0 <= i <= 6",26); } } } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop2.c deleted file mode 100644 index 789eeed6d95e0b685bb1d007b18b5755f6f1e4ff..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_loop2.c +++ /dev/null @@ -1,580 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -void simple_loop(void) -{ - int sum; - sum = 0; - { - int i; - i = 0; - { - mpz_t __e_acsl; - mpz_t __e_acsl_i; - int __e_acsl_le; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_init_set_si(__e_acsl_i,(long)i); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_i)); - if (__e_acsl_le <= 0) { - mpz_t __e_acsl_i_2; - mpz_t __e_acsl_2; - int __e_acsl_le_2; - __gmpz_init_set_si(__e_acsl_i_2,(long)i); - __gmpz_init_set_si(__e_acsl_2,(long)10); - __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_and = __e_acsl_le_2 <= 0; - __gmpz_clear(__e_acsl_i_2); - __gmpz_clear(__e_acsl_2); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"simple_loop", - (char *)"0 <= i <= 10",10); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_i); - /*@ loop invariant 0 ≤ i ≤ 10; */ - while (i < 10) { - sum += i; - { - mpz_t __e_acsl_3; - mpz_t __e_acsl_i_3; - int __e_acsl_le_3; - int __e_acsl_and_2; - i ++; - __gmpz_init_set_si(__e_acsl_3,(long)0); - __gmpz_init_set_si(__e_acsl_i_3,(long)i); - __e_acsl_le_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_i_3)); - if (__e_acsl_le_3 <= 0) { - mpz_t __e_acsl_i_4; - mpz_t __e_acsl_4; - int __e_acsl_le_4; - __gmpz_init_set_si(__e_acsl_i_4,(long)i); - __gmpz_init_set_si(__e_acsl_4,(long)10); - __e_acsl_le_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_4), - (__mpz_struct const *)(__e_acsl_4)); - __e_acsl_and_2 = __e_acsl_le_4 <= 0; - __gmpz_clear(__e_acsl_i_4); - __gmpz_clear(__e_acsl_4); - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"simple_loop",(char *)"0 <= i <= 10",10); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_i_3); - } - } - } - } - return; -} - -void nested_loops(void) -{ - int t[10][15]; - int i; - i = 0; - { - mpz_t __e_acsl; - mpz_t __e_acsl_i; - int __e_acsl_le; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_init_set_si(__e_acsl_i,(long)i); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_i)); - if (__e_acsl_le <= 0) { - mpz_t __e_acsl_i_2; - mpz_t __e_acsl_2; - int __e_acsl_le_2; - __gmpz_init_set_si(__e_acsl_i_2,(long)i); - __gmpz_init_set_si(__e_acsl_2,(long)10); - __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_and = __e_acsl_le_2 <= 0; - __gmpz_clear(__e_acsl_i_2); - __gmpz_clear(__e_acsl_2); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Invariant",(char *)"nested_loops", - (char *)"0 <= i <= 10",17); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_i); - /*@ loop invariant 0 ≤ i ≤ 10; */ - while (i < 10) { - { - int j; - j = 0; - { - int __e_acsl_forall; - mpz_t __e_acsl_k; - mpz_t __e_acsl_l; - mpz_t __e_acsl_8; - mpz_t __e_acsl_j_2; - int __e_acsl_le_3; - int __e_acsl_and_2; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_k); - __gmpz_init(__e_acsl_l); - { - mpz_t __e_acsl_6; - __gmpz_init_set_si(__e_acsl_6,(long)0); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl_6)); - __gmpz_clear(__e_acsl_6); - } - while (1) { - { - mpz_t __e_acsl_i_3; - int __e_acsl_lt_2; - __gmpz_init_set_si(__e_acsl_i_3,(long)i); - __e_acsl_lt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_i_3)); - if (__e_acsl_lt_2 < 0) ; else break; - __gmpz_clear(__e_acsl_i_3); - } - { - mpz_t __e_acsl_4; - __gmpz_init_set_si(__e_acsl_4,(long)0); - __gmpz_set(__e_acsl_l,(__mpz_struct const *)(__e_acsl_4)); - __gmpz_clear(__e_acsl_4); - } - while (1) { - { - mpz_t __e_acsl_j; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_j,(long)j); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_l), - (__mpz_struct const *)(__e_acsl_j)); - if (__e_acsl_lt < 0) ; else break; - __gmpz_clear(__e_acsl_j); - } - { - unsigned long __e_acsl_k_2; - unsigned long __e_acsl_l_2; - mpz_t __e_acsl_3; - mpz_t __e_acsl_mul; - int __e_acsl_eq; - __e_acsl_k_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_k)); - __e_acsl_l_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_l)); - __gmpz_init_set_si(__e_acsl_3, - (long)t[__e_acsl_k_2][__e_acsl_l_2]); - __gmpz_init(__e_acsl_mul); - __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_l)); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_mul)); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_mul); - if (__e_acsl_eq == 0) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop1; - } - } - { - mpz_t __e_acsl_5; - mpz_t __e_acsl_add; - __gmpz_init_set_si(__e_acsl_5,1L); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_l), - (__mpz_struct const *)(__e_acsl_5)); - __gmpz_set(__e_acsl_l,(__mpz_struct const *)(__e_acsl_add)); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_add); - } - } - { - mpz_t __e_acsl_7; - mpz_t __e_acsl_add_2; - __gmpz_init_set_si(__e_acsl_7,1L); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_7)); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl_add_2)); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_add_2); - } - } - e_acsl_end_loop1: ; - e_acsl_assert(__e_acsl_forall,(char *)"Invariant", - (char *)"nested_loops", - (char *)"\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k*l", - 21); - __gmpz_init_set_si(__e_acsl_8,(long)0); - __gmpz_init_set_si(__e_acsl_j_2,(long)j); - __e_acsl_le_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_8), - (__mpz_struct const *)(__e_acsl_j_2)); - if (__e_acsl_le_3 <= 0) { - mpz_t __e_acsl_j_3; - mpz_t __e_acsl_9; - int __e_acsl_le_4; - __gmpz_init_set_si(__e_acsl_j_3,(long)j); - __gmpz_init_set_si(__e_acsl_9,(long)15); - __e_acsl_le_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_j_3), - (__mpz_struct const *)(__e_acsl_9)); - __e_acsl_and_2 = __e_acsl_le_4 <= 0; - __gmpz_clear(__e_acsl_j_3); - __gmpz_clear(__e_acsl_9); - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= j <= 15",19); - __gmpz_clear(__e_acsl_k); - __gmpz_clear(__e_acsl_l); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_j_2); - /*@ loop invariant 0 ≤ j ≤ 15; - loop invariant - ∀ ℤ k, ℤ l; - 0 ≤ k < i ∧ 0 ≤ l < j ⇒ t[k][l] ≡ k*l; - */ - while (j < 15) { - t[i][j] = i * j; - { - mpz_t __e_acsl_10; - mpz_t __e_acsl_j_4; - int __e_acsl_le_5; - int __e_acsl_and_3; - int __e_acsl_forall_2; - mpz_t __e_acsl_k_3; - mpz_t __e_acsl_l_3; - j ++; - __gmpz_init_set_si(__e_acsl_10,(long)0); - __gmpz_init_set_si(__e_acsl_j_4,(long)j); - __e_acsl_le_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_10), - (__mpz_struct const *)(__e_acsl_j_4)); - if (__e_acsl_le_5 <= 0) { - mpz_t __e_acsl_j_5; - mpz_t __e_acsl_11; - int __e_acsl_le_6; - __gmpz_init_set_si(__e_acsl_j_5,(long)j); - __gmpz_init_set_si(__e_acsl_11,(long)15); - __e_acsl_le_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_j_5), - (__mpz_struct const *)(__e_acsl_11)); - __e_acsl_and_3 = __e_acsl_le_6 <= 0; - __gmpz_clear(__e_acsl_j_5); - __gmpz_clear(__e_acsl_11); - } - else __e_acsl_and_3 = 0; - e_acsl_assert(__e_acsl_and_3,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= j <= 15",19); - __e_acsl_forall_2 = 1; - __gmpz_init(__e_acsl_k_3); - __gmpz_init(__e_acsl_l_3); - { - mpz_t __e_acsl_15; - __gmpz_init_set_si(__e_acsl_15,(long)0); - __gmpz_set(__e_acsl_k_3,(__mpz_struct const *)(__e_acsl_15)); - __gmpz_clear(__e_acsl_15); - } - while (1) { - { - mpz_t __e_acsl_i_4; - int __e_acsl_lt_4; - __gmpz_init_set_si(__e_acsl_i_4,(long)i); - __e_acsl_lt_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_i_4)); - if (__e_acsl_lt_4 < 0) ; else break; - __gmpz_clear(__e_acsl_i_4); - } - { - mpz_t __e_acsl_13; - __gmpz_init_set_si(__e_acsl_13,(long)0); - __gmpz_set(__e_acsl_l_3, - (__mpz_struct const *)(__e_acsl_13)); - __gmpz_clear(__e_acsl_13); - } - while (1) { - { - mpz_t __e_acsl_j_6; - int __e_acsl_lt_3; - __gmpz_init_set_si(__e_acsl_j_6,(long)j); - __e_acsl_lt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_l_3), - (__mpz_struct const *)(__e_acsl_j_6)); - if (__e_acsl_lt_3 < 0) ; else break; - __gmpz_clear(__e_acsl_j_6); - } - { - unsigned long __e_acsl_k_4; - unsigned long __e_acsl_l_4; - mpz_t __e_acsl_12; - mpz_t __e_acsl_mul_2; - int __e_acsl_eq_2; - __e_acsl_k_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_k_3)); - __e_acsl_l_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_l_3)); - __gmpz_init_set_si(__e_acsl_12, - (long)t[__e_acsl_k_4][__e_acsl_l_4]); - __gmpz_init(__e_acsl_mul_2); - __gmpz_mul(__e_acsl_mul_2, - (__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_l_3)); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_12), - (__mpz_struct const *)(__e_acsl_mul_2)); - __gmpz_clear(__e_acsl_12); - __gmpz_clear(__e_acsl_mul_2); - if (__e_acsl_eq_2 == 0) ; - else { - __e_acsl_forall_2 = 0; - goto e_acsl_end_loop2; - } - } - { - mpz_t __e_acsl_14; - mpz_t __e_acsl_add_3; - __gmpz_init_set_si(__e_acsl_14,1L); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3, - (__mpz_struct const *)(__e_acsl_l_3), - (__mpz_struct const *)(__e_acsl_14)); - __gmpz_set(__e_acsl_l_3, - (__mpz_struct const *)(__e_acsl_add_3)); - __gmpz_clear(__e_acsl_14); - __gmpz_clear(__e_acsl_add_3); - } - } - { - mpz_t __e_acsl_16; - mpz_t __e_acsl_add_4; - __gmpz_init_set_si(__e_acsl_16,1L); - __gmpz_init(__e_acsl_add_4); - __gmpz_add(__e_acsl_add_4, - (__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_16)); - __gmpz_set(__e_acsl_k_3, - (__mpz_struct const *)(__e_acsl_add_4)); - __gmpz_clear(__e_acsl_16); - __gmpz_clear(__e_acsl_add_4); - } - } - e_acsl_end_loop2: ; - e_acsl_assert(__e_acsl_forall_2,(char *)"Invariant", - (char *)"nested_loops", - (char *)"\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k*l", - 21); - __gmpz_clear(__e_acsl_10); - __gmpz_clear(__e_acsl_j_4); - __gmpz_clear(__e_acsl_k_3); - __gmpz_clear(__e_acsl_l_3); - } - } - } - } - { - mpz_t __e_acsl_17; - mpz_t __e_acsl_i_5; - int __e_acsl_le_7; - int __e_acsl_and_4; - i ++; - __gmpz_init_set_si(__e_acsl_17,(long)0); - __gmpz_init_set_si(__e_acsl_i_5,(long)i); - __e_acsl_le_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_17), - (__mpz_struct const *)(__e_acsl_i_5)); - if (__e_acsl_le_7 <= 0) { - mpz_t __e_acsl_i_6; - mpz_t __e_acsl_18; - int __e_acsl_le_8; - __gmpz_init_set_si(__e_acsl_i_6,(long)i); - __gmpz_init_set_si(__e_acsl_18,(long)10); - __e_acsl_le_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_6), - (__mpz_struct const *)(__e_acsl_18)); - __e_acsl_and_4 = __e_acsl_le_8 <= 0; - __gmpz_clear(__e_acsl_i_6); - __gmpz_clear(__e_acsl_18); - } - else __e_acsl_and_4 = 0; - e_acsl_assert(__e_acsl_and_4,(char *)"Invariant", - (char *)"nested_loops",(char *)"0 <= i <= 10",17); - __gmpz_clear(__e_acsl_17); - __gmpz_clear(__e_acsl_i_5); - } - } - } - return; -} - -void unnatural_loop(void) -{ - int x; - x = 0; - { - int i; - i = 0; - { - mpz_t __e_acsl; - mpz_t __e_acsl_i; - int __e_acsl_le; - int __e_acsl_and; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_init_set_si(__e_acsl_i,(long)i); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_i)); - if (__e_acsl_le <= 0) { - mpz_t __e_acsl_i_2; - mpz_t __e_acsl_2; - int __e_acsl_le_2; - __gmpz_init_set_si(__e_acsl_i_2,(long)i); - __gmpz_init_set_si(__e_acsl_2,(long)6); - __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_2), - (__mpz_struct const *)(__e_acsl_2)); - __e_acsl_and = __e_acsl_le_2 <= 0; - __gmpz_clear(__e_acsl_i_2); - __gmpz_clear(__e_acsl_2); - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"Invariant", - (char *)"unnatural_loop",(char *)"0 <= i <= 6",28); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_i); - /*@ loop invariant 0 ≤ i ≤ 6; */ - while (i < 10) { - if (x == 5) break; - x = i; - { - mpz_t __e_acsl_3; - mpz_t __e_acsl_i_3; - int __e_acsl_le_3; - int __e_acsl_and_2; - i ++; - __gmpz_init_set_si(__e_acsl_3,(long)0); - __gmpz_init_set_si(__e_acsl_i_3,(long)i); - __e_acsl_le_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_i_3)); - if (__e_acsl_le_3 <= 0) { - mpz_t __e_acsl_i_4; - mpz_t __e_acsl_4; - int __e_acsl_le_4; - __gmpz_init_set_si(__e_acsl_i_4,(long)i); - __gmpz_init_set_si(__e_acsl_4,(long)6); - __e_acsl_le_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_i_4), - (__mpz_struct const *)(__e_acsl_4)); - __e_acsl_and_2 = __e_acsl_le_4 <= 0; - __gmpz_clear(__e_acsl_i_4); - __gmpz_clear(__e_acsl_4); - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Invariant", - (char *)"unnatural_loop",(char *)"0 <= i <= 6",28); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_i_3); - } - } - } - } - return; -} - -int main(void) -{ - int __retres; - simple_loop(); - nested_loops(); - unnatural_loop(); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c index 0e669f9d45241b210c1f25cf89653692f1ac1e94..1fd39b676a07646ed4693ea0c289f88ce0845b0f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c @@ -1,406 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef int wchar_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __init_args(int argc_ref, - char **argv_ref); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ \block_length(\old(ptr)); - assigns \result; - assigns \result \from ptr; - */ -extern __attribute__((__FC_BUILTIN__)) size_t __block_length(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ -axiomatic MemCmp { - logic ℤ memcmp{L1, L2}(char *s1, char *s2, ℤ n) - reads \at(*(s1+(0 .. n-1)),L1), \at(*(s2+(0 .. n-1)),L2); - - axiom memcmp_zero{L1, L2}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L1, L2}(s1, s2, n) ≡ 0 ⇔ - (∀ ℤ i; 0 ≤ i < n ⇒ \at(*(s1+i),L1) ≡ \at(*(s2+i),L2)); - - } - */ -/*@ -axiomatic MemChr { - logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) - reads *(s+(0 .. n-1)); - - axiom memchr_def{L}: - ∀ char *s; - ∀ ℤ c; - ∀ ℤ n; - memchr{L}(s, c, n) ≡ \true ⇔ - (∃ int i; 0 ≤ i < n ∧ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic MemSet { - logic 𔹠memset{L}(char *s, ℤ c, ℤ n) - reads *(s+(0 .. n-1)); - - axiom memset_def{L}: - ∀ char *s; - ∀ ℤ c; - ∀ ℤ n; - memset{L}(s, c, n) ≡ \true ⇔ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic StrLen { - logic ℤ strlen{L}(char *s) - reads *(s+(0 ..)); - - axiom strlen_pos_or_null{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ∧ (∀ ℤ j; 0 ≤ j < i ⇒ *(s+j) ≢ '\000') ∧ - *(s+i) ≡ '\000' ⇒ strlen{L}(s) ≡ i; - - axiom strlen_neg{L}: - ∀ char *s; - (∀ ℤ i; 0 ≤ i ⇒ *(s+i) ≢ '\000') ⇒ strlen{L}(s) < 0; - - axiom strlen_before_null{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i < strlen{L}(s) ⇒ *(s+i) ≢ '\000'; - - axiom strlen_at_null{L}: - ∀ char *s; 0 ≤ strlen{L}(s) ⇒ *(s+strlen{L}(s)) ≡ '\000'; - - axiom strlen_not_zero{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≢ '\000' ⇒ i < strlen{L}(s); - - axiom strlen_zero{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≡ '\000' ⇒ i ≡ strlen{L}(s); - - axiom strlen_sup{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s) ≤ i; - - axiom strlen_shift{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ≤ strlen{L}(s) ⇒ strlen{L}(s+i) ≡ strlen{L}(s)-i; - - axiom strlen_create{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s) ≤ i; - - axiom strlen_create_shift{L}: - ∀ char *s; - ∀ ℤ i; - ∀ ℤ k; - 0 ≤ k ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s+k) ≤ i-k; - - axiom memcmp_strlen_left{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L, L}(s1, s2, n) ≡ 0 ∧ strlen{L}(s1) < n ⇒ - strlen{L}(s1) ≡ strlen{L}(s2); - - axiom memcmp_strlen_right{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L, L}(s1, s2, n) ≡ 0 ∧ strlen{L}(s2) < n ⇒ - strlen{L}(s1) ≡ strlen{L}(s2); - - axiom memcmp_strlen_shift_left{L}: - ∀ char *s1, char *s2; - ∀ ℤ k, ℤ n; - memcmp{L, L}(s1, s2+k, n) ≡ 0 ≤ k ∧ strlen{L}(s1) < n ⇒ - 0 ≤ strlen{L}(s2) ≤ k+strlen{L}(s1); - - axiom memcmp_strlen_shift_right{L}: - ∀ char *s1, char *s2; - ∀ ℤ k, ℤ n; - memcmp{L, L}(s1+k, s2, n) ≡ 0 ≤ k ∧ strlen{L}(s2) < n ⇒ - 0 ≤ strlen{L}(s1) ≤ k+strlen{L}(s2); - - } - */ -/*@ -axiomatic StrCmp { - logic ℤ strcmp{L}(char *s1, char *s2) - reads *(s1+(0 .. strlen{L}(s1))), *(s2+(0 .. strlen{L}(s2))); - - axiom strcmp_zero{L}: - ∀ char *s1, char *s2; - strcmp{L}(s1, s2) ≡ 0 ⇔ - strlen{L}(s1) ≡ strlen{L}(s2) ∧ - (∀ ℤ i; 0 ≤ i ≤ strlen{L}(s1) ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic StrNCmp { - logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) - reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); - - axiom strncmp_zero{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - strncmp{L}(s1, s2, n) ≡ 0 ⇔ - (strlen{L}(s1) < n ∧ strcmp{L}(s1, s2) ≡ 0) ∨ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic StrChr { - logic 𔹠strchr{L}(char *s, ℤ c) - reads *(s+(0 .. strlen{L}(s))); - - axiom strchr_def{L}: - ∀ char *s; - ∀ ℤ c; - strchr{L}(s, c) ≡ \true ⇔ - (∃ ℤ i; 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic WcsLen { - logic ℤ wcslen{L}(wchar_t *s) - reads *(s+(0 ..)); - - axiom wcslen_pos_or_null{L}: - ∀ wchar_t *s; - ∀ ℤ i; - 0 ≤ i ∧ (∀ ℤ j; 0 ≤ j < i ⇒ *(s+j) ≢ 0) ∧ *(s+i) ≡ 0 ⇒ - wcslen{L}(s) ≡ i; - - axiom wcslen_neg{L}: - ∀ wchar_t *s; - (∀ ℤ i; 0 ≤ i ⇒ *(s+i) ≢ 0) ⇒ wcslen{L}(s) < 0; - - axiom wcslen_before_null{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i < wcslen{L}(s) ⇒ *(s+i) ≢ 0; - - axiom wcslen_at_null{L}: - ∀ wchar_t *s; 0 ≤ wcslen{L}(s) ⇒ *(s+wcslen{L}(s)) ≡ 0; - - axiom wcslen_not_zero{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ≤ wcslen{L}(s) ∧ *(s+i) ≢ 0 ⇒ i < wcslen{L}(s); - - axiom wcslen_zero{L}: - ∀ wchar_t *s; - ∀ int i; - 0 ≤ i ≤ wcslen{L}(s) ∧ *(s+i) ≡ 0 ⇒ i ≡ wcslen{L}(s); - - axiom wcslen_sup{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s) ≤ i; - - axiom wcslen_shift{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ≤ wcslen{L}(s) ⇒ wcslen{L}(s+i) ≡ wcslen{L}(s)-i; - - axiom wcslen_create{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s) ≤ i; - - axiom wcslen_create_shift{L}: - ∀ wchar_t *s; - ∀ int i; - ∀ int k; - 0 ≤ k ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s+k) ≤ i-k; - - } - */ -/*@ -axiomatic WcsCmp { - logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) - reads *(s1+(0 .. wcslen{L}(s1))), *(s2+(0 .. wcslen{L}(s2))); - - axiom wcscmp_zero{L}: - ∀ wchar_t *s1, wchar_t *s2; - wcscmp{L}(s1, s2) ≡ 0 ⇔ - wcslen{L}(s1) ≡ wcslen{L}(s2) ∧ - (∀ ℤ i; 0 ≤ i ≤ wcslen{L}(s1) ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic WcsNCmp { - logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) - reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); - - axiom wcsncmp_zero{L}: - ∀ wchar_t *s1, wchar_t *s2; - ∀ ℤ n; - wcsncmp{L}(s1, s2, n) ≡ 0 ⇔ - (wcslen{L}(s1) < n ∧ wcscmp{L}(s1, s2) ≡ 0) ∨ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ logic ℤ minimum(ℤ i, ℤ j) = i<j? i: j; - */ -/*@ logic ℤ maximum(ℤ i, ℤ j) = i<j? j: i; - */ -/*@ -predicate valid_string{L}(char *s) = - 0 ≤ strlen{L}(s) ∧ \valid{L}(s+(0 .. strlen{L}(s))); - */ -/*@ -predicate valid_read_string{L}(char *s) = - 0 ≤ strlen{L}(s) ∧ \valid_read{L}(s+(0 .. strlen{L}(s))); - */ -/*@ -predicate valid_string_or_null{L}(char *s) = - s ≡ \null ∨ valid_string{L}(s); - */ -/*@ -predicate valid_wstring{L}(wchar_t *s) = - 0 ≤ wcslen{L}(s) ∧ \valid{L}(s+(0 .. wcslen{L}(s))); - */ -/*@ -predicate valid_wstring_or_null{L}(wchar_t *s) = - s ≡ \null ∨ valid_wstring{L}(s); - */ -/*@ requires valid_string_src: valid_read_string(s); - ensures \result ≡ strlen(\old(s)); - assigns \result; - assigns \result \from *(s+(0 ..)); - */ -extern size_t strlen(char const *s); - -/*@ requires valid_string_src: valid_read_string(s); - ensures \result ≡ strlen(\old(s)); - assigns \result; - assigns \result \from *(s+(0 ..)); - */ -size_t __e_acsl_strlen(char const *s) -{ - size_t __retres; - __store_block((void *)(& s),8UL); - __retres = strlen(s); - __delete_block((void *)(& s)); - return __retres; -} - int main(int argc, char **argv) { int __retres; @@ -413,14 +11,14 @@ int main(int argc, char **argv) __store_block((void *)(& argv),8UL); __e_acsl_valid = __valid((void *)(& argc),sizeof(int)); e_acsl_assert(__e_acsl_valid,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&argc)",12); + (char *)"\\valid(&argc)",10); } /*@ assert \valid(&argv); */ { int __e_acsl_valid_2; __e_acsl_valid_2 = __valid((void *)(& argv),sizeof(char **)); e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&argv)",13); + (char *)"\\valid(&argv)",11); } /*@ assert ∀ int k; 0 ≤ k < argc ⇒ \valid(argv+k); */ { @@ -445,7 +43,7 @@ int main(int argc, char **argv) e_acsl_end_loop1: ; e_acsl_assert(__e_acsl_forall,(char *)"Assertion",(char *)"main", (char *)"\\forall int k; 0 <= k < argc ==> \\valid(argv+k)", - 14); + 12); } /*@ assert \block_length(argv) ≡ (argc+1)*sizeof(char *); */ { @@ -460,7 +58,7 @@ int main(int argc, char **argv) (__mpz_struct const *)(__e_acsl)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", (char *)"\\block_length(argv) == (argc+1)*sizeof(char *)", - 15); + 13); __gmpz_clear(__e_acsl_block_length_2); __gmpz_clear(__e_acsl); } @@ -469,9 +67,10 @@ int main(int argc, char **argv) int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)(argv + argc),sizeof(char *)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+argc)",17); + (char *)"mem_access: \\valid_read(argv+argc)",15); + /*@ assert Value: mem_access: \valid_read(argv+argc); */ e_acsl_assert(*(argv + argc) == (void *)0,(char *)"Assertion", - (char *)"main",(char *)"*(argv+argc) == \\null",17); + (char *)"main",(char *)"*(argv+argc) == \\null",15); } /*@ assert ¬\valid(*(argv+argc)); */ { @@ -485,13 +84,14 @@ int main(int argc, char **argv) __e_acsl_valid_read_2 = __valid_read((void *)(argv + argc), sizeof(char *)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+argc)",18); + (char *)"mem_access: \\valid_read(argv+argc)",16); + /*@ assert Value: mem_access: \valid_read(argv+argc); */ __e_acsl_valid_4 = __valid((void *)*(argv + argc),sizeof(char)); __e_acsl_and = __e_acsl_valid_4; } else __e_acsl_and = 0; e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(*(argv+argc))",18); + (char *)"!\\valid(*(argv+argc))",16); } i = 0; while (i < argc) { @@ -512,13 +112,13 @@ int main(int argc, char **argv) __e_acsl_valid_read_3 = __valid_read((void *)(argv + i), sizeof(char *)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+i)",21); + (char *)"mem_access: \\valid_read(argv+i)",19); __e_acsl_valid_5 = __valid((void *)*(argv + i),sizeof(char)); __e_acsl_and_2 = __e_acsl_valid_5; } else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*(argv+i))",21); + (char *)"\\valid(*(argv+i))",19); } /*@ assert ∀ int k; 0 ≤ k ≤ len ⇒ \valid(*(argv+i)+k); */ { @@ -534,7 +134,7 @@ int main(int argc, char **argv) __e_acsl_valid_read_4 = __valid_read((void *)(argv + i), sizeof(char *)); e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+i)",22); + (char *)"mem_access: \\valid_read(argv+i)",20); __e_acsl_valid_6 = __valid((void *)(*(argv + i) + __e_acsl_k_2), sizeof(char)); if (__e_acsl_valid_6) ; @@ -548,7 +148,7 @@ int main(int argc, char **argv) e_acsl_end_loop2: ; e_acsl_assert(__e_acsl_forall_2,(char *)"Assertion",(char *)"main", (char *)"\\forall int k; 0 <= k <= len ==> \\valid(*(argv+i)+k)", - 22); + 20); } } i ++; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c deleted file mode 100644 index 5af50703b3d18eca6c754877a78efdba183a27ff..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c +++ /dev/null @@ -1,676 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef int wchar_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __init_args(int argc_ref, - char **argv_ref); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ \block_length(\old(ptr)); - assigns \result; - assigns \result \from ptr; - */ -extern __attribute__((__FC_BUILTIN__)) size_t __block_length(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ -axiomatic MemCmp { - logic ℤ memcmp{L1, L2}(char *s1, char *s2, ℤ n) - reads \at(*(s1+(0 .. n-1)),L1), \at(*(s2+(0 .. n-1)),L2); - - axiom memcmp_zero{L1, L2}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L1, L2}(s1, s2, n) ≡ 0 ⇔ - (∀ ℤ i; 0 ≤ i < n ⇒ \at(*(s1+i),L1) ≡ \at(*(s2+i),L2)); - - } - */ -/*@ -axiomatic MemChr { - logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) - reads *(s+(0 .. n-1)); - - axiom memchr_def{L}: - ∀ char *s; - ∀ ℤ c; - ∀ ℤ n; - memchr{L}(s, c, n) ≡ \true ⇔ - (∃ int i; 0 ≤ i < n ∧ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic MemSet { - logic 𔹠memset{L}(char *s, ℤ c, ℤ n) - reads *(s+(0 .. n-1)); - - axiom memset_def{L}: - ∀ char *s; - ∀ ℤ c; - ∀ ℤ n; - memset{L}(s, c, n) ≡ \true ⇔ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic StrLen { - logic ℤ strlen{L}(char *s) - reads *(s+(0 ..)); - - axiom strlen_pos_or_null{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ∧ (∀ ℤ j; 0 ≤ j < i ⇒ *(s+j) ≢ '\000') ∧ - *(s+i) ≡ '\000' ⇒ strlen{L}(s) ≡ i; - - axiom strlen_neg{L}: - ∀ char *s; - (∀ ℤ i; 0 ≤ i ⇒ *(s+i) ≢ '\000') ⇒ strlen{L}(s) < 0; - - axiom strlen_before_null{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i < strlen{L}(s) ⇒ *(s+i) ≢ '\000'; - - axiom strlen_at_null{L}: - ∀ char *s; 0 ≤ strlen{L}(s) ⇒ *(s+strlen{L}(s)) ≡ '\000'; - - axiom strlen_not_zero{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≢ '\000' ⇒ i < strlen{L}(s); - - axiom strlen_zero{L}: - ∀ char *s; - ∀ ℤ i; - 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≡ '\000' ⇒ i ≡ strlen{L}(s); - - axiom strlen_sup{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s) ≤ i; - - axiom strlen_shift{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ≤ strlen{L}(s) ⇒ strlen{L}(s+i) ≡ strlen{L}(s)-i; - - axiom strlen_create{L}: - ∀ char *s; - ∀ ℤ i; 0 ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s) ≤ i; - - axiom strlen_create_shift{L}: - ∀ char *s; - ∀ ℤ i; - ∀ ℤ k; - 0 ≤ k ≤ i ∧ *(s+i) ≡ '\000' ⇒ 0 ≤ strlen{L}(s+k) ≤ i-k; - - axiom memcmp_strlen_left{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L, L}(s1, s2, n) ≡ 0 ∧ strlen{L}(s1) < n ⇒ - strlen{L}(s1) ≡ strlen{L}(s2); - - axiom memcmp_strlen_right{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - memcmp{L, L}(s1, s2, n) ≡ 0 ∧ strlen{L}(s2) < n ⇒ - strlen{L}(s1) ≡ strlen{L}(s2); - - axiom memcmp_strlen_shift_left{L}: - ∀ char *s1, char *s2; - ∀ ℤ k, ℤ n; - memcmp{L, L}(s1, s2+k, n) ≡ 0 ≤ k ∧ strlen{L}(s1) < n ⇒ - 0 ≤ strlen{L}(s2) ≤ k+strlen{L}(s1); - - axiom memcmp_strlen_shift_right{L}: - ∀ char *s1, char *s2; - ∀ ℤ k, ℤ n; - memcmp{L, L}(s1+k, s2, n) ≡ 0 ≤ k ∧ strlen{L}(s2) < n ⇒ - 0 ≤ strlen{L}(s1) ≤ k+strlen{L}(s2); - - } - */ -/*@ -axiomatic StrCmp { - logic ℤ strcmp{L}(char *s1, char *s2) - reads *(s1+(0 .. strlen{L}(s1))), *(s2+(0 .. strlen{L}(s2))); - - axiom strcmp_zero{L}: - ∀ char *s1, char *s2; - strcmp{L}(s1, s2) ≡ 0 ⇔ - strlen{L}(s1) ≡ strlen{L}(s2) ∧ - (∀ ℤ i; 0 ≤ i ≤ strlen{L}(s1) ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic StrNCmp { - logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) - reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); - - axiom strncmp_zero{L}: - ∀ char *s1, char *s2; - ∀ ℤ n; - strncmp{L}(s1, s2, n) ≡ 0 ⇔ - (strlen{L}(s1) < n ∧ strcmp{L}(s1, s2) ≡ 0) ∨ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic StrChr { - logic 𔹠strchr{L}(char *s, ℤ c) - reads *(s+(0 .. strlen{L}(s))); - - axiom strchr_def{L}: - ∀ char *s; - ∀ ℤ c; - strchr{L}(s, c) ≡ \true ⇔ - (∃ ℤ i; 0 ≤ i ≤ strlen{L}(s) ∧ *(s+i) ≡ c); - - } - */ -/*@ -axiomatic WcsLen { - logic ℤ wcslen{L}(wchar_t *s) - reads *(s+(0 ..)); - - axiom wcslen_pos_or_null{L}: - ∀ wchar_t *s; - ∀ ℤ i; - 0 ≤ i ∧ (∀ ℤ j; 0 ≤ j < i ⇒ *(s+j) ≢ 0) ∧ *(s+i) ≡ 0 ⇒ - wcslen{L}(s) ≡ i; - - axiom wcslen_neg{L}: - ∀ wchar_t *s; - (∀ ℤ i; 0 ≤ i ⇒ *(s+i) ≢ 0) ⇒ wcslen{L}(s) < 0; - - axiom wcslen_before_null{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i < wcslen{L}(s) ⇒ *(s+i) ≢ 0; - - axiom wcslen_at_null{L}: - ∀ wchar_t *s; 0 ≤ wcslen{L}(s) ⇒ *(s+wcslen{L}(s)) ≡ 0; - - axiom wcslen_not_zero{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ≤ wcslen{L}(s) ∧ *(s+i) ≢ 0 ⇒ i < wcslen{L}(s); - - axiom wcslen_zero{L}: - ∀ wchar_t *s; - ∀ int i; - 0 ≤ i ≤ wcslen{L}(s) ∧ *(s+i) ≡ 0 ⇒ i ≡ wcslen{L}(s); - - axiom wcslen_sup{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s) ≤ i; - - axiom wcslen_shift{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ≤ wcslen{L}(s) ⇒ wcslen{L}(s+i) ≡ wcslen{L}(s)-i; - - axiom wcslen_create{L}: - ∀ wchar_t *s; - ∀ int i; 0 ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s) ≤ i; - - axiom wcslen_create_shift{L}: - ∀ wchar_t *s; - ∀ int i; - ∀ int k; - 0 ≤ k ≤ i ∧ *(s+i) ≡ 0 ⇒ 0 ≤ wcslen{L}(s+k) ≤ i-k; - - } - */ -/*@ -axiomatic WcsCmp { - logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) - reads *(s1+(0 .. wcslen{L}(s1))), *(s2+(0 .. wcslen{L}(s2))); - - axiom wcscmp_zero{L}: - ∀ wchar_t *s1, wchar_t *s2; - wcscmp{L}(s1, s2) ≡ 0 ⇔ - wcslen{L}(s1) ≡ wcslen{L}(s2) ∧ - (∀ ℤ i; 0 ≤ i ≤ wcslen{L}(s1) ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ -axiomatic WcsNCmp { - logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) - reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); - - axiom wcsncmp_zero{L}: - ∀ wchar_t *s1, wchar_t *s2; - ∀ ℤ n; - wcsncmp{L}(s1, s2, n) ≡ 0 ⇔ - (wcslen{L}(s1) < n ∧ wcscmp{L}(s1, s2) ≡ 0) ∨ - (∀ ℤ i; 0 ≤ i < n ⇒ *(s1+i) ≡ *(s2+i)); - - } - */ -/*@ logic ℤ minimum(ℤ i, ℤ j) = i<j? i: j; - */ -/*@ logic ℤ maximum(ℤ i, ℤ j) = i<j? j: i; - */ -/*@ -predicate valid_string{L}(char *s) = - 0 ≤ strlen{L}(s) ∧ \valid{L}(s+(0 .. strlen{L}(s))); - */ -/*@ -predicate valid_read_string{L}(char *s) = - 0 ≤ strlen{L}(s) ∧ \valid_read{L}(s+(0 .. strlen{L}(s))); - */ -/*@ -predicate valid_string_or_null{L}(char *s) = - s ≡ \null ∨ valid_string{L}(s); - */ -/*@ -predicate valid_wstring{L}(wchar_t *s) = - 0 ≤ wcslen{L}(s) ∧ \valid{L}(s+(0 .. wcslen{L}(s))); - */ -/*@ -predicate valid_wstring_or_null{L}(wchar_t *s) = - s ≡ \null ∨ valid_wstring{L}(s); - */ -/*@ requires valid_string_src: valid_read_string(s); - ensures \result ≡ strlen(\old(s)); - assigns \result; - assigns \result \from *(s+(0 ..)); - */ -extern size_t strlen(char const *s); - -/*@ requires valid_string_src: valid_read_string(s); - ensures \result ≡ strlen(\old(s)); - assigns \result; - assigns \result \from *(s+(0 ..)); - */ -size_t __e_acsl_strlen(char const *s) -{ - size_t __retres; - __store_block((void *)(& s),8UL); - __retres = strlen(s); - __delete_block((void *)(& s)); - return __retres; -} - -int main(int argc, char **argv) -{ - int __retres; - int i; - __init_args(argc,argv); - /*@ assert \valid(&argc); */ - { - int __e_acsl_valid; - __store_block((void *)(& argc),4UL); - __store_block((void *)(& argv),8UL); - __e_acsl_valid = __valid((void *)(& argc),sizeof(int)); - e_acsl_assert(__e_acsl_valid,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&argc)",12); - } - /*@ assert \valid(&argv); */ - { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)(& argv),sizeof(char **)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&argv)",13); - } - /*@ assert ∀ int k; 0 ≤ k < argc ⇒ \valid(argv+k); */ - { - int __e_acsl_forall; - mpz_t __e_acsl_k; - __e_acsl_forall = 1; - __gmpz_init(__e_acsl_k); - { - mpz_t __e_acsl; - __gmpz_init_set_si(__e_acsl,(long)0); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl)); - __gmpz_clear(__e_acsl); - } - while (1) { - { - mpz_t __e_acsl_argc; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_argc,(long)argc); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_argc)); - if (__e_acsl_lt < 0) ; else break; - __gmpz_clear(__e_acsl_argc); - } - { - unsigned long __e_acsl_k_2; - int __e_acsl_valid_3; - __e_acsl_k_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_k)); - __e_acsl_valid_3 = __valid((void *)(argv + __e_acsl_k_2), - sizeof(char *)); - if (__e_acsl_valid_3) ; - else { - __e_acsl_forall = 0; - goto e_acsl_end_loop1; - } - } - { - mpz_t __e_acsl_2; - mpz_t __e_acsl_add; - __gmpz_init_set_si(__e_acsl_2,1L); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_k), - (__mpz_struct const *)(__e_acsl_2)); - __gmpz_set(__e_acsl_k,(__mpz_struct const *)(__e_acsl_add)); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_add); - } - } - e_acsl_end_loop1: ; - e_acsl_assert(__e_acsl_forall,(char *)"Assertion",(char *)"main", - (char *)"\\forall int k; 0 <= k < argc ==> \\valid(argv+k)", - 14); - __gmpz_clear(__e_acsl_k); - } - /*@ assert \block_length(argv) ≡ (argc+1)*sizeof(char *); */ - { - unsigned long __e_acsl_block_length; - mpz_t __e_acsl_block_length_2; - mpz_t __e_acsl_argc_2; - mpz_t __e_acsl_3; - mpz_t __e_acsl_add_2; - mpz_t __e_acsl_sizeof; - mpz_t __e_acsl_mul; - int __e_acsl_eq; - __e_acsl_block_length = __block_length((void *)argv); - __gmpz_init_set_ui(__e_acsl_block_length_2,__e_acsl_block_length); - __gmpz_init_set_si(__e_acsl_argc_2,(long)argc); - __gmpz_init_set_si(__e_acsl_3,(long)1); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_argc_2), - (__mpz_struct const *)(__e_acsl_3)); - __gmpz_init_set_si(__e_acsl_sizeof,8L); - __gmpz_init(__e_acsl_mul); - __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl_add_2), - (__mpz_struct const *)(__e_acsl_sizeof)); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_block_length_2), - (__mpz_struct const *)(__e_acsl_mul)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"\\block_length(argv) == (argc+1)*sizeof(char *)", - 15); - __gmpz_clear(__e_acsl_block_length_2); - __gmpz_clear(__e_acsl_argc_2); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_add_2); - __gmpz_clear(__e_acsl_sizeof); - __gmpz_clear(__e_acsl_mul); - } - /*@ assert *(argv+argc) ≡ \null; */ - { - int __e_acsl_valid_read; - __e_acsl_valid_read = __valid_read((void *)(argv + (long)argc), - sizeof(char *)); - e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+(long)argc)",17); - e_acsl_assert(*(argv + (long)argc) == (void *)0,(char *)"Assertion", - (char *)"main",(char *)"*(argv+argc) == \\null",17); - } - /*@ assert ¬\valid(*(argv+argc)); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(argv + (long)argc), - sizeof(char *)); - if (__e_acsl_initialized) { - int __e_acsl_valid_read_2; - int __e_acsl_valid_4; - __e_acsl_valid_read_2 = __valid_read((void *)(argv + (long)argc), - sizeof(char *)); - e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+(long)argc)",18); - __e_acsl_valid_4 = __valid((void *)*(argv + (long)argc),sizeof(char)); - __e_acsl_and = __e_acsl_valid_4; - } - else __e_acsl_and = 0; - e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(*(argv+argc))",18); - } - i = 0; - while (i < argc) { - { - int len; - size_t tmp; - tmp = __e_acsl_strlen((char const *)*(argv + i)); - len = (int)tmp; - /*@ assert \valid(*(argv+i)); */ - { - int __e_acsl_initialized_2; - int __e_acsl_and_2; - __e_acsl_initialized_2 = __initialized((void *)(argv + (long)i), - sizeof(char *)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid_read_3; - int __e_acsl_valid_5; - __e_acsl_valid_read_3 = __valid_read((void *)(argv + (long)i), - sizeof(char *)); - e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+(long)i)",21); - __e_acsl_valid_5 = __valid((void *)*(argv + (long)i),sizeof(char)); - __e_acsl_and_2 = __e_acsl_valid_5; - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*(argv+i))",21); - } - /*@ assert ∀ int k; 0 ≤ k ≤ len ⇒ \valid(*(argv+i)+k); */ - { - int __e_acsl_forall_2; - mpz_t __e_acsl_k_3; - __e_acsl_forall_2 = 1; - __gmpz_init(__e_acsl_k_3); - { - mpz_t __e_acsl_4; - __gmpz_init_set_si(__e_acsl_4,(long)0); - __gmpz_set(__e_acsl_k_3,(__mpz_struct const *)(__e_acsl_4)); - __gmpz_clear(__e_acsl_4); - } - while (1) { - { - mpz_t __e_acsl_len; - int __e_acsl_le; - __gmpz_init_set_si(__e_acsl_len,(long)len); - __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_len)); - if (__e_acsl_le <= 0) ; else break; - __gmpz_clear(__e_acsl_len); - } - { - unsigned long __e_acsl_k_4; - int __e_acsl_valid_read_4; - int __e_acsl_valid_6; - __e_acsl_k_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_k_3)); - __e_acsl_valid_read_4 = __valid_read((void *)(argv + (long)i), - sizeof(char *)); - e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(argv+(long)i)", - 22); - __e_acsl_valid_6 = __valid((void *)(*(argv + (long)i) + __e_acsl_k_4), - sizeof(char)); - if (__e_acsl_valid_6) ; - else { - __e_acsl_forall_2 = 0; - goto e_acsl_end_loop2; - } - } - { - mpz_t __e_acsl_5; - mpz_t __e_acsl_add_3; - __gmpz_init_set_si(__e_acsl_5,1L); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3,(__mpz_struct const *)(__e_acsl_k_3), - (__mpz_struct const *)(__e_acsl_5)); - __gmpz_set(__e_acsl_k_3,(__mpz_struct const *)(__e_acsl_add_3)); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_add_3); - } - } - e_acsl_end_loop2: ; - e_acsl_assert(__e_acsl_forall_2,(char *)"Assertion",(char *)"main", - (char *)"\\forall int k; 0 <= k <= len ==> \\valid(*(argv+i)+k)", - 22); - __gmpz_clear(__e_acsl_k_3); - } - } - i ++; - } - __retres = 0; - __delete_block((void *)(& argc)); - __delete_block((void *)(& argv)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize.c index d3d869e4813eb64f528b87bc33d461a9dffeebbe..c8822b0182d5fa81c80e06d1ce6a96ecf260fd1f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize.c @@ -1,242 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -void *__realloc(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ requires ptr ≡ \null ∨ \freeable(ptr); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from __fc_heap_status; - assigns \result \from size, ptr, __fc_heap_status; - frees ptr; - allocates \result; - - behavior alloc: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior dealloc: - assumes ptr ≢ \null; - assumes is_allocable(size); - requires \freeable(ptr); - ensures \allocable(\old(ptr)); - ensures \result ≡ \null ∨ \freeable(\result); - frees ptr; - - behavior fail: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \nothing; - - complete behaviors fail, dealloc, alloc; - disjoint behaviors dealloc, fail; - disjoint behaviors alloc, fail; - */ -void *__e_acsl_realloc(void *ptr, size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - { - int __e_acsl_or; - __store_block((void *)(& ptr),8UL); - if (ptr == (void *)0) __e_acsl_or = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(ptr); - __e_acsl_or = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_or,(char *)"Precondition",(char *)"realloc", - (char *)"ptr == \\null || \\freeable(ptr)",201); - __retres = __realloc(ptr,size); - } - __delete_block((void *)(& ptr)); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -void *__calloc(size_t nmemb, size_t size); - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; int main(int argc, char **argv) { int __retres; @@ -248,73 +10,73 @@ int main(int argc, char **argv) a = (char *)__e_acsl_malloc((unsigned long)7); /*@ assert __memory_size ≡ 7; */ e_acsl_assert(__memory_size == (unsigned long)7,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 7",24); + (char *)"main",(char *)"__memory_size == 7",22); __full_init((void *)(& b)); b = (char *)__e_acsl_malloc((unsigned long)14); /*@ assert __memory_size ≡ 21; */ e_acsl_assert(__memory_size == (unsigned long)21,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 21",26); + (char *)"main",(char *)"__memory_size == 21",24); __e_acsl_free((void *)a); /*@ assert __memory_size ≡ 14; */ e_acsl_assert(__memory_size == (unsigned long)14,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 14",30); + (char *)"main",(char *)"__memory_size == 14",28); __full_init((void *)(& a)); a = (char *)0; __e_acsl_free((void *)a); /*@ assert __memory_size ≡ 14; */ e_acsl_assert(__memory_size == (unsigned long)14,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 14",35); + (char *)"main",(char *)"__memory_size == 14",33); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)b,(unsigned long)9); /*@ assert __memory_size ≡ 9; */ e_acsl_assert(__memory_size == (unsigned long)9,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 9",39); + (char *)"main",(char *)"__memory_size == 9",37); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)b,(unsigned long)18); /*@ assert __memory_size ≡ 18; */ e_acsl_assert(__memory_size == (unsigned long)18,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 18",43); + (char *)"main",(char *)"__memory_size == 18",41); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)b,(unsigned long)0); __full_init((void *)(& b)); b = (char *)0; /*@ assert __memory_size ≡ 0; */ e_acsl_assert(__memory_size == (unsigned long)0,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 0",48); + (char *)"main",(char *)"__memory_size == 0",46); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)b,(unsigned long)8); /*@ assert __memory_size ≡ 8; */ e_acsl_assert(__memory_size == (unsigned long)8,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 8",52); + (char *)"main",(char *)"__memory_size == 8",50); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)0,(unsigned long)8); /*@ assert __memory_size ≡ 16; */ e_acsl_assert(__memory_size == (unsigned long)16,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 16",56); + (char *)"main",(char *)"__memory_size == 16",54); __full_init((void *)(& b)); b = (char *)__e_acsl_realloc((void *)0,18446744073709551615UL); /*@ assert __memory_size ≡ 16; */ e_acsl_assert(__memory_size == (unsigned long)16,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 16",60); + (char *)"main",(char *)"__memory_size == 16",58); /*@ assert b ≡ (char *)((void *)0); */ e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",61); + (char *)"b == (char *)((void *)0)",59); __full_init((void *)(& b)); b = (char *)__calloc(18446744073709551615UL,18446744073709551615UL); /*@ assert __memory_size ≡ 16; */ e_acsl_assert(__memory_size == (unsigned long)16,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 16",65); + (char *)"main",(char *)"__memory_size == 16",63); /*@ assert b ≡ (char *)((void *)0); */ e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",66); + (char *)"b == (char *)((void *)0)",64); __full_init((void *)(& b)); b = (char *)__e_acsl_malloc(18446744073709551615UL); /*@ assert __memory_size ≡ 16; */ e_acsl_assert(__memory_size == (unsigned long)16,(char *)"Assertion", - (char *)"main",(char *)"__memory_size == 16",70); + (char *)"main",(char *)"__memory_size == 16",68); /*@ assert b ≡ (char *)((void *)0); */ e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",71); + (char *)"b == (char *)((void *)0)",69); __retres = 0; __delete_block((void *)(& b)); __delete_block((void *)(& a)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize2.c deleted file mode 100644 index 1b8a9bb8400e14cb31286b9bccb1178774abd827..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_memsize2.c +++ /dev/null @@ -1,490 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -void *__realloc(void *ptr, size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ requires ptr ≡ \null ∨ \freeable(ptr); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from __fc_heap_status; - assigns \result \from size, ptr, __fc_heap_status; - frees ptr; - allocates \result; - - behavior alloc: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior dealloc: - assumes ptr ≢ \null; - assumes is_allocable(size); - requires \freeable(ptr); - ensures \allocable(\old(ptr)); - ensures \result ≡ \null ∨ \freeable(\result); - frees ptr; - - behavior fail: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from size, __fc_heap_status; - allocates \nothing; - - complete behaviors fail, dealloc, alloc; - disjoint behaviors dealloc, fail; - disjoint behaviors alloc, fail; - */ -void *__e_acsl_realloc(void *ptr, size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - { - int __e_acsl_or; - __store_block((void *)(& ptr),8UL); - if (ptr == (void *)0) __e_acsl_or = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(ptr); - __e_acsl_or = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_or,(char *)"Precondition",(char *)"realloc", - (char *)"ptr == \\null || \\freeable(ptr)",201); - __retres = __realloc(ptr,size); - } - __delete_block((void *)(& ptr)); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -void *__calloc(size_t nmemb, size_t size); - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; -int main(int argc, char **argv) -{ - int __retres; - char *a; - char *b; - __store_block((void *)(& b),8UL); - __store_block((void *)(& a),8UL); - __full_init((void *)(& a)); - a = (char *)__e_acsl_malloc((unsigned long)7); - /*@ assert __memory_size ≡ 7; */ - { - mpz_t __e_acsl___memory_size; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_ui(__e_acsl___memory_size,__memory_size); - __gmpz_init_set_si(__e_acsl,(long)7); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 7",24); - __gmpz_clear(__e_acsl___memory_size); - __gmpz_clear(__e_acsl); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_malloc((unsigned long)14); - /*@ assert __memory_size ≡ 21; */ - { - mpz_t __e_acsl___memory_size_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_ui(__e_acsl___memory_size_2,__memory_size); - __gmpz_init_set_si(__e_acsl_2,(long)21); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_2), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 21",26); - __gmpz_clear(__e_acsl___memory_size_2); - __gmpz_clear(__e_acsl_2); - } - __e_acsl_free((void *)a); - /*@ assert __memory_size ≡ 14; */ - { - mpz_t __e_acsl___memory_size_3; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - __gmpz_init_set_ui(__e_acsl___memory_size_3,__memory_size); - __gmpz_init_set_si(__e_acsl_3,(long)14); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_3), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 14",30); - __gmpz_clear(__e_acsl___memory_size_3); - __gmpz_clear(__e_acsl_3); - } - __full_init((void *)(& a)); - a = (char *)0; - __e_acsl_free((void *)a); - /*@ assert __memory_size ≡ 14; */ - { - mpz_t __e_acsl___memory_size_4; - mpz_t __e_acsl_4; - int __e_acsl_eq_4; - __gmpz_init_set_ui(__e_acsl___memory_size_4,__memory_size); - __gmpz_init_set_si(__e_acsl_4,(long)14); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_4), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 14",35); - __gmpz_clear(__e_acsl___memory_size_4); - __gmpz_clear(__e_acsl_4); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)b,(unsigned long)9); - /*@ assert __memory_size ≡ 9; */ - { - mpz_t __e_acsl___memory_size_5; - mpz_t __e_acsl_5; - int __e_acsl_eq_5; - __gmpz_init_set_ui(__e_acsl___memory_size_5,__memory_size); - __gmpz_init_set_si(__e_acsl_5,(long)9); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_5), - (__mpz_struct const *)(__e_acsl_5)); - e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 9",39); - __gmpz_clear(__e_acsl___memory_size_5); - __gmpz_clear(__e_acsl_5); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)b,(unsigned long)18); - /*@ assert __memory_size ≡ 18; */ - { - mpz_t __e_acsl___memory_size_6; - mpz_t __e_acsl_6; - int __e_acsl_eq_6; - __gmpz_init_set_ui(__e_acsl___memory_size_6,__memory_size); - __gmpz_init_set_si(__e_acsl_6,(long)18); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_6), - (__mpz_struct const *)(__e_acsl_6)); - e_acsl_assert(__e_acsl_eq_6 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 18",43); - __gmpz_clear(__e_acsl___memory_size_6); - __gmpz_clear(__e_acsl_6); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)b,(unsigned long)0); - __full_init((void *)(& b)); - b = (char *)0; - /*@ assert __memory_size ≡ 0; */ - { - mpz_t __e_acsl___memory_size_7; - mpz_t __e_acsl_7; - int __e_acsl_eq_7; - __gmpz_init_set_ui(__e_acsl___memory_size_7,__memory_size); - __gmpz_init_set_si(__e_acsl_7,(long)0); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_7), - (__mpz_struct const *)(__e_acsl_7)); - e_acsl_assert(__e_acsl_eq_7 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 0",48); - __gmpz_clear(__e_acsl___memory_size_7); - __gmpz_clear(__e_acsl_7); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)b,(unsigned long)8); - /*@ assert __memory_size ≡ 8; */ - { - mpz_t __e_acsl___memory_size_8; - mpz_t __e_acsl_8; - int __e_acsl_eq_8; - __gmpz_init_set_ui(__e_acsl___memory_size_8,__memory_size); - __gmpz_init_set_si(__e_acsl_8,(long)8); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_8), - (__mpz_struct const *)(__e_acsl_8)); - e_acsl_assert(__e_acsl_eq_8 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 8",52); - __gmpz_clear(__e_acsl___memory_size_8); - __gmpz_clear(__e_acsl_8); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)0,(unsigned long)8); - /*@ assert __memory_size ≡ 16; */ - { - mpz_t __e_acsl___memory_size_9; - mpz_t __e_acsl_9; - int __e_acsl_eq_9; - __gmpz_init_set_ui(__e_acsl___memory_size_9,__memory_size); - __gmpz_init_set_si(__e_acsl_9,(long)16); - __e_acsl_eq_9 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_9), - (__mpz_struct const *)(__e_acsl_9)); - e_acsl_assert(__e_acsl_eq_9 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 16",56); - __gmpz_clear(__e_acsl___memory_size_9); - __gmpz_clear(__e_acsl_9); - } - __full_init((void *)(& b)); - b = (char *)__e_acsl_realloc((void *)0,18446744073709551615UL); - /*@ assert __memory_size ≡ 16; */ - { - mpz_t __e_acsl___memory_size_10; - mpz_t __e_acsl_10; - int __e_acsl_eq_10; - __gmpz_init_set_ui(__e_acsl___memory_size_10,__memory_size); - __gmpz_init_set_si(__e_acsl_10,(long)16); - __e_acsl_eq_10 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_10), - (__mpz_struct const *)(__e_acsl_10)); - e_acsl_assert(__e_acsl_eq_10 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 16",60); - __gmpz_clear(__e_acsl___memory_size_10); - __gmpz_clear(__e_acsl_10); - } - /*@ assert b ≡ (char *)((void *)0); */ - e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",61); - __full_init((void *)(& b)); - b = (char *)__calloc(18446744073709551615UL,18446744073709551615UL); - /*@ assert __memory_size ≡ 16; */ - { - mpz_t __e_acsl___memory_size_11; - mpz_t __e_acsl_11; - int __e_acsl_eq_11; - __gmpz_init_set_ui(__e_acsl___memory_size_11,__memory_size); - __gmpz_init_set_si(__e_acsl_11,(long)16); - __e_acsl_eq_11 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_11), - (__mpz_struct const *)(__e_acsl_11)); - e_acsl_assert(__e_acsl_eq_11 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 16",65); - __gmpz_clear(__e_acsl___memory_size_11); - __gmpz_clear(__e_acsl_11); - } - /*@ assert b ≡ (char *)((void *)0); */ - e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",66); - __full_init((void *)(& b)); - b = (char *)__e_acsl_malloc(18446744073709551615UL); - /*@ assert __memory_size ≡ 16; */ - { - mpz_t __e_acsl___memory_size_12; - mpz_t __e_acsl_12; - int __e_acsl_eq_12; - __gmpz_init_set_ui(__e_acsl___memory_size_12,__memory_size); - __gmpz_init_set_si(__e_acsl_12,(long)16); - __e_acsl_eq_12 = __gmpz_cmp((__mpz_struct const *)(__e_acsl___memory_size_12), - (__mpz_struct const *)(__e_acsl_12)); - e_acsl_assert(__e_acsl_eq_12 == 0,(char *)"Assertion",(char *)"main", - (char *)"__memory_size == 16",70); - __gmpz_clear(__e_acsl___memory_size_12); - __gmpz_clear(__e_acsl_12); - } - /*@ assert b ≡ (char *)((void *)0); */ - e_acsl_assert(b == (char *)0,(char *)"Assertion",(char *)"main", - (char *)"b == (char *)((void *)0)",71); - __retres = 0; - __delete_block((void *)(& b)); - __delete_block((void *)(& a)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c index f3bdecf27041c1435e609df8e25c86dda6a0eb81..14b567831761bce58a5f76a404ae0cb173e62c1b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -47,44 +7,44 @@ int main(void) x = 0; y = 1; /*@ assert x < y; */ - e_acsl_assert(x < y,(char *)"Assertion",(char *)"main",(char *)"x < y",9); + e_acsl_assert(x < y,(char *)"Assertion",(char *)"main",(char *)"x < y",7); /*@ requires x ≡ 0; ensures x ≥ 1; */ { e_acsl_assert(x == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 0",10); + (char *)"x == 0",8); if (x) /*@ assert \false; */ e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false", - 13); + 11); else { /*@ requires x ≡ 0; ensures x ≡ 1; */ { e_acsl_assert(x == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 0",15); + (char *)"x == 0",13); x ++; e_acsl_assert(x == 1,(char *)"Postcondition",(char *)"main", - (char *)"x == 1",16); + (char *)"x == 1",14); } if (x) { /*@ requires x ≡ 1; ensures x ≡ 2; */ { e_acsl_assert(x == 1,(char *)"Precondition",(char *)"main", - (char *)"x == 1",19); + (char *)"x == 1",17); x ++; e_acsl_assert(x == 2,(char *)"Postcondition",(char *)"main", - (char *)"x == 2",20); + (char *)"x == 2",18); } } else /*@ assert \false; */ e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false", - 23); + 21); } e_acsl_assert(x >= 1,(char *)"Postcondition",(char *)"main", - (char *)"x >= 1",11); + (char *)"x >= 1",9); } __retres = 0; return __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c deleted file mode 100644 index d9b8a0192ccdb250b328cec2f6c9131a51cecfe8..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_nested_code_annot2.c +++ /dev/null @@ -1,188 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - int y; - x = 0; - y = 1; - /*@ assert x < y; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl_y; - int __e_acsl_lt; - __gmpz_init_set_si(__e_acsl_x,(long)x); - __gmpz_init_set_si(__e_acsl_y,(long)y); - __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl_y)); - e_acsl_assert(__e_acsl_lt < 0,(char *)"Assertion",(char *)"main", - (char *)"x < y",9); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl_y); - } - /*@ requires x ≡ 0; - ensures x ≥ 1; */ - { - mpz_t __e_acsl_x_7; - mpz_t __e_acsl_6; - int __e_acsl_ge; - { - mpz_t __e_acsl_x_2; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_x_2,(long)x); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 0",10); - __gmpz_clear(__e_acsl_x_2); - __gmpz_clear(__e_acsl); - if (x) - /*@ assert \false; */ - e_acsl_assert(0,(char *)"Assertion",(char *)"main",(char *)"\\false", - 13); - else { - /*@ requires x ≡ 0; - ensures x ≡ 1; */ - { - mpz_t __e_acsl_x_4; - mpz_t __e_acsl_3; - int __e_acsl_eq_3; - { - mpz_t __e_acsl_x_3; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_x_3,(long)x); - __gmpz_init_set_si(__e_acsl_2,(long)0); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_3), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Precondition", - (char *)"main",(char *)"x == 0",15); - __gmpz_clear(__e_acsl_x_3); - __gmpz_clear(__e_acsl_2); - x ++; - } - __gmpz_init_set_si(__e_acsl_x_4,(long)x); - __gmpz_init_set_si(__e_acsl_3,(long)1); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_4), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Postcondition", - (char *)"main",(char *)"x == 1",16); - __gmpz_clear(__e_acsl_x_4); - __gmpz_clear(__e_acsl_3); - } - if (x) { - /*@ requires x ≡ 1; - ensures x ≡ 2; */ - { - mpz_t __e_acsl_x_6; - mpz_t __e_acsl_5; - int __e_acsl_eq_5; - { - mpz_t __e_acsl_x_5; - mpz_t __e_acsl_4; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_x_5,(long)x); - __gmpz_init_set_si(__e_acsl_4,(long)1); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_5), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Precondition", - (char *)"main",(char *)"x == 1",19); - __gmpz_clear(__e_acsl_x_5); - __gmpz_clear(__e_acsl_4); - x ++; - } - __gmpz_init_set_si(__e_acsl_x_6,(long)x); - __gmpz_init_set_si(__e_acsl_5,(long)2); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_6), - (__mpz_struct const *)(__e_acsl_5)); - e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Postcondition", - (char *)"main",(char *)"x == 2",20); - __gmpz_clear(__e_acsl_x_6); - __gmpz_clear(__e_acsl_5); - } - } - else - /*@ assert \false; */ - e_acsl_assert(0,(char *)"Assertion",(char *)"main", - (char *)"\\false",23); - } - } - __gmpz_init_set_si(__e_acsl_x_7,(long)x); - __gmpz_init_set_si(__e_acsl_6,(long)1); - __e_acsl_ge = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_7), - (__mpz_struct const *)(__e_acsl_6)); - e_acsl_assert(__e_acsl_ge >= 0,(char *)"Postcondition",(char *)"main", - (char *)"x >= 1",11); - __gmpz_clear(__e_acsl_x_7); - __gmpz_clear(__e_acsl_6); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c deleted file mode 100644 index 4fe3c73b67c674ba40d01151765379894d692504..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - /*@ assert x ≡ 0; */ - e_acsl_assert(x == 0,(char *)"Assertion",(char *)"main",(char *)"x == 0",8); - if (x) - /*@ assert x ≢ 0; */ - e_acsl_assert(x != 0,(char *)"Assertion",(char *)"main",(char *)"x != 0", - 9); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c deleted file mode 100644 index 676e7c3a328d60fe271ff5bc966d0862fd2be980..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_not2.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - /*@ assert x ≡ 0; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_x,(long)x); - __gmpz_init_set_si(__e_acsl,0L); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"x == 0",8); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl); - } - if (x) { - /*@ assert x ≢ 0; */ - { - mpz_t __e_acsl_x_2; - mpz_t __e_acsl_2; - int __e_acsl_ne; - __gmpz_init_set_si(__e_acsl_x_2,(long)x); - __gmpz_init_set_si(__e_acsl_2,0L); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"x != 0",9); - __gmpz_clear(__e_acsl_x_2); - __gmpz_clear(__e_acsl_2); - } - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c index a09b2333e5245328a47e607b26fad3b34f7ae9e2..1f61c8baa2a87d7269fbd7af3cfc1cfe7ae1e89d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null.c @@ -1,50 +1,10 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; /*@ assert \null ≡ (void *)0; */ e_acsl_assert((void *)0 == (void *)0,(char *)"Assertion",(char *)"main", - (char *)"\\null == (void *)0",8); + (char *)"\\null == (void *)0",6); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c deleted file mode 100644 index a09b2333e5245328a47e607b26fad3b34f7ae9e2..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_null2.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - /*@ assert \null ≡ (void *)0; */ - e_acsl_assert((void *)0 == (void *)0,(char *)"Assertion",(char *)"main", - (char *)"\\null == (void *)0",8); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c index 3cfb1dca11d84e641a0036ec3fcb0a9b4798bbe0..0dda9995aecd5dcfb65ee537f65f8434c4cd0b89 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants.c @@ -1,57 +1,17 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; enum bool { false = 0, true = 1 }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; /*@ assert 'c' ≡ 'c'; */ e_acsl_assert('c' == 'c',(char *)"Assertion",(char *)"main", - (char *)"\'c\' == \'c\'",12); + (char *)"\'c\' == \'c\'",10); /*@ assert false ≢ true; */ e_acsl_assert(false != true,(char *)"Assertion",(char *)"main", - (char *)"false != true",13); + (char *)"false != true",11); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c deleted file mode 100644 index 20eb9f1b21fb95fe23807f3b629228cd348da651..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_other_constants2.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -enum bool { - false = 0, - true = 1 -}; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - /*@ assert 'c' ≡ 'c'; */ - { - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)'c'); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"\'c\' == \'c\'",12); - __gmpz_clear(__e_acsl); - } - /*@ assert false ≢ true; */ - { - mpz_t __e_acsl_2; - mpz_t __e_acsl_3; - int __e_acsl_ne; - __gmpz_init_set_si(__e_acsl_2,(long)false); - __gmpz_init_set_si(__e_acsl_3,(long)true); - __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"false != true",13); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_3); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr.c index 856c8b3ced8ed0a91cd30192fc0a1d12fda13e7e..47d6cc6c523f57252ed03cffc34c58bb7f62d947 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr.c @@ -1,91 +1,13 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; int x; int t[3]; int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(t),12U); - __store_block((void *)(& x),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(t),12UL); + __store_block((void *)(& x),4UL); __full_init((void *)(& x)); x = 1; __initialize((void *)(t),sizeof(int)); @@ -108,53 +30,48 @@ int main(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(p)",13); + (char *)"mem_access: \\valid_read(p)",11); e_acsl_assert(*p == 1,(char *)"Assertion",(char *)"main", - (char *)"*p == 1",13); + (char *)"*p == 1",11); } /*@ assert t[0] ≡ 2; */ e_acsl_assert(t[0] == 2,(char *)"Assertion",(char *)"main", - (char *)"t[0] == 2",14); + (char *)"t[0] == 2",12); /*@ assert t[2] ≡ 4; */ e_acsl_assert(t[2] == 4,(char *)"Assertion",(char *)"main", - (char *)"t[2] == 4",15); + (char *)"t[2] == 4",13); /*@ assert t[(2*sizeof(int))/sizeof((int)0x0)] ≡ 4; */ e_acsl_assert(t[(2 * 4) / 4] == 4,(char *)"Assertion",(char *)"main", - (char *)"t[(2*sizeof(int))/sizeof((int)0x0)] == 4",16); + (char *)"t[(2*sizeof(int))/sizeof((int)0x0)] == 4",14); { int i; i = 0; while (i < 2) { /*@ assert t[i] ≡ i+2; */ e_acsl_assert(i < 3,(char *)"RTE",(char *)"main", - (char *)"index_bound: i < 3",19); + (char *)"index_bound: i < 3",17); e_acsl_assert(0 <= i,(char *)"RTE",(char *)"main", - (char *)"index_bound: 0 <= i",19); - e_acsl_assert((long long)t[i] == (long long)i + (long long)2, - (char *)"Assertion",(char *)"main",(char *)"t[i] == i+2", - 19); + (char *)"index_bound: 0 <= i",17); + e_acsl_assert((long)t[i] == (long)i + (long)2,(char *)"Assertion", + (char *)"main",(char *)"t[i] == i+2",17); /*@ assert t[2-i] ≡ 4-i; */ - e_acsl_assert((long long)2 - (long long)i < (long long)3,(char *)"RTE", - (char *)"main", - (char *)"index_bound: (long long)(2-(long long)i) < 3", - 20); - e_acsl_assert(0LL <= (long long)2 - (long long)i,(char *)"RTE", - (char *)"main", - (char *)"index_bound: 0 <= (long long)(2-(long long)i)", - 20); - e_acsl_assert((long long)t[(long long)2 - (long long)i] == (long long)4 - (long long)i, + e_acsl_assert((long)2 - (long)i < (long)3,(char *)"RTE",(char *)"main", + (char *)"index_bound: (long)(2-(long)i) < 3",18); + e_acsl_assert(0L <= (long)2 - (long)i,(char *)"RTE",(char *)"main", + (char *)"index_bound: 0 <= (long)(2-(long)i)",18); + e_acsl_assert((long)t[(long)2 - (long)i] == (long)4 - (long)i, (char *)"Assertion",(char *)"main", - (char *)"t[2-i] == 4-i",20); + (char *)"t[2-i] == 4-i",18); /*@ assert *(&t[2]-i) ≡ 4-i; */ { int __e_acsl_valid_read_2; __e_acsl_valid_read_2 = __valid_read((void *)(& t[2] - i), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(&t[2]-i)",21); - e_acsl_assert((long long)*(& t[2] - i) == (long long)4 - (long long)i, + (char *)"mem_access: \\valid_read(&t[2]-i)",19); + e_acsl_assert((long)*(& t[2] - i) == (long)4 - (long)i, (char *)"Assertion",(char *)"main", - (char *)"*(&t[2]-i) == 4-i",21); + (char *)"*(&t[2]-i) == 4-i",19); } i ++; } @@ -175,9 +92,9 @@ int main(void) } else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(p)",27); + (char *)"mem_access: \\valid_read(p)",25); e_acsl_assert(*p == 5,(char *)"Assertion",(char *)"main", - (char *)"*p == 5",27); + (char *)"*p == 5",25); } __retres = 0; __delete_block((void *)(& p)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr2.c deleted file mode 100644 index b58a645ffe756bac21f4d5fb5fbedc6fd85c0f0b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr2.c +++ /dev/null @@ -1,352 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_sub(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - int t[3]; - int *p; - __store_block((void *)(& p),4U); - __store_block((void *)(t),12U); - __store_block((void *)(& x),4U); - __full_init((void *)(& x)); - x = 1; - __initialize((void *)(t),sizeof(int)); - t[0] = 2; - __initialize((void *)(& t[1]),sizeof(int)); - t[1] = 3; - __initialize((void *)(& t[2]),sizeof(int)); - t[2] = 4; - __full_init((void *)(& p)); - p = & x; - /*@ assert *p ≡ 1; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_2; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*p); - __gmpz_init_set_si(__e_acsl_2,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"*p == 1",13); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_2); - } - /*@ assert t[0] ≡ 2; */ - { - mpz_t __e_acsl_3; - mpz_t __e_acsl_4; - int __e_acsl_eq_2; - __gmpz_init_set_si(__e_acsl_3,(long)t[0]); - __gmpz_init_set_si(__e_acsl_4,(long)2); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"t[0] == 2",14); - __gmpz_clear(__e_acsl_3); - __gmpz_clear(__e_acsl_4); - } - /*@ assert t[2] ≡ 4; */ - { - mpz_t __e_acsl_5; - mpz_t __e_acsl_6; - int __e_acsl_eq_3; - __gmpz_init_set_si(__e_acsl_5,(long)t[2]); - __gmpz_init_set_si(__e_acsl_6,(long)4); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), - (__mpz_struct const *)(__e_acsl_6)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"t[2] == 4",15); - __gmpz_clear(__e_acsl_5); - __gmpz_clear(__e_acsl_6); - } - /*@ assert t[(2*sizeof(int))/sizeof((int)0x0)] ≡ 4; */ - { - mpz_t __e_acsl_7; - mpz_t __e_acsl_sizeof; - mpz_t __e_acsl_mul; - mpz_t __e_acsl_sizeof_2; - mpz_t __e_acsl_8; - int __e_acsl_div_guard; - mpz_t __e_acsl_div; - unsigned long __e_acsl_9; - mpz_t __e_acsl_10; - mpz_t __e_acsl_11; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_7,(long)2); - __gmpz_init_set_si(__e_acsl_sizeof,4L); - __gmpz_init(__e_acsl_mul); - __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl_7), - (__mpz_struct const *)(__e_acsl_sizeof)); - __gmpz_init_set_si(__e_acsl_sizeof_2,4L); - __gmpz_init_set_si(__e_acsl_8,0L); - __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl_sizeof_2), - (__mpz_struct const *)(__e_acsl_8)); - __gmpz_init(__e_acsl_div); - /*@ assert E_ACSL: sizeof((int)0x0) ≢ 0; */ - e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"sizeof((int)0x0) == 0",16); - __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl_mul), - (__mpz_struct const *)(__e_acsl_sizeof_2)); - __e_acsl_9 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_div)); - __gmpz_init_set_si(__e_acsl_10,(long)t[__e_acsl_9]); - __gmpz_init_set_si(__e_acsl_11,(long)4); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_10), - (__mpz_struct const *)(__e_acsl_11)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", - (char *)"t[(2*sizeof(int))/sizeof((int)0x0)] == 4",16); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_sizeof); - __gmpz_clear(__e_acsl_mul); - __gmpz_clear(__e_acsl_sizeof_2); - __gmpz_clear(__e_acsl_8); - __gmpz_clear(__e_acsl_div); - __gmpz_clear(__e_acsl_10); - __gmpz_clear(__e_acsl_11); - } - { - int i; - i = 0; - while (i < 2) { - /*@ assert t[i] ≡ i+2; */ - { - mpz_t __e_acsl_12; - mpz_t __e_acsl_i; - mpz_t __e_acsl_13; - mpz_t __e_acsl_add; - int __e_acsl_eq_5; - __gmpz_init_set_si(__e_acsl_12,(long)t[i]); - __gmpz_init_set_si(__e_acsl_i,(long)i); - __gmpz_init_set_si(__e_acsl_13,(long)2); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_i), - (__mpz_struct const *)(__e_acsl_13)); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_12), - (__mpz_struct const *)(__e_acsl_add)); - e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Assertion",(char *)"main", - (char *)"t[i] == i+2",19); - __gmpz_clear(__e_acsl_12); - __gmpz_clear(__e_acsl_i); - __gmpz_clear(__e_acsl_13); - __gmpz_clear(__e_acsl_add); - } - /*@ assert t[2-i] ≡ 4-i; */ - { - mpz_t __e_acsl_14; - mpz_t __e_acsl_i_2; - mpz_t __e_acsl_sub; - unsigned long __e_acsl_15; - mpz_t __e_acsl_16; - mpz_t __e_acsl_17; - mpz_t __e_acsl_sub_2; - int __e_acsl_eq_6; - __gmpz_init_set_si(__e_acsl_14,(long)2); - __gmpz_init_set_si(__e_acsl_i_2,(long)i); - __gmpz_init(__e_acsl_sub); - __gmpz_sub(__e_acsl_sub,(__mpz_struct const *)(__e_acsl_14), - (__mpz_struct const *)(__e_acsl_i_2)); - __e_acsl_15 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_sub)); - __gmpz_init_set_si(__e_acsl_16,(long)t[__e_acsl_15]); - __gmpz_init_set_si(__e_acsl_17,(long)4); - __gmpz_init(__e_acsl_sub_2); - __gmpz_sub(__e_acsl_sub_2,(__mpz_struct const *)(__e_acsl_17), - (__mpz_struct const *)(__e_acsl_i_2)); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_16), - (__mpz_struct const *)(__e_acsl_sub_2)); - e_acsl_assert(__e_acsl_eq_6 == 0,(char *)"Assertion",(char *)"main", - (char *)"t[2-i] == 4-i",20); - __gmpz_clear(__e_acsl_14); - __gmpz_clear(__e_acsl_i_2); - __gmpz_clear(__e_acsl_sub); - __gmpz_clear(__e_acsl_16); - __gmpz_clear(__e_acsl_17); - __gmpz_clear(__e_acsl_sub_2); - } - /*@ assert *(&t[2]-i) ≡ 4-i; */ - { - mpz_t __e_acsl_18; - mpz_t __e_acsl_19; - mpz_t __e_acsl_i_3; - mpz_t __e_acsl_sub_3; - int __e_acsl_eq_7; - __gmpz_init_set_si(__e_acsl_18,(long)*(& t[2] - (long)i)); - __gmpz_init_set_si(__e_acsl_19,(long)4); - __gmpz_init_set_si(__e_acsl_i_3,(long)i); - __gmpz_init(__e_acsl_sub_3); - __gmpz_sub(__e_acsl_sub_3,(__mpz_struct const *)(__e_acsl_19), - (__mpz_struct const *)(__e_acsl_i_3)); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_18), - (__mpz_struct const *)(__e_acsl_sub_3)); - e_acsl_assert(__e_acsl_eq_7 == 0,(char *)"Assertion",(char *)"main", - (char *)"*(&t[2]-i) == 4-i",21); - __gmpz_clear(__e_acsl_18); - __gmpz_clear(__e_acsl_19); - __gmpz_clear(__e_acsl_i_3); - __gmpz_clear(__e_acsl_sub_3); - } - i ++; - } - } - __full_init((void *)(& p)); - p = & t[2]; - __initialize((void *)(& t[2]),sizeof(int)); - t[2] = 5; - /*@ assert *p ≡ 5; */ - { - mpz_t __e_acsl_20; - mpz_t __e_acsl_21; - int __e_acsl_eq_8; - __gmpz_init_set_si(__e_acsl_20,(long)*p); - __gmpz_init_set_si(__e_acsl_21,(long)5); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_20), - (__mpz_struct const *)(__e_acsl_21)); - e_acsl_assert(__e_acsl_eq_8 == 0,(char *)"Assertion",(char *)"main", - (char *)"*p == 5",27); - __gmpz_clear(__e_acsl_20); - __gmpz_clear(__e_acsl_21); - } - __retres = 0; - __delete_block((void *)(& p)); - __delete_block((void *)(t)); - __delete_block((void *)(& x)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c index 7eba374f37b83e18e221e1675afa3a6442d0732a..475128740b1e45a9bdef683e1ac84aa4509cfe29 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c @@ -1,103 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int *A; int *B; void f(void) @@ -109,18 +10,18 @@ void f(void) void g(int *C, int *D) { /*@ assert \initialized(&C); */ - __store_block((void *)(& C),4U); + __store_block((void *)(& C),8UL); e_acsl_assert(1,(char *)"Assertion",(char *)"g", - (char *)"\\initialized(&C)",19); + (char *)"\\initialized(&C)",16); __delete_block((void *)(& C)); return; } void __e_acsl_memory_init(void) { - __store_block((void *)(& B),4U); + __store_block((void *)(& B),8UL); __full_init((void *)(& B)); - __store_block((void *)(& A),4U); + __store_block((void *)(& A),8UL); __full_init((void *)(& A)); return; } @@ -131,8 +32,8 @@ int main(void) int *x; int *y; __e_acsl_memory_init(); - __store_block((void *)(& y),4U); - __store_block((void *)(& x),4U); + __store_block((void *)(& y),8UL); + __store_block((void *)(& x),8UL); B = (int *)__e_acsl_malloc(sizeof(int)); __full_init((void *)(& y)); y = (int *)__e_acsl_malloc(sizeof(int)); @@ -141,13 +42,13 @@ int main(void) f(); /*@ assert \initialized(&A); */ e_acsl_assert(1,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&A)",28); + (char *)"\\initialized(&A)",25); /*@ assert \initialized(&x); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)(& x),sizeof(int *)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&x)",29); + (char *)"\\initialized(&x)",26); } g(x,y); __retres = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c deleted file mode 100644 index 7eba374f37b83e18e221e1675afa3a6442d0732a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int *A; -int *B; -void f(void) -{ - A = B; - return; -} - -void g(int *C, int *D) -{ - /*@ assert \initialized(&C); */ - __store_block((void *)(& C),4U); - e_acsl_assert(1,(char *)"Assertion",(char *)"g", - (char *)"\\initialized(&C)",19); - __delete_block((void *)(& C)); - return; -} - -void __e_acsl_memory_init(void) -{ - __store_block((void *)(& B),4U); - __full_init((void *)(& B)); - __store_block((void *)(& A),4U); - __full_init((void *)(& A)); - return; -} - -int main(void) -{ - int __retres; - int *x; - int *y; - __e_acsl_memory_init(); - __store_block((void *)(& y),4U); - __store_block((void *)(& x),4U); - B = (int *)__e_acsl_malloc(sizeof(int)); - __full_init((void *)(& y)); - y = (int *)__e_acsl_malloc(sizeof(int)); - __full_init((void *)(& x)); - x = y; - f(); - /*@ assert \initialized(&A); */ - e_acsl_assert(1,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&A)",28); - /*@ assert \initialized(&x); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)(& x),sizeof(int *)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&x)",29); - } - g(x,y); - __retres = 0; - __delete_block((void *)(& B)); - __delete_block((void *)(& A)); - __delete_block((void *)(& y)); - __delete_block((void *)(& x)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c index e2992629f11b5c954e9c0b134993096a447fdd7e..7afe9f98fcea7da81889cb38008267e61b36c15c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ ensures \result ≡ (int)(\old(x)-\old(x)); */ int f(int x) { @@ -55,9 +15,9 @@ int __e_acsl_f(int x) __e_acsl_at_2 = x; __e_acsl_at = x; __retres = f(x); - e_acsl_assert(__retres == (int)((long long)__e_acsl_at - (long long)__e_acsl_at_2), + e_acsl_assert(__retres == (int)((long)__e_acsl_at - (long)__e_acsl_at_2), (char *)"Postcondition",(char *)"f", - (char *)"\\result == (int)(\\old(x)-\\old(x))",7); + (char *)"\\result == (int)(\\old(x)-\\old(x))",5); return __retres; } @@ -74,7 +34,7 @@ int __e_acsl_g(int x) int __retres; __retres = g(x); e_acsl_assert(__retres == Y,(char *)"Postcondition",(char *)"g", - (char *)"\\result == Y",18); + (char *)"\\result == Y",16); return __retres; } @@ -92,7 +52,7 @@ int __e_acsl_h(void) int __retres; __retres = h(); e_acsl_assert(__retres == 0,(char *)"Postcondition",(char *)"h", - (char *)"\\result == 0",23); + (char *)"\\result == 0",21); return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c deleted file mode 100644 index c8306f004fe026b866e5b75d76866f3715e5c540..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_result2.c +++ /dev/null @@ -1,197 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_sub(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid_read(z); - assigns \result; - assigns \result \from *z; */ -extern __attribute__((__FC_BUILTIN__)) unsigned long __gmpz_get_ui(__mpz_struct const * /*[1]*/ z); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ ensures \result ≡ (int)(\old(x)-\old(x)); */ -int f(int x) -{ - x = 0; - return x; -} - -/*@ ensures \result ≡ (int)(\old(x)-\old(x)); */ -int __e_acsl_f(int x) -{ - int __e_acsl_at_2; - int __e_acsl_at; - int __retres; - __e_acsl_at_2 = x; - __e_acsl_at = x; - __retres = f(x); - { - mpz_t __e_acsl_result; - mpz_t __e_acsl; - mpz_t __e_acsl_sub; - unsigned long __e_acsl_2; - mpz_t __e_acsl_cast; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_result,(long)__retres); - __gmpz_init_set_si(__e_acsl,(long)__e_acsl_at); - __gmpz_init(__e_acsl_sub); - __gmpz_sub(__e_acsl_sub,(__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl)); - __e_acsl_2 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_sub)); - __gmpz_init_set_si(__e_acsl_cast,(long)((int)__e_acsl_2)); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), - (__mpz_struct const *)(__e_acsl_cast)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"f", - (char *)"\\result == (int)(\\old(x)-\\old(x))",7); - __gmpz_clear(__e_acsl_result); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_sub); - __gmpz_clear(__e_acsl_cast); - return __retres; - } -} - -int Y = 1; -/*@ ensures \result ≡ Y; */ -int g(int x) -{ - return x; -} - -/*@ ensures \result ≡ Y; */ -int __e_acsl_g(int x) -{ - int __retres; - __retres = g(x); - { - mpz_t __e_acsl_result; - mpz_t __e_acsl_Y; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_result,(long)__retres); - __gmpz_init_set_si(__e_acsl_Y,(long)Y); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), - (__mpz_struct const *)(__e_acsl_Y)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"g", - (char *)"\\result == Y",18); - __gmpz_clear(__e_acsl_result); - __gmpz_clear(__e_acsl_Y); - return __retres; - } -} - -/*@ ensures \result ≡ 0; */ -int h(void) -{ - int __retres; - __retres = 0; - return __retres; -} - -/*@ ensures \result ≡ 0; */ -int __e_acsl_h(void) -{ - int __retres; - __retres = h(); - { - mpz_t __e_acsl_result; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_result,(long)__retres); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"h", - (char *)"\\result == 0",23); - __gmpz_clear(__e_acsl_result); - __gmpz_clear(__e_acsl); - return __retres; - } -} - -int main(void) -{ - int __retres; - __e_acsl_f(1); - __e_acsl_g(Y); - __e_acsl_h(); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c index 7c3daa2acdceb95c1bbdddc0d17711abdfdd685e..0df54195f104c351d694929c2739eea003cb1856 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -47,7 +7,7 @@ int main(void) x ++; /*@ assert sizeof(int) ≡ sizeof(x); */ e_acsl_assert(4 == 4,(char *)"Assertion",(char *)"main", - (char *)"sizeof(int) == sizeof(x)",10); + (char *)"sizeof(int) == sizeof(x)",8); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c deleted file mode 100644 index e6821c6545f986b0225e6c62a576de27cb0e429c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_sizeof2.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - x ++; - /*@ assert sizeof(int) ≡ sizeof(x); */ - { - mpz_t __e_acsl_sizeof; - mpz_t __e_acsl_sizeof_2; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_sizeof,4L); - __gmpz_init_set_si(__e_acsl_sizeof_2,4L); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_sizeof), - (__mpz_struct const *)(__e_acsl_sizeof_2)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"sizeof(int) == sizeof(x)",10); - __gmpz_clear(__e_acsl_sizeof); - __gmpz_clear(__e_acsl_sizeof_2); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout.c index dcf3ab86d76f91686823a34b45ebfbaeeca36f97..f2ce24f1452338f75e1df12f08217242082115de 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout.c @@ -1,126 +1,6 @@ /* Generated by Frama-C */ char *__e_acsl_literal_string_2; char *__e_acsl_literal_string; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -extern FILE *stdout; - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; -/*@ ensures \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 512-1]); - assigns \result; - assigns \result \from *(filename+(..)), *(mode+(..)), __p_fc_fopen; - */ -extern FILE *fopen(char const *filename, char const *mode); - -/*@ ensures \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 512-1]); - assigns \result; - assigns \result \from *(filename+(..)), *(mode+(..)), __p_fc_fopen; - */ -FILE *__e_acsl_fopen(char const *filename, char const *mode) -{ - FILE *__retres; - __retres = fopen(filename,mode); - return __retres; -} - void __e_acsl_memory_init(void) { __e_acsl_literal_string_2 = "wb"; @@ -148,7 +28,7 @@ int main(void) f2 = __e_acsl_fopen(__e_acsl_literal_string,__e_acsl_literal_string_2); /*@ assert f ≡ __fc_stdout; */ e_acsl_assert(f == stdout,(char *)"Assertion",(char *)"main", - (char *)"f == __fc_stdout",13); + (char *)"f == __fc_stdout",11); __retres = 0; __delete_block((void *)(& stdout)); __delete_block((void *)(& f)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout2.c deleted file mode 100644 index dcf3ab86d76f91686823a34b45ebfbaeeca36f97..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stdout2.c +++ /dev/null @@ -1,159 +0,0 @@ -/* Generated by Frama-C */ -char *__e_acsl_literal_string_2; -char *__e_acsl_literal_string; -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -typedef unsigned int ino_t; -typedef unsigned int gid_t; -typedef unsigned int uid_t; -typedef long time_t; -typedef unsigned int blkcnt_t; -typedef unsigned int blksize_t; -typedef unsigned int dev_t; -typedef unsigned int mode_t; -typedef unsigned int nlink_t; -typedef long off_t; -struct stat { - dev_t st_dev ; - ino_t st_ino ; - mode_t st_mode ; - nlink_t st_nlink ; - uid_t st_uid ; - gid_t st_gid ; - dev_t st_rdev ; - off_t st_size ; - time_t st_atime ; - time_t st_mtime ; - time_t st_ctime ; - blksize_t st_blksize ; - blkcnt_t st_blocks ; -}; -struct __fc_pos_t { - unsigned long __fc_stdio_position ; -}; -typedef struct __fc_pos_t fpos_t; -struct __fc_FILE { - unsigned int __fc_stdio_id ; - fpos_t __fc_position ; - char __fc_error ; - char __fc_eof ; - int __fc_flags ; - struct stat *__fc_inode ; - unsigned char *__fc_real_data ; - int __fc_real_data_max_size ; -}; -typedef struct __fc_FILE FILE; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __literal_string(void *ptr); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -extern FILE *stdout; - -FILE __fc_fopen[512]; -FILE * const __p_fc_fopen = __fc_fopen; -/*@ ensures \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 512-1]); - assigns \result; - assigns \result \from *(filename+(..)), *(mode+(..)), __p_fc_fopen; - */ -extern FILE *fopen(char const *filename, char const *mode); - -/*@ ensures \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 512-1]); - assigns \result; - assigns \result \from *(filename+(..)), *(mode+(..)), __p_fc_fopen; - */ -FILE *__e_acsl_fopen(char const *filename, char const *mode) -{ - FILE *__retres; - __retres = fopen(filename,mode); - return __retres; -} - -void __e_acsl_memory_init(void) -{ - __e_acsl_literal_string_2 = "wb"; - __store_block((void *)__e_acsl_literal_string_2,sizeof("wb")); - __full_init((void *)__e_acsl_literal_string_2); - __literal_string((void *)__e_acsl_literal_string_2); - __e_acsl_literal_string = "/tmp/foo"; - __store_block((void *)__e_acsl_literal_string,sizeof("/tmp/foo")); - __full_init((void *)__e_acsl_literal_string); - __literal_string((void *)__e_acsl_literal_string); - __store_block((void *)(& stdout),8UL); - __full_init((void *)(& stdout)); - return; -} - -int main(void) -{ - int __retres; - FILE *f; - FILE *f2; - __e_acsl_memory_init(); - __store_block((void *)(& f),8UL); - __full_init((void *)(& f)); - f = stdout; - f2 = __e_acsl_fopen(__e_acsl_literal_string,__e_acsl_literal_string_2); - /*@ assert f ≡ __fc_stdout; */ - e_acsl_assert(f == stdout,(char *)"Assertion",(char *)"main", - (char *)"f == __fc_stdout",13); - __retres = 0; - __delete_block((void *)(& stdout)); - __delete_block((void *)(& f)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c index dbada0dda058055449e510f927e7765e00b196fa..666381e892b1de40b033946e2a4aca7720dcc5bb 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -50,27 +10,27 @@ int main(void) { x = 1; e_acsl_assert(x == 1,(char *)"Postcondition",(char *)"main", - (char *)"x == 1",9); + (char *)"x == 1",8); } /*@ ensures x ≡ 2; ensures y ≡ 2; */ { x = 2; e_acsl_assert(x == 2,(char *)"Postcondition",(char *)"main", - (char *)"x == 2",12); + (char *)"x == 2",11); e_acsl_assert(y == 2,(char *)"Postcondition",(char *)"main", - (char *)"y == 2",13); + (char *)"y == 2",12); } /*@ requires x ≡ 2; */ e_acsl_assert(x == 2,(char *)"Precondition",(char *)"main", - (char *)"x == 2",16); + (char *)"x == 2",15); x ++; /*@ requires x ≡ 3; requires y ≡ 2; */ e_acsl_assert(x == 3,(char *)"Precondition",(char *)"main", - (char *)"x == 3",19); + (char *)"x == 3",18); e_acsl_assert(y == 2,(char *)"Precondition",(char *)"main", - (char *)"y == 2",20); + (char *)"y == 2",19); x += y; /*@ behavior b1: requires x ≡ 5; @@ -83,18 +43,16 @@ int main(void) */ { e_acsl_assert(x == 5,(char *)"Precondition",(char *)"main", - (char *)"x == 5",24); - e_acsl_assert((long long)x == (long long)3 + (long long)y, - (char *)"Precondition",(char *)"main",(char *)"x == 3+y", - 27); + (char *)"x == 5",23); + e_acsl_assert((long)x == (long)3 + (long)y,(char *)"Precondition", + (char *)"main",(char *)"x == 3+y",26); e_acsl_assert(y == 2,(char *)"Precondition",(char *)"main", - (char *)"y == 2",28); + (char *)"y == 2",27); x = 3; e_acsl_assert(x == 3,(char *)"Postcondition",(char *)"main", - (char *)"x == 3",25); - e_acsl_assert((long long)x == (long long)y + (long long)1, - (char *)"Postcondition",(char *)"main",(char *)"x == y+1", - 29); + (char *)"x == 3",24); + e_acsl_assert((long)x == (long)y + (long)1,(char *)"Postcondition", + (char *)"main",(char *)"x == y+1",28); } /*@ behavior b1: assumes x ≡ 1; @@ -114,34 +72,34 @@ int main(void) int __e_acsl_implies_3; if (! (x == 1)) __e_acsl_implies = 1; else __e_acsl_implies = x == 0; e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"main", - (char *)"x == 1 ==> x == 0",34); + (char *)"x == 1 ==> x == 0",33); if (x == 3) __e_acsl_and = y == 2; else __e_acsl_and = 0; if (! __e_acsl_and) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = x == 3; e_acsl_assert(__e_acsl_implies_2,(char *)"Precondition",(char *)"main", - (char *)"x == 3 && y == 2 ==> x == 3",38); + (char *)"x == 3 && y == 2 ==> x == 3",37); if (x == 3) __e_acsl_and_2 = y == 2; else __e_acsl_and_2 = 0; if (! __e_acsl_and_2) __e_acsl_implies_3 = 1; - else __e_acsl_implies_3 = (long long)x + (long long)y == (long long)5; + else __e_acsl_implies_3 = (long)x + (long)y == (long)5; e_acsl_assert(__e_acsl_implies_3,(char *)"Precondition",(char *)"main", - (char *)"x == 3 && y == 2 ==> x+y == 5",39); + (char *)"x == 3 && y == 2 ==> x+y == 5",38); x += y; } /*@ requires x ≡ 5; */ e_acsl_assert(x == 5,(char *)"Precondition",(char *)"main", - (char *)"x == 5",42); + (char *)"x == 5",41); /*@ requires y ≡ 2; */ e_acsl_assert(y == 2,(char *)"Precondition",(char *)"main", - (char *)"y == 2",43); + (char *)"y == 2",42); x += y; /*@ requires x ≡ 7; ensures x ≡ 7; */ { e_acsl_assert(x == 7,(char *)"Precondition",(char *)"main", - (char *)"x == 7",46); + (char *)"x == 7",45); __retres = 0; e_acsl_assert(x == 7,(char *)"Postcondition",(char *)"main", - (char *)"x == 7",47); + (char *)"x == 7",46); } return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c deleted file mode 100644 index ac6f0177bbb32b082aaa78486d555bcbdba4e47a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_stmt_contract2.c +++ /dev/null @@ -1,423 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - int y; - x = 0; - y = 2; - /*@ ensures x ≡ 1; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl; - int __e_acsl_eq; - x = 1; - __gmpz_init_set_si(__e_acsl_x,(long)x); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"main", - (char *)"x == 1",9); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl); - } - /*@ ensures x ≡ 2; - ensures y ≡ 2; */ - { - mpz_t __e_acsl_x_2; - mpz_t __e_acsl_2; - int __e_acsl_eq_2; - mpz_t __e_acsl_y; - int __e_acsl_eq_3; - x = 2; - __gmpz_init_set_si(__e_acsl_x_2,(long)x); - __gmpz_init_set_si(__e_acsl_2,(long)2); - __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Postcondition",(char *)"main", - (char *)"x == 2",12); - __gmpz_init_set_si(__e_acsl_y,(long)y); - __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y), - (__mpz_struct const *)(__e_acsl_2)); - e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Postcondition",(char *)"main", - (char *)"y == 2",13); - __gmpz_clear(__e_acsl_x_2); - __gmpz_clear(__e_acsl_2); - __gmpz_clear(__e_acsl_y); - } - /*@ requires x ≡ 2; */ - { - mpz_t __e_acsl_x_3; - mpz_t __e_acsl_3; - int __e_acsl_eq_4; - __gmpz_init_set_si(__e_acsl_x_3,(long)x); - __gmpz_init_set_si(__e_acsl_3,(long)2); - __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_3), - (__mpz_struct const *)(__e_acsl_3)); - e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 2",16); - __gmpz_clear(__e_acsl_x_3); - __gmpz_clear(__e_acsl_3); - x ++; - } - /*@ requires x ≡ 3; - requires y ≡ 2; */ - { - mpz_t __e_acsl_x_4; - mpz_t __e_acsl_4; - int __e_acsl_eq_5; - mpz_t __e_acsl_y_2; - mpz_t __e_acsl_5; - int __e_acsl_eq_6; - __gmpz_init_set_si(__e_acsl_x_4,(long)x); - __gmpz_init_set_si(__e_acsl_4,(long)3); - __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_4), - (__mpz_struct const *)(__e_acsl_4)); - e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 3",19); - __gmpz_init_set_si(__e_acsl_y_2,(long)y); - __gmpz_init_set_si(__e_acsl_5,(long)2); - __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_2), - (__mpz_struct const *)(__e_acsl_5)); - e_acsl_assert(__e_acsl_eq_6 == 0,(char *)"Precondition",(char *)"main", - (char *)"y == 2",20); - __gmpz_clear(__e_acsl_x_4); - __gmpz_clear(__e_acsl_4); - __gmpz_clear(__e_acsl_y_2); - __gmpz_clear(__e_acsl_5); - x += y; - } - /*@ behavior b1: - requires x ≡ 5; - ensures x ≡ 3; - - behavior b2: - requires x ≡ 3+y; - requires y ≡ 2; - ensures x ≡ y+1; - */ - { - mpz_t __e_acsl_x_6; - mpz_t __e_acsl_9; - int __e_acsl_eq_10; - mpz_t __e_acsl_y_4; - mpz_t __e_acsl_10; - mpz_t __e_acsl_add_2; - int __e_acsl_eq_11; - { - mpz_t __e_acsl_x_5; - mpz_t __e_acsl_6; - int __e_acsl_eq_7; - mpz_t __e_acsl_7; - mpz_t __e_acsl_y_3; - mpz_t __e_acsl_add; - int __e_acsl_eq_8; - mpz_t __e_acsl_8; - int __e_acsl_eq_9; - __gmpz_init_set_si(__e_acsl_x_5,(long)x); - __gmpz_init_set_si(__e_acsl_6,(long)5); - __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_5), - (__mpz_struct const *)(__e_acsl_6)); - e_acsl_assert(__e_acsl_eq_7 == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 5",24); - __gmpz_init_set_si(__e_acsl_7,(long)3); - __gmpz_init_set_si(__e_acsl_y_3,(long)y); - __gmpz_init(__e_acsl_add); - __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_7), - (__mpz_struct const *)(__e_acsl_y_3)); - __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_5), - (__mpz_struct const *)(__e_acsl_add)); - e_acsl_assert(__e_acsl_eq_8 == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 3+y",27); - __gmpz_init_set_si(__e_acsl_8,(long)2); - __e_acsl_eq_9 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_3), - (__mpz_struct const *)(__e_acsl_8)); - e_acsl_assert(__e_acsl_eq_9 == 0,(char *)"Precondition",(char *)"main", - (char *)"y == 2",28); - __gmpz_clear(__e_acsl_x_5); - __gmpz_clear(__e_acsl_6); - __gmpz_clear(__e_acsl_7); - __gmpz_clear(__e_acsl_y_3); - __gmpz_clear(__e_acsl_add); - __gmpz_clear(__e_acsl_8); - x = 3; - } - __gmpz_init_set_si(__e_acsl_x_6,(long)x); - __gmpz_init_set_si(__e_acsl_9,(long)3); - __e_acsl_eq_10 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_6), - (__mpz_struct const *)(__e_acsl_9)); - e_acsl_assert(__e_acsl_eq_10 == 0,(char *)"Postcondition",(char *)"main", - (char *)"x == 3",25); - __gmpz_init_set_si(__e_acsl_y_4,(long)y); - __gmpz_init_set_si(__e_acsl_10,(long)1); - __gmpz_init(__e_acsl_add_2); - __gmpz_add(__e_acsl_add_2,(__mpz_struct const *)(__e_acsl_y_4), - (__mpz_struct const *)(__e_acsl_10)); - __e_acsl_eq_11 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_6), - (__mpz_struct const *)(__e_acsl_add_2)); - e_acsl_assert(__e_acsl_eq_11 == 0,(char *)"Postcondition",(char *)"main", - (char *)"x == y+1",29); - __gmpz_clear(__e_acsl_x_6); - __gmpz_clear(__e_acsl_9); - __gmpz_clear(__e_acsl_y_4); - __gmpz_clear(__e_acsl_10); - __gmpz_clear(__e_acsl_add_2); - } - /*@ behavior b1: - assumes x ≡ 1; - requires x ≡ 0; - - behavior b2: - assumes x ≡ 3; - assumes y ≡ 2; - requires x ≡ 3; - requires x+y ≡ 5; - */ - { - mpz_t __e_acsl_x_7; - mpz_t __e_acsl_11; - int __e_acsl_eq_12; - int __e_acsl_implies; - mpz_t __e_acsl_13; - int __e_acsl_eq_14; - int __e_acsl_and; - int __e_acsl_implies_2; - int __e_acsl_eq_17; - int __e_acsl_and_2; - int __e_acsl_implies_3; - __gmpz_init_set_si(__e_acsl_x_7,(long)x); - __gmpz_init_set_si(__e_acsl_11,(long)1); - __e_acsl_eq_12 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_7), - (__mpz_struct const *)(__e_acsl_11)); - if (! (__e_acsl_eq_12 == 0)) __e_acsl_implies = 1; - else { - mpz_t __e_acsl_x_8; - mpz_t __e_acsl_12; - int __e_acsl_eq_13; - __gmpz_init_set_si(__e_acsl_x_8,(long)x); - __gmpz_init_set_si(__e_acsl_12,(long)0); - __e_acsl_eq_13 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_8), - (__mpz_struct const *)(__e_acsl_12)); - __e_acsl_implies = __e_acsl_eq_13 == 0; - __gmpz_clear(__e_acsl_x_8); - __gmpz_clear(__e_acsl_12); - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"main", - (char *)"x == 1 ==> x == 0",34); - __gmpz_init_set_si(__e_acsl_13,(long)3); - __e_acsl_eq_14 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_7), - (__mpz_struct const *)(__e_acsl_13)); - if (__e_acsl_eq_14 == 0) { - mpz_t __e_acsl_y_5; - mpz_t __e_acsl_14; - int __e_acsl_eq_15; - __gmpz_init_set_si(__e_acsl_y_5,(long)y); - __gmpz_init_set_si(__e_acsl_14,(long)2); - __e_acsl_eq_15 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_5), - (__mpz_struct const *)(__e_acsl_14)); - __e_acsl_and = __e_acsl_eq_15 == 0; - __gmpz_clear(__e_acsl_y_5); - __gmpz_clear(__e_acsl_14); - } - else __e_acsl_and = 0; - if (! __e_acsl_and) __e_acsl_implies_2 = 1; - else { - mpz_t __e_acsl_x_9; - mpz_t __e_acsl_15; - int __e_acsl_eq_16; - __gmpz_init_set_si(__e_acsl_x_9,(long)x); - __gmpz_init_set_si(__e_acsl_15,(long)3); - __e_acsl_eq_16 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_9), - (__mpz_struct const *)(__e_acsl_15)); - __e_acsl_implies_2 = __e_acsl_eq_16 == 0; - __gmpz_clear(__e_acsl_x_9); - __gmpz_clear(__e_acsl_15); - } - e_acsl_assert(__e_acsl_implies_2,(char *)"Precondition",(char *)"main", - (char *)"x == 3 && y == 2 ==> x == 3",38); - __e_acsl_eq_17 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_7), - (__mpz_struct const *)(__e_acsl_13)); - if (__e_acsl_eq_17 == 0) { - mpz_t __e_acsl_y_6; - mpz_t __e_acsl_16; - int __e_acsl_eq_18; - __gmpz_init_set_si(__e_acsl_y_6,(long)y); - __gmpz_init_set_si(__e_acsl_16,(long)2); - __e_acsl_eq_18 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_6), - (__mpz_struct const *)(__e_acsl_16)); - __e_acsl_and_2 = __e_acsl_eq_18 == 0; - __gmpz_clear(__e_acsl_y_6); - __gmpz_clear(__e_acsl_16); - } - else __e_acsl_and_2 = 0; - if (! __e_acsl_and_2) __e_acsl_implies_3 = 1; - else { - mpz_t __e_acsl_x_10; - mpz_t __e_acsl_y_7; - mpz_t __e_acsl_add_3; - mpz_t __e_acsl_17; - int __e_acsl_eq_19; - __gmpz_init_set_si(__e_acsl_x_10,(long)x); - __gmpz_init_set_si(__e_acsl_y_7,(long)y); - __gmpz_init(__e_acsl_add_3); - __gmpz_add(__e_acsl_add_3,(__mpz_struct const *)(__e_acsl_x_10), - (__mpz_struct const *)(__e_acsl_y_7)); - __gmpz_init_set_si(__e_acsl_17,(long)5); - __e_acsl_eq_19 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_add_3), - (__mpz_struct const *)(__e_acsl_17)); - __e_acsl_implies_3 = __e_acsl_eq_19 == 0; - __gmpz_clear(__e_acsl_x_10); - __gmpz_clear(__e_acsl_y_7); - __gmpz_clear(__e_acsl_add_3); - __gmpz_clear(__e_acsl_17); - } - e_acsl_assert(__e_acsl_implies_3,(char *)"Precondition",(char *)"main", - (char *)"x == 3 && y == 2 ==> x+y == 5",39); - __gmpz_clear(__e_acsl_x_7); - __gmpz_clear(__e_acsl_11); - __gmpz_clear(__e_acsl_13); - x += y; - } - /*@ requires x ≡ 5; */ - { - mpz_t __e_acsl_x_11; - mpz_t __e_acsl_18; - int __e_acsl_eq_20; - __gmpz_init_set_si(__e_acsl_x_11,(long)x); - __gmpz_init_set_si(__e_acsl_18,(long)5); - __e_acsl_eq_20 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_11), - (__mpz_struct const *)(__e_acsl_18)); - e_acsl_assert(__e_acsl_eq_20 == 0,(char *)"Precondition",(char *)"main", - (char *)"x == 5",42); - __gmpz_clear(__e_acsl_x_11); - __gmpz_clear(__e_acsl_18); - /*@ requires y ≡ 2; */ - { - mpz_t __e_acsl_y_8; - mpz_t __e_acsl_19; - int __e_acsl_eq_21; - __gmpz_init_set_si(__e_acsl_y_8,(long)y); - __gmpz_init_set_si(__e_acsl_19,(long)2); - __e_acsl_eq_21 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_8), - (__mpz_struct const *)(__e_acsl_19)); - e_acsl_assert(__e_acsl_eq_21 == 0,(char *)"Precondition", - (char *)"main",(char *)"y == 2",43); - __gmpz_clear(__e_acsl_y_8); - __gmpz_clear(__e_acsl_19); - x += y; - } - } - /*@ requires x ≡ 7; - ensures x ≡ 7; */ - { - mpz_t __e_acsl_x_13; - mpz_t __e_acsl_21; - int __e_acsl_eq_23; - { - mpz_t __e_acsl_x_12; - mpz_t __e_acsl_20; - int __e_acsl_eq_22; - __gmpz_init_set_si(__e_acsl_x_12,(long)x); - __gmpz_init_set_si(__e_acsl_20,(long)7); - __e_acsl_eq_22 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_12), - (__mpz_struct const *)(__e_acsl_20)); - e_acsl_assert(__e_acsl_eq_22 == 0,(char *)"Precondition", - (char *)"main",(char *)"x == 7",46); - __gmpz_clear(__e_acsl_x_12); - __gmpz_clear(__e_acsl_20); - __retres = 0; - } - __gmpz_init_set_si(__e_acsl_x_13,(long)x); - __gmpz_init_set_si(__e_acsl_21,(long)7); - __e_acsl_eq_23 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_13), - (__mpz_struct const *)(__e_acsl_21)); - e_acsl_assert(__e_acsl_eq_23 == 0,(char *)"Postcondition",(char *)"main", - (char *)"x == 7",47); - __gmpz_clear(__e_acsl_x_13); - __gmpz_clear(__e_acsl_21); - } - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c index c7f61875787758513755bd9b4326dfd98efc3e98..27e8e5cb7c879b4ad6467ae6eb3e370c33dc4667 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -46,7 +6,7 @@ int main(void) x = 0; x ++; /*@ assert \true; */ - e_acsl_assert(1,(char *)"Assertion",(char *)"main",(char *)"\\true",10); + e_acsl_assert(1,(char *)"Assertion",(char *)"main",(char *)"\\true",8); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c deleted file mode 100644 index c7f61875787758513755bd9b4326dfd98efc3e98..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_true2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - int x; - x = 0; - x ++; - /*@ assert \true; */ - e_acsl_assert(1,(char *)"Assertion",(char *)"main",(char *)"\\true",10); - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c index 146b775b2f6bf29a8c7b7ccd6441a77c5e4f41d3..c8a8865a4fd4162952bcc2cdf6b2c2c75082903d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef.c @@ -1,45 +1,5 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; typedef unsigned char uint8; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -47,7 +7,7 @@ int main(void) x = (unsigned char)0; /*@ assert x ≡ 0; */ e_acsl_assert((int)x == 0,(char *)"Assertion",(char *)"main", - (char *)"x == 0",11); + (char *)"x == 0",9); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c deleted file mode 100644 index 09cb51fe38a3edcc4963c0386f163914229ba686..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_typedef2.c +++ /dev/null @@ -1,99 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -typedef unsigned char uint8; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_ui(__mpz_struct * /*[1]*/ z, - unsigned long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -int main(void) -{ - int __retres; - uint8 x; - x = (unsigned char)0; - /*@ assert x ≡ 0; */ - { - mpz_t __e_acsl_x; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_ui(__e_acsl_x,(unsigned long)x); - __gmpz_init_set_si(__e_acsl,(long)0); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"x == 0",11); - __gmpz_clear(__e_acsl_x); - __gmpz_clear(__e_acsl); - } - __retres = 0; - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid.c index aeef2091f8929b09f759b0997fed1aa7b0980417..d0efabe52040bca9d9340ae942d540a1c44de193 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid.c @@ -1,166 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int *X; int Z; /*@ requires \valid(x); @@ -182,7 +20,7 @@ int *f(int *x) } else __e_acsl_and = 0; e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"f", - (char *)"!\\valid(y)",19); + (char *)"!\\valid(y)",17); } __full_init((void *)(& y)); y = x; @@ -191,7 +29,7 @@ int *f(int *x) int __e_acsl_valid_2; __e_acsl_valid_2 = __valid((void *)x,sizeof(int)); e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"f", - (char *)"\\valid(x)",21); + (char *)"\\valid(x)",19); } __delete_block((void *)(& x)); __delete_block((void *)(& y)); @@ -209,14 +47,14 @@ int *__e_acsl_f(int *x) __store_block((void *)(& x),8UL); __e_acsl_valid = __valid((void *)x,sizeof(int)); e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"f", - (char *)"\\valid(x)",15); + (char *)"\\valid(x)",13); __retres = f(x); } { int __e_acsl_valid_2; __e_acsl_valid_2 = __valid((void *)__retres,sizeof(int)); e_acsl_assert(__e_acsl_valid_2,(char *)"Postcondition",(char *)"f", - (char *)"\\valid(\\result)",16); + (char *)"\\valid(\\result)",14); __delete_block((void *)(& x)); __delete_block((void *)(& __retres)); return __retres; @@ -254,13 +92,13 @@ void g(void) } else __e_acsl_and = 0; e_acsl_assert(__e_acsl_and,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(p)",30); + (char *)"mem_access: \\valid_read(p)",28); __e_acsl_valid = __valid((void *)*p,sizeof(int)); __e_acsl_and_2 = __e_acsl_valid; } else __e_acsl_and_2 = 0; e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"g", - (char *)"\\valid(*p)",30); + (char *)"\\valid(*p)",28); } __delete_block((void *)(& p)); __delete_block((void *)(& u)); @@ -326,7 +164,7 @@ int main(void) } else __e_acsl_and_4 = 0; e_acsl_assert(__e_acsl_and_4,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b) && !\\valid(X)",35); + (char *)"!\\valid(a) && !\\valid(b) && !\\valid(X)",33); } __full_init((void *)(& a)); a = (int *)__e_acsl_malloc(sizeof(int)); @@ -363,7 +201,7 @@ int main(void) } else __e_acsl_and_8 = 0; e_acsl_assert(__e_acsl_and_8,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && !\\valid(b) && !\\valid(X)",37); + (char *)"\\valid(a) && !\\valid(b) && !\\valid(X)",35); } X = a; /*@ assert \valid(a) ∧ ¬\valid(b) ∧ \valid(X); */ @@ -399,7 +237,7 @@ int main(void) } else __e_acsl_and_12 = 0; e_acsl_assert(__e_acsl_and_12,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && !\\valid(b) && \\valid(X)",39); + (char *)"\\valid(a) && !\\valid(b) && \\valid(X)",37); } __full_init((void *)(& b)); b = __e_acsl_f(& n); @@ -436,7 +274,7 @@ int main(void) } else __e_acsl_and_16 = 0; e_acsl_assert(__e_acsl_and_16,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b) && \\valid(X)",41); + (char *)"\\valid(a) && \\valid(b) && \\valid(X)",39); } X = b; /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ @@ -472,7 +310,7 @@ int main(void) } else __e_acsl_and_20 = 0; e_acsl_assert(__e_acsl_and_20,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b) && \\valid(X)",43); + (char *)"\\valid(a) && \\valid(b) && \\valid(X)",41); } __full_init((void *)(& c)); c = & a; @@ -495,13 +333,13 @@ int main(void) } else __e_acsl_and_21 = 0; e_acsl_assert(__e_acsl_and_21,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(c)",46); + (char *)"mem_access: \\valid_read(c)",44); __e_acsl_valid_16 = __valid((void *)*c,sizeof(int)); __e_acsl_and_22 = __e_acsl_valid_16; } else __e_acsl_and_22 = 0; e_acsl_assert(__e_acsl_and_22,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*c)",46); + (char *)"\\valid(*c)",44); } /*@ assert \valid(*(*d)); */ { @@ -510,7 +348,7 @@ int main(void) int __e_acsl_and_26; __e_acsl_valid_read_2 = __valid_read((void *)d,sizeof(int **)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); + (char *)"mem_access: \\valid_read(d)",45); __e_acsl_initialized_13 = __initialized((void *)*d,sizeof(int *)); if (__e_acsl_initialized_13) { int __e_acsl_initialized_14; @@ -532,13 +370,13 @@ int main(void) } else __e_acsl_and_23 = 0; e_acsl_assert(__e_acsl_and_23,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); + (char *)"mem_access: \\valid_read(d)",45); __e_acsl_valid_read_4 = __valid_read((void *)*d,sizeof(int *)); __e_acsl_and_24 = __e_acsl_valid_read_4; } else __e_acsl_and_24 = 0; e_acsl_assert(__e_acsl_and_24,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(*d)",47); + (char *)"mem_access: \\valid_read(*d)",45); __e_acsl_initialized_16 = __initialized((void *)(& d),sizeof(int ***)); if (__e_acsl_initialized_16) { int __e_acsl_valid_read_5; @@ -547,13 +385,13 @@ int main(void) } else __e_acsl_and_25 = 0; e_acsl_assert(__e_acsl_and_25,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); + (char *)"mem_access: \\valid_read(d)",45); __e_acsl_valid_17 = __valid((void *)*(*d),sizeof(int)); __e_acsl_and_26 = __e_acsl_valid_17; } else __e_acsl_and_26 = 0; e_acsl_assert(__e_acsl_and_26,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*(*d))",47); + (char *)"\\valid(*(*d))",45); } __e_acsl_free((void *)a); /*@ assert ¬\valid(a) ∧ \valid(b) ∧ \valid(X); */ @@ -565,6 +403,7 @@ int main(void) __e_acsl_initialized_17 = __initialized((void *)(& a),sizeof(int *)); if (__e_acsl_initialized_17) { int __e_acsl_valid_18; + /*@ assert Value: dangling_pointer: ¬\dangling(&a); */ __e_acsl_valid_18 = __valid((void *)a,sizeof(int)); __e_acsl_and_27 = __e_acsl_valid_18; } @@ -589,14 +428,14 @@ int main(void) } else __e_acsl_and_30 = 0; e_acsl_assert(__e_acsl_and_30,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && \\valid(b) && \\valid(X)",49); + (char *)"!\\valid(a) && \\valid(b) && \\valid(X)",47); } /*@ assert \valid(&Z); */ { int __e_acsl_valid_21; __e_acsl_valid_21 = __valid((void *)(& Z),sizeof(int)); e_acsl_assert(__e_acsl_valid_21,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&Z)",50); + (char *)"\\valid(&Z)",48); } g(); __retres = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid2.c deleted file mode 100644 index aeef2091f8929b09f759b0997fed1aa7b0980417..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid2.c +++ /dev/null @@ -1,614 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned long size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),8UL); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),8UL); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4UL); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int *X; -int Z; -/*@ requires \valid(x); - ensures \valid(\result); */ -int *f(int *x) -{ - int *y; - __store_block((void *)(& y),8UL); - /*@ assert ¬\valid(y); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - __store_block((void *)(& x),8UL); - __e_acsl_initialized = __initialized((void *)(& y),sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)y,sizeof(int)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - e_acsl_assert(! __e_acsl_and,(char *)"Assertion",(char *)"f", - (char *)"!\\valid(y)",19); - } - __full_init((void *)(& y)); - y = x; - /*@ assert \valid(x); */ - { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)x,sizeof(int)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Assertion",(char *)"f", - (char *)"\\valid(x)",21); - } - __delete_block((void *)(& x)); - __delete_block((void *)(& y)); - return y; -} - -/*@ requires \valid(x); - ensures \valid(\result); */ -int *__e_acsl_f(int *x) -{ - int *__retres; - __store_block((void *)(& __retres),8UL); - { - int __e_acsl_valid; - __store_block((void *)(& x),8UL); - __e_acsl_valid = __valid((void *)x,sizeof(int)); - e_acsl_assert(__e_acsl_valid,(char *)"Precondition",(char *)"f", - (char *)"\\valid(x)",15); - __retres = f(x); - } - { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)__retres,sizeof(int)); - e_acsl_assert(__e_acsl_valid_2,(char *)"Postcondition",(char *)"f", - (char *)"\\valid(\\result)",16); - __delete_block((void *)(& x)); - __delete_block((void *)(& __retres)); - return __retres; - } -} - -void g(void) -{ - int m; - int *u; - int **p; - __store_block((void *)(& p),8UL); - __store_block((void *)(& u),8UL); - __store_block((void *)(& m),4UL); - __full_init((void *)(& p)); - p = & u; - __full_init((void *)(& u)); - u = & m; - __full_init((void *)(& m)); - m = 123; - /*@ assert \valid(*p); */ - { - int __e_acsl_initialized; - int __e_acsl_and_2; - __e_acsl_initialized = __initialized((void *)p,sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_initialized_2; - int __e_acsl_and; - int __e_acsl_valid; - __e_acsl_initialized_2 = __initialized((void *)(& p),sizeof(int **)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid_read; - __e_acsl_valid_read = __valid_read((void *)p,sizeof(int *)); - __e_acsl_and = __e_acsl_valid_read; - } - else __e_acsl_and = 0; - e_acsl_assert(__e_acsl_and,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(p)",30); - __e_acsl_valid = __valid((void *)*p,sizeof(int)); - __e_acsl_and_2 = __e_acsl_valid; - } - else __e_acsl_and_2 = 0; - e_acsl_assert(__e_acsl_and_2,(char *)"Assertion",(char *)"g", - (char *)"\\valid(*p)",30); - } - __delete_block((void *)(& p)); - __delete_block((void *)(& u)); - __delete_block((void *)(& m)); - return; -} - -void __e_acsl_memory_init(void) -{ - __store_block((void *)(& Z),4UL); - __full_init((void *)(& Z)); - __store_block((void *)(& X),8UL); - __full_init((void *)(& X)); - return; -} - -int main(void) -{ - int __retres; - int *a; - int *b; - int **c; - int ***d; - int n; - __e_acsl_memory_init(); - __store_block((void *)(& n),4UL); - __store_block((void *)(& d),8UL); - __store_block((void *)(& c),8UL); - __store_block((void *)(& b),8UL); - __store_block((void *)(& a),8UL); - __full_init((void *)(& n)); - n = 0; - /*@ assert ¬\valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - int __e_acsl_and_3; - int __e_acsl_and_4; - __e_acsl_initialized = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)a,sizeof(int)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - if (! __e_acsl_and) { - int __e_acsl_initialized_2; - int __e_acsl_and_2; - __e_acsl_initialized_2 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)b,sizeof(int)); - __e_acsl_and_2 = __e_acsl_valid_2; - } - else __e_acsl_and_2 = 0; - __e_acsl_and_3 = ! __e_acsl_and_2; - } - else __e_acsl_and_3 = 0; - if (__e_acsl_and_3) { - int __e_acsl_valid_3; - __e_acsl_valid_3 = __valid((void *)X,sizeof(int)); - __e_acsl_and_4 = ! __e_acsl_valid_3; - } - else __e_acsl_and_4 = 0; - e_acsl_assert(__e_acsl_and_4,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b) && !\\valid(X)",35); - } - __full_init((void *)(& a)); - a = (int *)__e_acsl_malloc(sizeof(int)); - /*@ assert \valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ - { - int __e_acsl_initialized_3; - int __e_acsl_and_5; - int __e_acsl_and_7; - int __e_acsl_and_8; - __e_acsl_initialized_3 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_3) { - int __e_acsl_valid_4; - __e_acsl_valid_4 = __valid((void *)a,sizeof(int)); - __e_acsl_and_5 = __e_acsl_valid_4; - } - else __e_acsl_and_5 = 0; - if (__e_acsl_and_5) { - int __e_acsl_initialized_4; - int __e_acsl_and_6; - __e_acsl_initialized_4 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_4) { - int __e_acsl_valid_5; - __e_acsl_valid_5 = __valid((void *)b,sizeof(int)); - __e_acsl_and_6 = __e_acsl_valid_5; - } - else __e_acsl_and_6 = 0; - __e_acsl_and_7 = ! __e_acsl_and_6; - } - else __e_acsl_and_7 = 0; - if (__e_acsl_and_7) { - int __e_acsl_valid_6; - __e_acsl_valid_6 = __valid((void *)X,sizeof(int)); - __e_acsl_and_8 = ! __e_acsl_valid_6; - } - else __e_acsl_and_8 = 0; - e_acsl_assert(__e_acsl_and_8,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && !\\valid(b) && !\\valid(X)",37); - } - X = a; - /*@ assert \valid(a) ∧ ¬\valid(b) ∧ \valid(X); */ - { - int __e_acsl_initialized_5; - int __e_acsl_and_9; - int __e_acsl_and_11; - int __e_acsl_and_12; - __e_acsl_initialized_5 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_5) { - int __e_acsl_valid_7; - __e_acsl_valid_7 = __valid((void *)a,sizeof(int)); - __e_acsl_and_9 = __e_acsl_valid_7; - } - else __e_acsl_and_9 = 0; - if (__e_acsl_and_9) { - int __e_acsl_initialized_6; - int __e_acsl_and_10; - __e_acsl_initialized_6 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_6) { - int __e_acsl_valid_8; - __e_acsl_valid_8 = __valid((void *)b,sizeof(int)); - __e_acsl_and_10 = __e_acsl_valid_8; - } - else __e_acsl_and_10 = 0; - __e_acsl_and_11 = ! __e_acsl_and_10; - } - else __e_acsl_and_11 = 0; - if (__e_acsl_and_11) { - int __e_acsl_valid_9; - __e_acsl_valid_9 = __valid((void *)X,sizeof(int)); - __e_acsl_and_12 = __e_acsl_valid_9; - } - else __e_acsl_and_12 = 0; - e_acsl_assert(__e_acsl_and_12,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && !\\valid(b) && \\valid(X)",39); - } - __full_init((void *)(& b)); - b = __e_acsl_f(& n); - /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ - { - int __e_acsl_initialized_7; - int __e_acsl_and_13; - int __e_acsl_and_15; - int __e_acsl_and_16; - __e_acsl_initialized_7 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_7) { - int __e_acsl_valid_10; - __e_acsl_valid_10 = __valid((void *)a,sizeof(int)); - __e_acsl_and_13 = __e_acsl_valid_10; - } - else __e_acsl_and_13 = 0; - if (__e_acsl_and_13) { - int __e_acsl_initialized_8; - int __e_acsl_and_14; - __e_acsl_initialized_8 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_8) { - int __e_acsl_valid_11; - __e_acsl_valid_11 = __valid((void *)b,sizeof(int)); - __e_acsl_and_14 = __e_acsl_valid_11; - } - else __e_acsl_and_14 = 0; - __e_acsl_and_15 = __e_acsl_and_14; - } - else __e_acsl_and_15 = 0; - if (__e_acsl_and_15) { - int __e_acsl_valid_12; - __e_acsl_valid_12 = __valid((void *)X,sizeof(int)); - __e_acsl_and_16 = __e_acsl_valid_12; - } - else __e_acsl_and_16 = 0; - e_acsl_assert(__e_acsl_and_16,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b) && \\valid(X)",41); - } - X = b; - /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ - { - int __e_acsl_initialized_9; - int __e_acsl_and_17; - int __e_acsl_and_19; - int __e_acsl_and_20; - __e_acsl_initialized_9 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_9) { - int __e_acsl_valid_13; - __e_acsl_valid_13 = __valid((void *)a,sizeof(int)); - __e_acsl_and_17 = __e_acsl_valid_13; - } - else __e_acsl_and_17 = 0; - if (__e_acsl_and_17) { - int __e_acsl_initialized_10; - int __e_acsl_and_18; - __e_acsl_initialized_10 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_10) { - int __e_acsl_valid_14; - __e_acsl_valid_14 = __valid((void *)b,sizeof(int)); - __e_acsl_and_18 = __e_acsl_valid_14; - } - else __e_acsl_and_18 = 0; - __e_acsl_and_19 = __e_acsl_and_18; - } - else __e_acsl_and_19 = 0; - if (__e_acsl_and_19) { - int __e_acsl_valid_15; - __e_acsl_valid_15 = __valid((void *)X,sizeof(int)); - __e_acsl_and_20 = __e_acsl_valid_15; - } - else __e_acsl_and_20 = 0; - e_acsl_assert(__e_acsl_and_20,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b) && \\valid(X)",43); - } - __full_init((void *)(& c)); - c = & a; - __full_init((void *)(& d)); - d = & c; - /*@ assert \valid(*c); */ - { - int __e_acsl_initialized_11; - int __e_acsl_and_22; - __e_acsl_initialized_11 = __initialized((void *)c,sizeof(int *)); - if (__e_acsl_initialized_11) { - int __e_acsl_initialized_12; - int __e_acsl_and_21; - int __e_acsl_valid_16; - __e_acsl_initialized_12 = __initialized((void *)(& c),sizeof(int **)); - if (__e_acsl_initialized_12) { - int __e_acsl_valid_read; - __e_acsl_valid_read = __valid_read((void *)c,sizeof(int *)); - __e_acsl_and_21 = __e_acsl_valid_read; - } - else __e_acsl_and_21 = 0; - e_acsl_assert(__e_acsl_and_21,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(c)",46); - __e_acsl_valid_16 = __valid((void *)*c,sizeof(int)); - __e_acsl_and_22 = __e_acsl_valid_16; - } - else __e_acsl_and_22 = 0; - e_acsl_assert(__e_acsl_and_22,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*c)",46); - } - /*@ assert \valid(*(*d)); */ - { - int __e_acsl_valid_read_2; - int __e_acsl_initialized_13; - int __e_acsl_and_26; - __e_acsl_valid_read_2 = __valid_read((void *)d,sizeof(int **)); - e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); - __e_acsl_initialized_13 = __initialized((void *)*d,sizeof(int *)); - if (__e_acsl_initialized_13) { - int __e_acsl_initialized_14; - int __e_acsl_and_24; - int __e_acsl_initialized_16; - int __e_acsl_and_25; - int __e_acsl_valid_17; - __e_acsl_initialized_14 = __initialized((void *)d,sizeof(int **)); - if (__e_acsl_initialized_14) { - int __e_acsl_initialized_15; - int __e_acsl_and_23; - int __e_acsl_valid_read_4; - __e_acsl_initialized_15 = __initialized((void *)(& d), - sizeof(int ***)); - if (__e_acsl_initialized_15) { - int __e_acsl_valid_read_3; - __e_acsl_valid_read_3 = __valid_read((void *)d,sizeof(int **)); - __e_acsl_and_23 = __e_acsl_valid_read_3; - } - else __e_acsl_and_23 = 0; - e_acsl_assert(__e_acsl_and_23,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); - __e_acsl_valid_read_4 = __valid_read((void *)*d,sizeof(int *)); - __e_acsl_and_24 = __e_acsl_valid_read_4; - } - else __e_acsl_and_24 = 0; - e_acsl_assert(__e_acsl_and_24,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(*d)",47); - __e_acsl_initialized_16 = __initialized((void *)(& d),sizeof(int ***)); - if (__e_acsl_initialized_16) { - int __e_acsl_valid_read_5; - __e_acsl_valid_read_5 = __valid_read((void *)d,sizeof(int **)); - __e_acsl_and_25 = __e_acsl_valid_read_5; - } - else __e_acsl_and_25 = 0; - e_acsl_assert(__e_acsl_and_25,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(d)",47); - __e_acsl_valid_17 = __valid((void *)*(*d),sizeof(int)); - __e_acsl_and_26 = __e_acsl_valid_17; - } - else __e_acsl_and_26 = 0; - e_acsl_assert(__e_acsl_and_26,(char *)"Assertion",(char *)"main", - (char *)"\\valid(*(*d))",47); - } - __e_acsl_free((void *)a); - /*@ assert ¬\valid(a) ∧ \valid(b) ∧ \valid(X); */ - { - int __e_acsl_initialized_17; - int __e_acsl_and_27; - int __e_acsl_and_29; - int __e_acsl_and_30; - __e_acsl_initialized_17 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_17) { - int __e_acsl_valid_18; - __e_acsl_valid_18 = __valid((void *)a,sizeof(int)); - __e_acsl_and_27 = __e_acsl_valid_18; - } - else __e_acsl_and_27 = 0; - if (! __e_acsl_and_27) { - int __e_acsl_initialized_18; - int __e_acsl_and_28; - __e_acsl_initialized_18 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_18) { - int __e_acsl_valid_19; - __e_acsl_valid_19 = __valid((void *)b,sizeof(int)); - __e_acsl_and_28 = __e_acsl_valid_19; - } - else __e_acsl_and_28 = 0; - __e_acsl_and_29 = __e_acsl_and_28; - } - else __e_acsl_and_29 = 0; - if (__e_acsl_and_29) { - int __e_acsl_valid_20; - __e_acsl_valid_20 = __valid((void *)X,sizeof(int)); - __e_acsl_and_30 = __e_acsl_valid_20; - } - else __e_acsl_and_30 = 0; - e_acsl_assert(__e_acsl_and_30,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && \\valid(b) && \\valid(X)",49); - } - /*@ assert \valid(&Z); */ - { - int __e_acsl_valid_21; - __e_acsl_valid_21 = __valid((void *)(& Z),sizeof(int)); - e_acsl_assert(__e_acsl_valid_21,(char *)"Assertion",(char *)"main", - (char *)"\\valid(&Z)",50); - } - g(); - __retres = 0; - __delete_block((void *)(& Z)); - __delete_block((void *)(& X)); - __delete_block((void *)(& n)); - __delete_block((void *)(& d)); - __delete_block((void *)(& c)); - __delete_block((void *)(& b)); - __delete_block((void *)(& a)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias.c index 9298497a1ff5db75741a00f45d3d769bf9f69bd1..4be590b8ffb86a000eba31459d37cb4973adf222 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias.c @@ -1,178 +1,12 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int main(void) { int __retres; int *a; int *b; int n; - __store_block((void *)(& b),4U); - __store_block((void *)(& a),4U); + __store_block((void *)(& b),8UL); + __store_block((void *)(& a),8UL); n = 0; /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ { @@ -200,7 +34,7 @@ int main(void) } else __e_acsl_and_3 = 0; e_acsl_assert(__e_acsl_and_3,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b)",12); + (char *)"!\\valid(a) && !\\valid(b)",10); } __full_init((void *)(& a)); a = (int *)__e_acsl_malloc(sizeof(int)); @@ -234,7 +68,7 @@ int main(void) } else __e_acsl_and_6 = 0; e_acsl_assert(__e_acsl_and_6,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b)",16); + (char *)"\\valid(a) && \\valid(b)",14); } /*@ assert *b ≡ n; */ { @@ -248,9 +82,9 @@ int main(void) } else __e_acsl_and_7 = 0; e_acsl_assert(__e_acsl_and_7,(char *)"RTE",(char *)"main", - (char *)"mem_access: \\valid_read(b)",17); + (char *)"mem_access: \\valid_read(b)",15); e_acsl_assert(*b == n,(char *)"Assertion",(char *)"main", - (char *)"*b == n",17); + (char *)"*b == n",15); } __e_acsl_free((void *)b); /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ @@ -261,6 +95,7 @@ int main(void) __e_acsl_initialized_6 = __initialized((void *)(& a),sizeof(int *)); if (__e_acsl_initialized_6) { int __e_acsl_valid_5; + /*@ assert Value: dangling_pointer: ¬\dangling(&a); */ __e_acsl_valid_5 = __valid((void *)a,sizeof(int)); __e_acsl_and_8 = __e_acsl_valid_5; } @@ -271,6 +106,7 @@ int main(void) __e_acsl_initialized_7 = __initialized((void *)(& b),sizeof(int *)); if (__e_acsl_initialized_7) { int __e_acsl_valid_6; + /*@ assert Value: dangling_pointer: ¬\dangling(&b); */ __e_acsl_valid_6 = __valid((void *)b,sizeof(int)); __e_acsl_and_9 = __e_acsl_valid_6; } @@ -279,7 +115,7 @@ int main(void) } else __e_acsl_and_10 = 0; e_acsl_assert(__e_acsl_and_10,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b)",19); + (char *)"!\\valid(a) && !\\valid(b)",17); } __retres = 0; __delete_block((void *)(& b)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias2.c deleted file mode 100644 index 74650f013f2d505d7b3962151d85a55cbacdb41d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_alias2.c +++ /dev/null @@ -1,303 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int main(void) -{ - int __retres; - int *a; - int *b; - int n; - __store_block((void *)(& b),4U); - __store_block((void *)(& a),4U); - n = 0; - /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ - { - int __e_acsl_initialized; - int __e_acsl_and; - int __e_acsl_and_3; - __e_acsl_initialized = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized) { - int __e_acsl_valid; - __e_acsl_valid = __valid((void *)a,sizeof(int)); - __e_acsl_and = __e_acsl_valid; - } - else __e_acsl_and = 0; - if (! __e_acsl_and) { - int __e_acsl_initialized_2; - int __e_acsl_and_2; - __e_acsl_initialized_2 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_2) { - int __e_acsl_valid_2; - __e_acsl_valid_2 = __valid((void *)b,sizeof(int)); - __e_acsl_and_2 = __e_acsl_valid_2; - } - else __e_acsl_and_2 = 0; - __e_acsl_and_3 = ! __e_acsl_and_2; - } - else __e_acsl_and_3 = 0; - e_acsl_assert(__e_acsl_and_3,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b)",12); - } - __full_init((void *)(& a)); - a = (int *)__e_acsl_malloc(sizeof(int)); - __initialize((void *)a,sizeof(int)); - *a = n; - __full_init((void *)(& b)); - b = a; - /*@ assert \valid(a) ∧ \valid(b); */ - { - int __e_acsl_initialized_3; - int __e_acsl_and_4; - int __e_acsl_and_6; - __e_acsl_initialized_3 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_3) { - int __e_acsl_valid_3; - __e_acsl_valid_3 = __valid((void *)a,sizeof(int)); - __e_acsl_and_4 = __e_acsl_valid_3; - } - else __e_acsl_and_4 = 0; - if (__e_acsl_and_4) { - int __e_acsl_initialized_4; - int __e_acsl_and_5; - __e_acsl_initialized_4 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_4) { - int __e_acsl_valid_4; - __e_acsl_valid_4 = __valid((void *)b,sizeof(int)); - __e_acsl_and_5 = __e_acsl_valid_4; - } - else __e_acsl_and_5 = 0; - __e_acsl_and_6 = __e_acsl_and_5; - } - else __e_acsl_and_6 = 0; - e_acsl_assert(__e_acsl_and_6,(char *)"Assertion",(char *)"main", - (char *)"\\valid(a) && \\valid(b)",16); - } - /*@ assert *b ≡ n; */ - { - mpz_t __e_acsl; - mpz_t __e_acsl_n; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl,(long)*b); - __gmpz_init_set_si(__e_acsl_n,(long)n); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), - (__mpz_struct const *)(__e_acsl_n)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"*b == n",17); - __gmpz_clear(__e_acsl); - __gmpz_clear(__e_acsl_n); - } - __e_acsl_free((void *)b); - /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ - { - int __e_acsl_initialized_5; - int __e_acsl_and_7; - int __e_acsl_and_9; - __e_acsl_initialized_5 = __initialized((void *)(& a),sizeof(int *)); - if (__e_acsl_initialized_5) { - int __e_acsl_valid_5; - __e_acsl_valid_5 = __valid((void *)a,sizeof(int)); - __e_acsl_and_7 = __e_acsl_valid_5; - } - else __e_acsl_and_7 = 0; - if (! __e_acsl_and_7) { - int __e_acsl_initialized_6; - int __e_acsl_and_8; - __e_acsl_initialized_6 = __initialized((void *)(& b),sizeof(int *)); - if (__e_acsl_initialized_6) { - int __e_acsl_valid_6; - __e_acsl_valid_6 = __valid((void *)b,sizeof(int)); - __e_acsl_and_8 = __e_acsl_valid_6; - } - else __e_acsl_and_8 = 0; - __e_acsl_and_9 = ! __e_acsl_and_8; - } - else __e_acsl_and_9 = 0; - e_acsl_assert(__e_acsl_and_9,(char *)"Assertion",(char *)"main", - (char *)"!\\valid(a) && !\\valid(b)",19); - } - __retres = 0; - __delete_block((void *)(& b)); - __delete_block((void *)(& a)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract.c index 6b59fc96e3cc0306e04073eddbe39a644a1e4818..fa2f19d9a10039567d3d3ff5bea533651dbd80c7 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract.c @@ -1,89 +1,8 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; struct list { int element ; struct list *next ; }; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ /*@ behavior B1: assumes l ≡ \null; ensures \result ≡ \old(l); @@ -96,8 +15,8 @@ predicate diffSize{L1, L2}(ℤ i) = struct list *f(struct list *l) { struct list *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& l),4U); + __store_block((void *)(& __retres),8UL); + __store_block((void *)(& l),8UL); if (l == (struct list *)0) { __full_init((void *)(& __retres)); __retres = l; @@ -132,9 +51,9 @@ struct list *__e_acsl_f(struct list *l) struct list *__e_acsl_at_2; int __e_acsl_at; struct list *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& l),4U); - __store_block((void *)(& __e_acsl_at_4),4U); + __store_block((void *)(& __retres),8UL); + __store_block((void *)(& l),8UL); + __store_block((void *)(& __e_acsl_at_4),8UL); __e_acsl_at_4 = l; { int __e_acsl_valid; @@ -151,7 +70,8 @@ struct list *__e_acsl_f(struct list *l) __e_acsl_valid_read = __valid_read((void *)(& l->next), sizeof(struct list *)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"f", - (char *)"mem_access: \\valid_read(&l->next)",21); + (char *)"mem_access: \\valid_read(&l->next)",19); + /*@ assert Value: mem_access: \valid_read(&l->next); */ __e_acsl_valid_2 = __valid((void *)l->next,sizeof(struct list)); __e_acsl_and = __e_acsl_valid_2; } @@ -161,9 +81,9 @@ struct list *__e_acsl_f(struct list *l) else __e_acsl_and_2 = 0; __e_acsl_at_3 = __e_acsl_and_2; } - __store_block((void *)(& __e_acsl_at_2),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); __e_acsl_at_2 = l; - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = l == (void *)0; __retres = f(l); { @@ -172,12 +92,12 @@ struct list *__e_acsl_f(struct list *l) if (! __e_acsl_at) __e_acsl_implies = 1; else __e_acsl_implies = __retres == __e_acsl_at_2; e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"f", - (char *)"\\old(l == \\null) ==> \\result == \\old(l)",18); + (char *)"\\old(l == \\null) ==> \\result == \\old(l)",16); if (! __e_acsl_at_3) __e_acsl_implies_2 = 1; else __e_acsl_implies_2 = __retres == __e_acsl_at_4; e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"f", (char *)"\\old(!\\valid(l) && !\\valid(l->next)) ==> \\result == \\old(l)", - 22); + 20); __delete_block((void *)(& l)); __delete_block((void *)(& __retres)); return __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract2.c deleted file mode 100644 index 6b59fc96e3cc0306e04073eddbe39a644a1e4818..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_valid_in_contract2.c +++ /dev/null @@ -1,196 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -struct list { - int element ; - struct list *next ; -}; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures \result ≡ 1 ⇒ \valid((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid(void *ptr, size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ -/*@ behavior B1: - assumes l ≡ \null; - ensures \result ≡ \old(l); - - behavior B2: - assumes ¬\valid(l); - assumes ¬\valid(l->next); - ensures \result ≡ \old(l); - */ -struct list *f(struct list *l) -{ - struct list *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& l),4U); - if (l == (struct list *)0) { - __full_init((void *)(& __retres)); - __retres = l; - goto return_label; - } - if (l->next == (struct list *)0) { - __full_init((void *)(& __retres)); - __retres = l; - goto return_label; - } - __full_init((void *)(& __retres)); - __retres = (struct list *)0; - return_label: - __delete_block((void *)(& l)); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ behavior B1: - assumes l ≡ \null; - ensures \result ≡ \old(l); - - behavior B2: - assumes ¬\valid(l); - assumes ¬\valid(l->next); - ensures \result ≡ \old(l); - */ -struct list *__e_acsl_f(struct list *l) -{ - struct list *__e_acsl_at_4; - int __e_acsl_at_3; - struct list *__e_acsl_at_2; - int __e_acsl_at; - struct list *__retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& l),4U); - __store_block((void *)(& __e_acsl_at_4),4U); - __e_acsl_at_4 = l; - { - int __e_acsl_valid; - int __e_acsl_and_2; - __e_acsl_valid = __valid((void *)l,sizeof(struct list)); - if (! __e_acsl_valid) { - int __e_acsl_initialized; - int __e_acsl_and; - __e_acsl_initialized = __initialized((void *)(& l->next), - sizeof(struct list *)); - if (__e_acsl_initialized) { - int __e_acsl_valid_read; - int __e_acsl_valid_2; - __e_acsl_valid_read = __valid_read((void *)(& l->next), - sizeof(struct list *)); - e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"f", - (char *)"mem_access: \\valid_read(&l->next)",21); - __e_acsl_valid_2 = __valid((void *)l->next,sizeof(struct list)); - __e_acsl_and = __e_acsl_valid_2; - } - else __e_acsl_and = 0; - __e_acsl_and_2 = ! __e_acsl_and; - } - else __e_acsl_and_2 = 0; - __e_acsl_at_3 = __e_acsl_and_2; - } - __store_block((void *)(& __e_acsl_at_2),4U); - __e_acsl_at_2 = l; - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = l == (void *)0; - __retres = f(l); - { - int __e_acsl_implies; - int __e_acsl_implies_2; - if (! __e_acsl_at) __e_acsl_implies = 1; - else __e_acsl_implies = __retres == __e_acsl_at_2; - e_acsl_assert(__e_acsl_implies,(char *)"Postcondition",(char *)"f", - (char *)"\\old(l == \\null) ==> \\result == \\old(l)",18); - if (! __e_acsl_at_3) __e_acsl_implies_2 = 1; - else __e_acsl_implies_2 = __retres == __e_acsl_at_4; - e_acsl_assert(__e_acsl_implies_2,(char *)"Postcondition",(char *)"f", - (char *)"\\old(!\\valid(l) && !\\valid(l->next)) ==> \\result == \\old(l)", - 22); - __delete_block((void *)(& l)); - __delete_block((void *)(& __retres)); - return __retres; - } -} - -int main(void) -{ - int __retres; - __e_acsl_f((struct list *)0); - __retres = 0; - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector.c index a26c08d266e91ab8a0978b18714f50348a7a2480..3633303ec934faf30a57e26397fd2d5ae7c32367 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector.c @@ -1,162 +1,12 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ int LAST; int *new_inversed(int len, int *v) { int i; int *p; - __store_block((void *)(& p),4U); + __store_block((void *)(& p),8UL); __full_init((void *)(& p)); - p = (int *)__e_acsl_malloc(sizeof(int) * (unsigned int)len); + p = (int *)__e_acsl_malloc(sizeof(int) * (unsigned long)len); i = 0; while (i < len) { __initialize((void *)(p + i),sizeof(int)); @@ -173,8 +23,8 @@ int main(void) int x; int v1[3]; int *v2; - __store_block((void *)(& v2),4U); - __store_block((void *)(v1),12U); + __store_block((void *)(& v2),8UL); + __store_block((void *)(v1),12UL); x = 3; __initialize((void *)(v1),sizeof(int)); v1[0] = 1; @@ -188,7 +38,7 @@ int main(void) int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)(& v1[2]),sizeof(int)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&v1[2])",26); + (char *)"\\initialized(&v1[2])",24); } __full_init((void *)(& v2)); v2 = new_inversed(3,v1); @@ -198,11 +48,12 @@ int main(void) int __e_acsl_initialized_2; __e_acsl_initialized_2 = __initialized((void *)(v2 + 2),sizeof(int)); e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(v2+2)",29); + (char *)"\\initialized(v2+2)",27); } /*@ assert LAST ≡ 1; */ + /*@ assert Value: initialisation: \initialized(&LAST); */ e_acsl_assert(LAST == 1,(char *)"Assertion",(char *)"main", - (char *)"LAST == 1",30); + (char *)"LAST == 1",28); __e_acsl_free((void *)v2); __retres = 0; __delete_block((void *)(& v2)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector2.c deleted file mode 100644 index 43a45615da21bc5072da755ca69bfe80abdf789d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_vector2.c +++ /dev/null @@ -1,249 +0,0 @@ -/* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -void *__malloc(size_t size); - -void __free(void *p); - -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ assigns \result; - assigns \result \from ptr; */ -extern __attribute__((__FC_BUILTIN__)) int __freeable(void *ptr); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \initialized((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __initialized(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - allocates \result; - - behavior allocation: - assumes is_allocable(size); - ensures \fresh{Old, Here}(\result,\old(size)); - assigns __fc_heap_status, \result; - assigns __fc_heap_status \from size, __fc_heap_status; - assigns \result \from size, __fc_heap_status; - - behavior no_allocation: - assumes ¬is_allocable(size); - ensures \result ≡ \null; - assigns \result; - assigns \result \from \nothing; - allocates \nothing; - - complete behaviors no_allocation, allocation; - disjoint behaviors no_allocation, allocation; - */ -void *__e_acsl_malloc(size_t size) -{ - void *__retres; - __store_block((void *)(& __retres),4U); - __retres = __malloc(size); - __delete_block((void *)(& __retres)); - return __retres; -} - -/*@ assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - frees p; - - behavior deallocation: - assumes p ≢ \null; - requires freeable: \freeable(p); - ensures \allocable(\old(p)); - assigns __fc_heap_status; - assigns __fc_heap_status \from __fc_heap_status; - - behavior no_deallocation: - assumes p ≡ \null; - assigns \nothing; - allocates \nothing; - - complete behaviors no_deallocation, deallocation; - disjoint behaviors no_deallocation, deallocation; - */ -void __e_acsl_free(void *p) -{ - int __e_acsl_at; - { - int __e_acsl_implies; - __store_block((void *)(& p),4U); - if (! (p != (void *)0)) __e_acsl_implies = 1; - else { - int __e_acsl_freeable; - __e_acsl_freeable = __freeable(p); - __e_acsl_implies = __e_acsl_freeable; - } - e_acsl_assert(__e_acsl_implies,(char *)"Precondition",(char *)"free", - (char *)"p != \\null ==> \\freeable(p)",178); - __store_block((void *)(& __e_acsl_at),4U); - __e_acsl_at = p != (void *)0; - __free(p); - } - __delete_block((void *)(& p)); - return; -} - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - -*/ -int LAST; -int *new_inversed(int len, int *v) -{ - int i; - int *p; - __store_block((void *)(& p),4U); - __full_init((void *)(& p)); - p = (int *)__e_acsl_malloc(sizeof(int) * (unsigned int)len); - i = 0; - while (i < len) { - __initialize((void *)(p + i),sizeof(int)); - *(p + i) = *(v + ((len - i) - 1)); - i ++; - } - __delete_block((void *)(& p)); - return p; -} - -int main(void) -{ - int __retres; - int x; - int v1[3]; - int *v2; - __store_block((void *)(& v2),4U); - __store_block((void *)(v1),12U); - x = 3; - __initialize((void *)(v1),sizeof(int)); - v1[0] = 1; - __initialize((void *)(& v1[1]),sizeof(int)); - v1[1] = 2; - __initialize((void *)(& v1[2]),sizeof(int)); - v1[2] = x; - LAST = v1[2]; - /*@ assert \initialized(&v1[2]); */ - { - int __e_acsl_initialized; - __e_acsl_initialized = __initialized((void *)(& v1[2]),sizeof(int)); - e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&v1[2])",26); - } - __full_init((void *)(& v2)); - v2 = new_inversed(3,v1); - LAST = *(v2 + 2); - /*@ assert \initialized(v2+2); */ - { - int __e_acsl_initialized_2; - __e_acsl_initialized_2 = __initialized((void *)(v2 + (long)2), - sizeof(int)); - e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(v2+2)",29); - } - /*@ assert LAST ≡ 1; */ - { - mpz_t __e_acsl_LAST; - mpz_t __e_acsl; - int __e_acsl_eq; - __gmpz_init_set_si(__e_acsl_LAST,(long)LAST); - __gmpz_init_set_si(__e_acsl,(long)1); - __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_LAST), - (__mpz_struct const *)(__e_acsl)); - e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"LAST == 1",30); - __gmpz_clear(__e_acsl_LAST); - __gmpz_clear(__e_acsl); - } - __e_acsl_free((void *)v2); - __retres = 0; - __delete_block((void *)(& v2)); - __delete_block((void *)(v1)); - __e_acsl_memory_clean(); - return __retres; -} - - diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.0.res.oracle deleted file mode 100644 index 7cff290b275d8f4e24d70c347dd3f46a64df9c2b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.0.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - G ∈ {0} - P ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialize -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid -[value] using specification for function __initialized -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.1.res.oracle deleted file mode 100644 index 91c132e3a5a8f7b1d88dfed2352302cc7c2f0048..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.1.res.oracle +++ /dev/null @@ -1,27 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - G ∈ {0} - P ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialize -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1478.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.0.res.oracle deleted file mode 100644 index d19125c9928b692c449c286979527491007caaef..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.0.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - a ∈ {0} - b ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function e_acsl_assert -[value] using specification for function __initialized -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.1.res.oracle deleted file mode 100644 index d19125c9928b692c449c286979527491007caaef..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.1.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - a ∈ {0} - b ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function e_acsl_assert -[value] using specification for function __initialized -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1478.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/init.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.0.res.oracle deleted file mode 100644 index c23dbf0116b90a43d690e5ac4edad3a1d95dc58f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.0.res.oracle +++ /dev/null @@ -1,17 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -tests/e-acsl-runtime/invariant.i:8:[value] entering loop for the first time -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/invariant.i:10:[kernel] warning: signed overflow. assert x+i ≤ 2147483647; -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle deleted file mode 100644 index 097c17aa47de4a463334f05f7d6bc509f5867f7d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.1.res.oracle +++ /dev/null @@ -1,20 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -tests/e-acsl-runtime/invariant.i:8:[value] entering loop for the first time -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/invariant.i:10:[kernel] warning: signed overflow. assert x+i ≤ 2147483647; -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1700.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/invariant.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.0.res.oracle deleted file mode 100644 index 6dce2057d115e695e8f1317f9befcc3796e6b93f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.0.res.oracle +++ /dev/null @@ -1,15 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle deleted file mode 100644 index 1e90496d9c4ef17f4d8bafec3db447d73b400b88..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.1.res.oracle +++ /dev/null @@ -1,19 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1700.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/labeled_stmt.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.0.res.oracle deleted file mode 100644 index 044d08c5d631bfcc524a1c04f938d880702f1141..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.0.res.oracle +++ /dev/null @@ -1,17 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -tests/e-acsl-runtime/lazy.i:17:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/lazy.i:18:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/lazy.i:19:[value] warning: assertion got status unknown. -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle deleted file mode 100644 index 9be75f5ecfa652d68514833cbf17f937eafc1fa6..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.1.res.oracle +++ /dev/null @@ -1,26 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_init -tests/e-acsl-runtime/lazy.i:12:[value] warning: assertion 'E_ACSL' got status invalid (stopping propagation). -tests/e-acsl-runtime/lazy.i:14:[value] warning: assertion 'E_ACSL' got status invalid (stopping propagation). -tests/e-acsl-runtime/lazy.i:16:[value] warning: assertion 'E_ACSL' got status invalid (stopping propagation). -tests/e-acsl-runtime/lazy.i:17:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/lazy.i:18:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/lazy.i:19:[value] warning: assertion got status unknown. -[value] using specification for function __gmpz_init_set -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.err.log b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1700.err.log rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..e40764ddf4589c73b74f12aeecaa81a0b50b8b34 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/lazy.res.oracle @@ -0,0 +1,5 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +tests/e-acsl-runtime/lazy.i:15:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/lazy.i:16:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/lazy.i:17:[value] warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.0.res.oracle deleted file mode 100644 index 0c2754d6b55e4db46c632db9b7533c36142f9ab6..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.0.res.oracle +++ /dev/null @@ -1,31 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - A[0..9] ∈ {0} -tests/e-acsl-runtime/linear_search.i:30:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:9:[value] warning: function __e_acsl_search: precondition got status unknown. -tests/e-acsl-runtime/linear_search.i:9:[value] entering loop for the first time -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/linear_search.i:14:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:11:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:9:[value] warning: function search: precondition got status unknown. -tests/e-acsl-runtime/linear_search.i:20:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:20:[value] warning: loop invariant got status unknown. -tests/e-acsl-runtime/linear_search.i:21:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:12:[value] warning: function search, behavior exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:15:[value] warning: function search, behavior not_exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:12:[value] warning: function __e_acsl_search, behavior exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:15:[value] warning: function __e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:33:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/linear_search.i:36:[value] warning: assertion got status unknown. -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle deleted file mode 100644 index 3fc3a773adc49ec26062657e4ddce027cfa61838..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.1.res.oracle +++ /dev/null @@ -1,44 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - A[0..9] ∈ {0} -tests/e-acsl-runtime/linear_search.i:30:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:9:[value] warning: function __e_acsl_search: precondition got status unknown. -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_clear -tests/e-acsl-runtime/linear_search.i:9:[value] entering loop for the first time -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_get_ui -tests/e-acsl-runtime/linear_search.i:9:[kernel] warning: accessing out of bounds index. assert __e_acsl_i_2 < 10; -[value] using specification for function __gmpz_add -tests/e-acsl-runtime/linear_search.i:9:[kernel] warning: accessing out of bounds index. assert __e_acsl_3 < 10; -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/linear_search.i:14:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:14:[kernel] warning: accessing out of bounds index. assert __e_acsl_j_4 < 10; -tests/e-acsl-runtime/linear_search.i:11:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:11:[kernel] warning: accessing out of bounds index. assert __e_acsl_j_2 < 10; -tests/e-acsl-runtime/linear_search.i:9:[value] warning: function search: precondition got status unknown. -tests/e-acsl-runtime/linear_search.i:20:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:20:[kernel] warning: accessing out of bounds index. assert __e_acsl_i_2 < 10; -tests/e-acsl-runtime/linear_search.i:20:[value] warning: loop invariant got status unknown. -tests/e-acsl-runtime/linear_search.i:21:[value] entering loop for the first time -tests/e-acsl-runtime/linear_search.i:20:[kernel] warning: accessing out of bounds index. assert __e_acsl_i_4 < 10; -tests/e-acsl-runtime/linear_search.i:12:[value] warning: function search, behavior exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:15:[value] warning: function search, behavior not_exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:12:[value] warning: function __e_acsl_search, behavior exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:15:[value] warning: function __e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/linear_search.i:33:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/linear_search.i:36:[value] warning: assertion got status unknown. -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.log b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1700.res.log rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..16c1ee21a29a4be635de1d028dde5e7f4a8a9238 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/linear_search.res.oracle @@ -0,0 +1,12 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +tests/e-acsl-runtime/linear_search.i:7:[value] warning: function __e_acsl_search: precondition got status unknown. +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/linear_search.i:7:[value] warning: function search: precondition got status unknown. +tests/e-acsl-runtime/linear_search.i:18:[value] warning: loop invariant got status unknown. +tests/e-acsl-runtime/linear_search.i:10:[value] warning: function search, behavior exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) +tests/e-acsl-runtime/linear_search.i:13:[value] warning: function search, behavior not_exists: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) +tests/e-acsl-runtime/linear_search.i:10:[value] warning: function __e_acsl_search, behavior exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) +tests/e-acsl-runtime/linear_search.i:13:[value] warning: function __e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) +tests/e-acsl-runtime/linear_search.i:31:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/linear_search.i:34:[value] warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.0.res.oracle deleted file mode 100644 index db70db6e090a3ef3ef3ec981520781fa5467e18b..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.0.res.oracle +++ /dev/null @@ -1,34 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - T ∈ {{ "bar" }} - G ∈ {0} - S ∈ {{ "foo" }} - S2 ∈ {{ "foo2" }} - IDX ∈ {1} - G2 ∈ {2} - U ∈ {{ "baz" }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} - __e_acsl_literal_string_4 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.1.res.oracle deleted file mode 100644 index dcc82287939e3ee20dcfca37f1382d8ed32f34b5..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.1.res.oracle +++ /dev/null @@ -1,37 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - T ∈ {{ "bar" }} - G ∈ {0} - S ∈ {{ "foo" }} - S2 ∈ {{ "foo2" }} - IDX ∈ {1} - G2 ∈ {2} - U ∈ {{ "baz" }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - __e_acsl_literal_string_3 ∈ {0} - __e_acsl_literal_string_4 ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function __valid -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1717.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d38262de6812ddcc3976738685340153a7a48ad6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/literal_string.res.oracle @@ -0,0 +1,3 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.1.res.oracle deleted file mode 100644 index 954b596c4564fe2101c6113d14e67a2ca20c2aca..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.1.res.oracle +++ /dev/null @@ -1,35 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialize -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156_0 -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1717.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.res.oracle similarity index 54% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.res.oracle index 512eccd64dea1799e476e543a7a9838f06477949..f4aebc5fd5b524a7ff39e51e89201d9af27b8dae 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/localvar.res.oracle @@ -1,10 +1,10 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/localvar.c:24:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/localvar.c:24:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/localvar.c:26:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/localvar.c:24:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -13,27 +13,6 @@ FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `assigns claus FRAMAC_SHARE/libc/stdlib.h:165:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __initialize -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156_0 -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.0.res.oracle deleted file mode 100644 index 34f20cf19c253e09f0de059456214d2c02ce6fcb..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.0.res.oracle +++ /dev/null @@ -1,20 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -tests/e-acsl-runtime/loop.i:21:[value] warning: loop invariant got status unknown. -[value] Semantic level unrolling superposing up to 100 states -tests/e-acsl-runtime/loop.i:21:[value] entering loop for the first time -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status invalid. -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing uninitialized left-value. - assert \initialized(&t[__e_acsl_k_2][__e_acsl_l_2]); -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.1.res.oracle deleted file mode 100644 index 2a9a74a05aa97d694e0cfb1a62dfe96163b5dc64..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.1.res.oracle +++ /dev/null @@ -1,37 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status invalid. -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_get_ui -tests/e-acsl-runtime/loop.i:21:[value] completely invalid value in evaluation of - argument (long)t[__e_acsl_k_2][__e_acsl_l_2] -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing out of bounds index. assert __e_acsl_k_2 < 10; -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing out of bounds index. assert __e_acsl_l_2 < 15; -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing uninitialized left-value. - assert \initialized(&t[__e_acsl_k_2][__e_acsl_l_2]); -[value] using specification for function __gmpz_add -tests/e-acsl-runtime/loop.i:21:[value] warning: loop invariant got status unknown. -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing out of bounds index. assert __e_acsl_k_4 < 10; -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing out of bounds index. assert __e_acsl_l_4 < 15; -tests/e-acsl-runtime/loop.i:21:[kernel] warning: accessing uninitialized left-value. - assert \initialized(&t[__e_acsl_k_4][__e_acsl_l_4]); -[value] using specification for function __gmpz_mul -[value] Semantic level unrolling superposing up to 100 states -tests/e-acsl-runtime/loop.i:21:[value] entering loop for the first time -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1718.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..a52629d32feae47f2ec4844496cbb2f6704824b8 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/loop.res.oracle @@ -0,0 +1,6 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +tests/e-acsl-runtime/loop.i:19:[value] warning: loop invariant got status unknown. +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status invalid. +tests/e-acsl-runtime/loop.i:19:[kernel] warning: accessing uninitialized left-value. + assert \initialized(&t[__e_acsl_k_2][__e_acsl_l_2]); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.0.res.oracle deleted file mode 100644 index 570e5a2cd7ddf866a6a3442f37e6d744e161c11d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.0.res.oracle +++ /dev/null @@ -1,48 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] warning: annotating undefined function `strlen': - the generated program may miss memory instrumentation - if there are memory-related annotations. -FRAMAC_SHARE/libc/string.h:91:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/string.h:91:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/string.h:93:[e-acsl] warning: E-ACSL construct `applying logic function' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __init_args -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/mainargs.c:14:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/mainargs.c:14:[value] entering loop for the first time -tests/e-acsl-runtime/mainargs.c:15:[value] warning: assertion got status unknown. -[value] using specification for function __block_length -tests/e-acsl-runtime/mainargs.c:17:[value] warning: assertion got status unknown. -[value] using specification for function __valid_read -tests/e-acsl-runtime/mainargs.c:17:[kernel] warning: out of bounds read. assert \valid_read(argv+argc); -tests/e-acsl-runtime/mainargs.c:18:[value] warning: assertion got status unknown. -[value] using specification for function __initialized -tests/e-acsl-runtime/mainargs.c:18:[kernel] warning: out of bounds read. assert \valid_read(argv+argc); -tests/e-acsl-runtime/mainargs.c:19:[value] entering loop for the first time -FRAMAC_SHARE/libc/string.h:91:[value] warning: function __e_acsl_strlen: precondition 'valid_string_src' got status unknown. -[value] using specification for function strlen -FRAMAC_SHARE/libc/string.h:91:[value] warning: function strlen: precondition 'valid_string_src' got status unknown. -FRAMAC_SHARE/libc/string.h:91:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic functions or predicates -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/string.h:93:[value] warning: function __e_acsl_strlen: postcondition got status unknown. -tests/e-acsl-runtime/mainargs.c:21:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/mainargs.c:22:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/mainargs.c:22:[value] entering loop for the first time -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.1.res.oracle deleted file mode 100644 index 2a1ee9c62a4fb78cb8039f24823f045324341114..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.1.res.oracle +++ /dev/null @@ -1,57 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] warning: annotating undefined function `strlen': - the generated program may miss memory instrumentation - if there are memory-related annotations. -tests/e-acsl-runtime/mainargs.c:9:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/mainargs.c:9:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/string.h:93:[e-acsl] warning: E-ACSL construct `applying logic function' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __init_args -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/mainargs.c:14:[value] warning: assertion got status unknown. -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_clear -tests/e-acsl-runtime/mainargs.c:14:[value] entering loop for the first time -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_get_ui -[value] using specification for function __gmpz_add -tests/e-acsl-runtime/mainargs.c:15:[value] warning: assertion got status unknown. -[value] using specification for function __block_length -[value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_mul -tests/e-acsl-runtime/mainargs.c:17:[value] warning: assertion got status unknown. -[value] using specification for function __valid_read -tests/e-acsl-runtime/mainargs.c:17:[kernel] warning: out of bounds read. assert \valid_read(argv+(long)argc); -tests/e-acsl-runtime/mainargs.c:18:[value] warning: assertion got status unknown. -[value] using specification for function __initialized -tests/e-acsl-runtime/mainargs.c:18:[kernel] warning: out of bounds read. assert \valid_read(argv+(long)argc); -tests/e-acsl-runtime/mainargs.c:19:[value] entering loop for the first time -FRAMAC_SHARE/libc/string.h:91:[value] warning: function __e_acsl_strlen: precondition 'valid_string_src' got status unknown. -[value] using specification for function strlen -FRAMAC_SHARE/libc/string.h:91:[value] warning: function strlen: precondition 'valid_string_src' got status unknown. -FRAMAC_SHARE/libc/string.h:91:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic functions or predicates -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/string.h:93:[value] warning: function __e_acsl_strlen: postcondition got status unknown. -tests/e-acsl-runtime/mainargs.c:21:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/mainargs.c:22:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/mainargs.c:22:[value] entering loop for the first time -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1718.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..877580b4914a2bf9de3c763e69515aee5ae2650a --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/mainargs.res.oracle @@ -0,0 +1,23 @@ +[e-acsl] beginning translation. +[e-acsl] warning: annotating undefined function `strlen': + the generated program may miss memory instrumentation + if there are memory-related annotations. +FRAMAC_SHARE/libc/string.h:91:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. + Ignoring annotation. +FRAMAC_SHARE/libc/string.h:91:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. +FRAMAC_SHARE/libc/string.h:93:[e-acsl] warning: E-ACSL construct `applying logic function' is not yet supported. + Ignoring annotation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/mainargs.c:12:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/mainargs.c:13:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/mainargs.c:15:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/mainargs.c:15:[kernel] warning: out of bounds read. assert \valid_read(argv+argc); +tests/e-acsl-runtime/mainargs.c:16:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/mainargs.c:16:[kernel] warning: out of bounds read. assert \valid_read(argv+argc); +FRAMAC_SHARE/libc/string.h:91:[value] warning: function __e_acsl_strlen: precondition 'valid_string_src' got status unknown. +FRAMAC_SHARE/libc/string.h:91:[value] warning: function strlen: precondition 'valid_string_src' got status unknown. +FRAMAC_SHARE/libc/string.h:93:[value] warning: function __e_acsl_strlen: postcondition got status unknown. +tests/e-acsl-runtime/mainargs.c:19:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/mainargs.c:20:[value] warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.1.res.oracle deleted file mode 100644 index d832fd1ab14dd163ae0b56d3592049f0695477e9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.1.res.oracle +++ /dev/null @@ -1,56 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] warning: annotating undefined function `realloc': - the generated program may miss memory instrumentation - if there are memory-related annotations. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:200:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:200:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:214:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:214:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:146:[kernel] warning: Neither code nor specification for function calloc, generating default assigns from the prototype -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __malloc -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/memsize.c:24:[value] warning: assertion got status unknown. -[value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -tests/e-acsl-runtime/memsize.c:26:[value] warning: assertion got status invalid (stopping propagation). -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1837.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.res.oracle similarity index 78% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.res.oracle index 615aab08721db66c094c650ae74d98e0e4c402d6..6a958b8cf7e10db63f2799c7ebe8da55e869c90b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/memsize.res.oracle @@ -6,11 +6,11 @@ FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is no FRAMAC_SHARE/libc/stdlib.h:200:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:200:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/memsize.c:19:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/memsize.c:19:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/memsize.c:21:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/memsize.c:19:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -39,25 +39,7 @@ FRAMAC_SHARE/libc/stdlib.h:222:[e-acsl] warning: E-ACSL construct `logic functio Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:146:[kernel] warning: Neither code nor specification for function calloc, generating default assigns from the prototype [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __malloc -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/memsize.c:24:[value] warning: assertion got status unknown. -[value] using specification for function e_acsl_assert -tests/e-acsl-runtime/memsize.c:26:[value] warning: assertion got status invalid (stopping propagation). -[value] done for function main +tests/e-acsl-runtime/memsize.c:22:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/memsize.c:24:[value] warning: assertion got status invalid (stopping propagation). diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle deleted file mode 100644 index af524ffc3d7df40abb2b39677fbbaa828e6cb126..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.1.res.oracle +++ /dev/null @@ -1,18 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/bts/oracle/bts1837.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/nested_code_annot.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.1.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/null.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle deleted file mode 100644 index af524ffc3d7df40abb2b39677fbbaa828e6cb126..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.1.res.oracle +++ /dev/null @@ -1,18 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/addrOf.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/other_constants.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.1.res.oracle deleted file mode 100644 index f70ee1b37e083b860a60e77ebb9112d9eec0566e..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.1.res.oracle +++ /dev/null @@ -1,35 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialize -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_mul -[value] using specification for function __gmpz_tdiv_q -[value] using specification for function __gmpz_get_ui -tests/e-acsl-runtime/ptr.i:16:[kernel] warning: accessing out of bounds index. assert __e_acsl_9 < 3; -tests/e-acsl-runtime/ptr.i:18:[value] entering loop for the first time -[value] using specification for function __gmpz_add -[value] using specification for function __gmpz_sub -tests/e-acsl-runtime/ptr.i:20:[kernel] warning: accessing out of bounds index. assert __e_acsl_15 < 3; -tests/e-acsl-runtime/ptr.i:19:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/ptr.i:20:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/ptr.i:21:[value] warning: assertion got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..cb2edfc413183ec48da669340f4d7caa61774ee5 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.res.oracle @@ -0,0 +1,6 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/ptr.i:17:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/ptr.i:18:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/ptr.i:19:[value] warning: assertion got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle deleted file mode 100644 index 2e95ba4b0343eb3ad517b7c0837febe7ea59e5de..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle +++ /dev/null @@ -1,34 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - A ∈ {0} - B ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __malloc -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -[value] using specification for function e_acsl_assert -[value] using specification for function __initialized -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/alias.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle similarity index 58% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle index 21b5d6c647fff39a396d068a1984811e2898f579..08a001af3487d1390dd71628ca1d6882decb27fe 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle @@ -1,10 +1,10 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/ptr_init.c:19:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/ptr_init.c:19:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/ptr_init.c:22:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/ptr_init.c:19:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -13,26 +13,6 @@ FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `assigns claus FRAMAC_SHARE/libc/stdlib.h:165:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - A ∈ {0} - B ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __malloc -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -[value] using specification for function e_acsl_assert -[value] using specification for function __initialized FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.0.res.oracle deleted file mode 100644 index e0ebf45e128eca822961123d7e337097f902e58f..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.0.res.oracle +++ /dev/null @@ -1,30 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -tests/e-acsl-runtime/quantif.i:11:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:11:[value] entering loop for the first time -[value] using specification for function e_acsl_assert -tests/e-acsl-runtime/quantif.i:12:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:12:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:13:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:13:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:14:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:14:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:18:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:18:[value] entering loop for the first time -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/quantif.i:23:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:23:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:27:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:27:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:28:[value] entering loop for the first time -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle deleted file mode 100644 index 5f380012785867d1870e6f42134ee0204da33a35..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.res.oracle +++ /dev/null @@ -1,39 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -tests/e-acsl-runtime/quantif.i:11:[value] warning: assertion got status unknown. -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_set -[value] using specification for function __gmpz_clear -tests/e-acsl-runtime/quantif.i:11:[value] entering loop for the first time -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_add -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/quantif.i:12:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:12:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:13:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:13:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:14:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:14:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:18:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:18:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:23:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:23:[value] entering loop for the first time -tests/e-acsl-runtime/quantif.i:27:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/quantif.i:27:[value] entering loop for the first time -[value] using specification for function __gmpz_tdiv_r -tests/e-acsl-runtime/quantif.i:28:[value] entering loop for the first time -[value] using specification for function __gmpz_tdiv_q -[value] using specification for function __gmpz_mul -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.0.res.oracle deleted file mode 100644 index 053606fa32ae592711d0f4658dcbef26a2718cd6..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.0.res.oracle +++ /dev/null @@ -1,15 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - Y ∈ {1} -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle deleted file mode 100644 index f17905f024ed6ed8e75e085bcaaf314b4880723e..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.1.res.oracle +++ /dev/null @@ -1,22 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - Y ∈ {1} -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_sub -[value] using specification for function __gmpz_get_ui -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/result.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle deleted file mode 100644 index af524ffc3d7df40abb2b39677fbbaa828e6cb126..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.1.res.oracle +++ /dev/null @@ -1,18 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/sizeof.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.0.res.oracle deleted file mode 100644 index a0141f070c9fed6e0f9642d4663b8e597e06497d..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.0.res.oracle +++ /dev/null @@ -1,55 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] warning: annotating undefined function `fopen': - the generated program may miss memory instrumentation - if there are memory-related annotations. -tests/e-acsl-runtime/stdout.c:10:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdio.h:107:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - stdout ∈ {{ NULL ; &S___fc_stdout[0] }} - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - S___fc_stdout[0]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof} ∈ - [--..--] - [0].[bits 80 to 95] ∈ UNINITIALIZED - [0].__fc_flags ∈ [--..--] - [0].__fc_inode ∈ - {{ NULL ; &S___fc_inode_0_S___fc_stdout[0] }} - [0].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_0_S___fc_stdout[0] }} - {[0].__fc_real_data_max_size; [1]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof}} ∈ - [--..--] - [1].[bits 80 to 95] ∈ UNINITIALIZED - [1].__fc_flags ∈ [--..--] - [1].__fc_inode ∈ - {{ NULL ; &S___fc_inode_1_S___fc_stdout[0] }} - [1].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_1_S___fc_stdout[0] }} - [1].__fc_real_data_max_size ∈ [--..--] - S___fc_inode_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_inode_1_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_1_S___fc_stdout[0..1] ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function fopen -tests/e-acsl-runtime/stdout.c:13:[value] warning: assertion got status unknown. -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.1.res.oracle deleted file mode 100644 index 764e042f2f333a33526fced0f43038e5f282a50c..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.1.res.oracle +++ /dev/null @@ -1,55 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] warning: annotating undefined function `fopen': - the generated program may miss memory instrumentation - if there are memory-related annotations. -tests/e-acsl-runtime/stdout.c:10:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdio.h:106:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - stdout ∈ {{ NULL ; &S___fc_stdout[0] }} - __fc_fopen[0..511] ∈ {0} - __p_fc_fopen ∈ {{ &__fc_fopen[0] }} - __e_acsl_literal_string ∈ {0} - __e_acsl_literal_string_2 ∈ {0} - S___fc_stdout[0]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof} ∈ - [--..--] - [0].[bits 80 to 95] ∈ UNINITIALIZED - [0].__fc_flags ∈ [--..--] - [0].__fc_inode ∈ - {{ NULL ; &S___fc_inode_0_S___fc_stdout[0] }} - [0].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_0_S___fc_stdout[0] }} - {[0].__fc_real_data_max_size; [1]{.__fc_stdio_id; .__fc_position; .__fc_error; .__fc_eof}} ∈ - [--..--] - [1].[bits 80 to 95] ∈ UNINITIALIZED - [1].__fc_flags ∈ [--..--] - [1].__fc_inode ∈ - {{ NULL ; &S___fc_inode_1_S___fc_stdout[0] }} - [1].__fc_real_data ∈ - {{ NULL ; &S___fc_real_data_1_S___fc_stdout[0] }} - [1].__fc_real_data_max_size ∈ [--..--] - S___fc_inode_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_0_S___fc_stdout[0..1] ∈ [--..--] - S___fc_inode_1_S___fc_stdout[0..1] ∈ [--..--] - S___fc_real_data_1_S___fc_stdout[0..1] ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __literal_string -[value] using specification for function fopen -tests/e-acsl-runtime/stdout.c:13:[value] warning: assertion got status unknown. -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..584c002a065b4729fa6871fc2a19c05b105002fc --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stdout.res.oracle @@ -0,0 +1,11 @@ +[e-acsl] beginning translation. +[e-acsl] warning: annotating undefined function `fopen': + the generated program may miss memory instrumentation + if there are memory-related annotations. +tests/e-acsl-runtime/stdout.c:8:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. +FRAMAC_SHARE/libc/stdio.h:107:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. + Ignoring annotation. +[e-acsl] translation done in project "e-acsl". +tests/e-acsl-runtime/stdout.c:11:[value] warning: assertion got status unknown. +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.1.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/true.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.0.res.oracle deleted file mode 100644 index f0d9dbf6c715c6fb6e5314a8a737295cb93f35a9..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.0.res.oracle +++ /dev/null @@ -1,14 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function e_acsl_assert -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle deleted file mode 100644 index b6b4bb04ed95620cf6071c806d0b3e188597abe7..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.1.res.oracle +++ /dev/null @@ -1,19 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_clear -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..efd026311297e55d8fefb674326118e6ece88624 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/typedef.res.oracle @@ -0,0 +1,2 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.1.res.oracle deleted file mode 100644 index 15bf91ef5f0af8deb2f8ed5be276f1fde3307a33..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.1.res.oracle +++ /dev/null @@ -1,52 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} - Z ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __valid_read -FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. -FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -tests/e-acsl-runtime/valid.c:49:[value] completely invalid value in evaluation of - argument (void *)a -tests/e-acsl-runtime/valid.c:49:[kernel] warning: accessing left-value that contains escaping addresses. - assert ¬\dangling(&a); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.res.oracle similarity index 58% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.res.oracle index 444b435a3dcd2efd9b4b2bfbd31680e9c5207978..99decb60aa72f1df7f7bf1953b2a1cd852921b5a 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid.res.oracle @@ -1,11 +1,11 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/valid.c:31:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/valid.c:31:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid.c:33:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/valid.c:31:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -21,40 +21,10 @@ FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns claus Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - X ∈ {0} - Z ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __full_init -[value] using specification for function __initialized -[value] using specification for function __valid -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __valid_read FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -tests/e-acsl-runtime/valid.c:49:[value] completely invalid value in evaluation of - argument (void *)a -tests/e-acsl-runtime/valid.c:49:[kernel] warning: accessing left-value that contains escaping addresses. +tests/e-acsl-runtime/valid.c:47:[kernel] warning: accessing left-value that contains escaping addresses. assert ¬\dangling(&a); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.1.res.oracle deleted file mode 100644 index abe5975be18e431dca83df14b958c9756ac86608..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.1.res.oracle +++ /dev/null @@ -1,57 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialize -[value] using specification for function __valid -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. -FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -tests/e-acsl-runtime/valid_alias.c:19:[value] completely invalid value in evaluation of - argument (void *)a -tests/e-acsl-runtime/valid_alias.c:19:[kernel] warning: accessing left-value that contains escaping addresses. - assert ¬\dangling(&a); -tests/e-acsl-runtime/valid_alias.c:19:[value] completely invalid value in evaluation of - argument (void *)b -tests/e-acsl-runtime/valid_alias.c:19:[kernel] warning: accessing left-value that contains escaping addresses. - assert ¬\dangling(&b); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/call.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.res.oracle similarity index 53% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.res.oracle index ee78cd2f531c426b963ff033754a2fb576bc14a5..8acfb7597ac1ae755a0191949369c03f75a50d98 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_alias.res.oracle @@ -1,11 +1,11 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/valid_alias.c:8:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/valid_alias.c:8:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/valid_alias.c:10:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/valid_alias.c:8:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -21,43 +21,12 @@ FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns claus Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -[value] using specification for function __initialize -[value] using specification for function __valid FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __valid_read FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -tests/e-acsl-runtime/valid_alias.c:19:[value] completely invalid value in evaluation of - argument (void *)a -tests/e-acsl-runtime/valid_alias.c:19:[kernel] warning: accessing left-value that contains escaping addresses. +tests/e-acsl-runtime/valid_alias.c:17:[kernel] warning: accessing left-value that contains escaping addresses. assert ¬\dangling(&a); -tests/e-acsl-runtime/valid_alias.c:19:[value] completely invalid value in evaluation of - argument (void *)b -tests/e-acsl-runtime/valid_alias.c:19:[kernel] warning: accessing left-value that contains escaping addresses. +tests/e-acsl-runtime/valid_alias.c:17:[kernel] warning: accessing left-value that contains escaping addresses. assert ¬\dangling(&b); -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.0.res.oracle deleted file mode 100644 index 3ae32e3ef4f528f185deee6287ac47b57d7de41a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.0.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/valid_in_contract.c:21:[value] completely invalid value in evaluation of - argument (void *)l->next -tests/e-acsl-runtime/valid_in_contract.c:21:[kernel] warning: out of bounds read. assert \valid_read(&l->next); -[value] using specification for function __full_init -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.1.res.oracle deleted file mode 100644 index 3ae32e3ef4f528f185deee6287ac47b57d7de41a..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.1.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -[e-acsl] beginning translation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] -[value] using specification for function __store_block -[value] using specification for function __valid -[value] using specification for function __initialized -[value] using specification for function __valid_read -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/valid_in_contract.c:21:[value] completely invalid value in evaluation of - argument (void *)l->next -tests/e-acsl-runtime/valid_in_contract.c:21:[kernel] warning: out of bounds read. assert \valid_read(&l->next); -[value] using specification for function __full_init -[value] using specification for function __delete_block -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.0.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..1cf290859e3eb762f48b7c24f2b29514cbc694e6 --- /dev/null +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/valid_in_contract.res.oracle @@ -0,0 +1,4 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/valid_in_contract.c:19:[kernel] warning: out of bounds read. assert \valid_read(&l->next); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.0.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.0.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.1.err.oracle deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.1.res.oracle deleted file mode 100644 index 0055ceb37e74217117f644469918125c5c364961..0000000000000000000000000000000000000000 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.1.res.oracle +++ /dev/null @@ -1,53 +0,0 @@ -[e-acsl] beginning translation. -FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. -[e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - LAST ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __initialize -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert -FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block -FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/vector.c:16:[value] entering loop for the first time -tests/e-acsl-runtime/vector.c:29:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/vector.c:30:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/vector.c:30:[kernel] warning: accessing uninitialized left-value. assert \initialized(&LAST); -[value] using specification for function __gmpz_init_set_si -[value] using specification for function __gmpz_cmp -[value] using specification for function __gmpz_clear -FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. -FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.err.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.err.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.0.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.res.oracle similarity index 58% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.0.res.oracle rename to src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.res.oracle index e1d8fe9f8046126203e87bd5af370b27d8a23cdf..58cae1e86ed66a56fac1deb2b112e2940fb03678 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.0.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/vector.res.oracle @@ -1,11 +1,11 @@ [e-acsl] beginning translation. FRAMAC_SHARE/libc/stdlib.h:174:[e-acsl] warning: E-ACSL construct `\allocable' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:156:[e-acsl] warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. +tests/e-acsl-runtime/vector.c:19:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. +tests/e-acsl-runtime/vector.c:19:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported. Ignoring annotation. -tests/e-acsl-runtime/vector.c:21:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. +tests/e-acsl-runtime/vector.c:19:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:160:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported. Ignoring annotation. @@ -21,38 +21,11 @@ FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `assigns claus Ignoring annotation. FRAMAC_SHARE/libc/stdlib.h:177:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[value] Analyzing a complete application starting at main -[value] Computing initial state -[value] Initial state computed -[value] Values of globals at initialization - __fc_random_counter ∈ {0} - __fc_rand_max ∈ {32767} - __fc_heap_status ∈ [--..--] - __e_acsl_init ∈ [--..--] - __e_acsl_internal_heap ∈ [--..--] - __memory_size ∈ [--..--] - LAST ∈ {0} -[value] using specification for function __store_block -[value] using specification for function __initialize -[value] using specification for function __initialized -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -[value] using specification for function __full_init -FRAMAC_SHARE/libc/stdlib.h:156:[value] allocating variable __malloc___e_acsl_malloc_l156 -[value] using specification for function __delete_block FRAMAC_SHARE/libc/stdlib.h:163:[value] warning: function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:168:[value] warning: function __e_acsl_malloc, behavior no_allocation: postcondition got status invalid. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/vector.c:16:[value] entering loop for the first time -tests/e-acsl-runtime/vector.c:29:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/vector.c:30:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/vector.c:30:[kernel] warning: accessing uninitialized left-value. assert \initialized(&LAST); +tests/e-acsl-runtime/vector.c:27:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/vector.c:28:[value] warning: assertion got status unknown. +tests/e-acsl-runtime/vector.c:28:[kernel] warning: accessing uninitialized left-value. assert \initialized(&LAST); FRAMAC_SHARE/libc/stdlib.h:178:[value] warning: function __e_acsl_free, behavior deallocation: precondition 'freeable' got status unknown. -[value] using specification for function __freeable -:0:[value] Assigning imprecise value to __e_acsl_implies. - The imprecision originates from Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178} -FRAMAC_SHARE/libc/stdlib.h:178:[value] Reading left-value __e_acsl_implies. - It contains a garbled mix of {__malloc___e_acsl_malloc_l156} because of - Arithmetic {FRAMAC_SHARE/libc/stdlib.h:178}. FRAMAC_SHARE/libc/stdlib.h:180:[value] warning: function __e_acsl_free, behavior deallocation: postcondition got status unknown. -[value] using specification for function __e_acsl_memory_clean -[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/other_constants.i b/src/plugins/e-acsl/tests/e-acsl-runtime/other_constants.i index 86759b11e3156fdbf7d8908034e1e744c7779fbb..b5112129a7c74e5a585f5a08d8147453b9e16c28 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/other_constants.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/other_constants.i @@ -1,7 +1,5 @@ /* run.config COMMENT: non integer constants - EXECNOW: LOG gen_other_constants.c BIN gen_other_constants.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/other_constants.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_other_constants.c > /dev/null && ./gcc_runtime.sh other_constants - EXECNOW: LOG gen_other_constants2.c BIN gen_other_constants2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/other_constants.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_other_constants2.c > /dev/null && ./gcc_runtime.sh other_constants2 */ enum bool { false, true }; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr.i b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr.i index 1a25c90c0aea1b8263d6cf1fd5c9761337318a15..36faea67dda9885871ce4e746a40ef4955be0112 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr.i @@ -1,7 +1,5 @@ /* run.config COMMENT: pointers and pointer arithmetic - EXECNOW: LOG gen_ptr.c BIN gen_ptr.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ptr.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ptr.c > /dev/null && ./gcc_runtime.sh ptr - EXECNOW: LOG gen_ptr2.c BIN gen_ptr2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ptr.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ptr2.c > /dev/null && ./gcc_runtime.sh ptr2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c index 60163f51c1e9181454e9ca99cdb23a6c715246e0..e97796dbcbc048a6483d75ee56dd85168fcf253d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c @@ -1,8 +1,5 @@ /* run.config COMMENT: initialized and function calls - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" - EXECNOW: LOG gen_ptr_init.c BIN gen_ptr_init.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ptr_init.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ptr_init.c > /dev/null && ./gcc_runtime.sh ptr_init - EXECNOW: LOG gen_ptr_init2.c BIN gen_ptr_init2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/ptr_init.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_ptr_init2.c > /dev/null && ./gcc_runtime.sh ptr_init2 */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/result.i b/src/plugins/e-acsl/tests/e-acsl-runtime/result.i index 12f04ceec132415a4a447d86f0d8ba0e5f7aac14..2391f60ce1497aabecd05a8bcf851db361ac671f 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/result.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/result.i @@ -1,7 +1,5 @@ /* run.config COMMENT: \result - EXECNOW: LOG gen_result.c BIN gen_result.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/result.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_result.c > /dev/null && ./gcc_runtime.sh result - EXECNOW: LOG gen_result2.c BIN gen_result2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/result.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_result2.c > /dev/null && ./gcc_runtime.sh result2 -Wno-unused-but-set-variable */ /*@ ensures \result == (int)(x - x); */ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/sizeof.i b/src/plugins/e-acsl/tests/e-acsl-runtime/sizeof.i index 59dc3db917257e50bf82f60eba06d199e5e8d2ab..d52b87d39370fc4866257084e6c9d500d8cae218 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/sizeof.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/sizeof.i @@ -1,7 +1,5 @@ /* run.config COMMENT: sizeof - EXECNOW: LOG gen_sizeof.c BIN gen_sizeof.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/sizeof.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_sizeof.c > /dev/null && ./gcc_runtime.sh sizeof - EXECNOW: LOG gen_sizeof2.c BIN gen_sizeof2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/sizeof.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_sizeof2.c > /dev/null && ./gcc_runtime.sh sizeof2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/stdout.c b/src/plugins/e-acsl/tests/e-acsl-runtime/stdout.c index d548394d253a3a74420e3c0d4434a4b47390d147..55c056b57660a4e88b01d4f7630298be591527f1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/stdout.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/stdout.c @@ -1,8 +1,6 @@ /* run.config COMMENT: __fc_stdout et __fc_fopen STDOPT: #"-pp-annot" - EXECNOW: LOG gen_stdout.c BIN gen_stdout.out @frama-c@ -machdep x86_64 -pp-annot -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/stdout.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_stdout.c > /dev/null && ./gcc_runtime.sh stdout - EXECNOW: LOG gen_stdout2.c BIN gen_stdout2.out @frama-c@ -machdep x86_64 -pp-annot -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/stdout.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_stdout2.c > /dev/null && ./gcc_runtime.sh stdout2 */ #include<stdio.h> diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/stmt_contract.i b/src/plugins/e-acsl/tests/e-acsl-runtime/stmt_contract.i index 9c0cd4bd9bd63294e80fc8763a44932f8dc1f16e..8634ee2698015c6309ec97a8463c87387b51e126 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/stmt_contract.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/stmt_contract.i @@ -1,8 +1,7 @@ /* run.config COMMENT: stmt contract - EXECNOW: LOG gen_stmt_contract.c BIN gen_stmt_contract.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/stmt_contract.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_stmt_contract.c > /dev/null && ./gcc_runtime.sh stmt_contract - EXECNOW: LOG gen_stmt_contract2.c BIN gen_stmt_contract2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/stmt_contract.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_stmt_contract2.c > /dev/null && ./gcc_runtime.sh stmt_contract2 */ + int main(void) { int x = 0, y = 2; // one ensures diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/test_config b/src/plugins/e-acsl/tests/e-acsl-runtime/test_config index 31618f99b7d448ba68098010412e63a4a40aaa34..7fcf7b9d2e714ac757d167181a6f0b53154052c1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/test_config +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/test_config @@ -1,2 +1,3 @@ -OPT: -check -e-acsl -then-last -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results -OPT: -check -e-acsl -e-acsl-gmp-only -then-last -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results +LOG: gen_@PTEST_NAME@.c +OPT: -machdep gcc_x86_64 -check -e-acsl -then-last -load-script tests/print.cmxs -print -ocode tests/e-acsl-runtime/result/gen_@PTEST_NAME@.c -kernel-verbose 0 -val -value-verbose 0 +EXECNOW: ./scripts/testrun.sh @PTEST_NAME@ e-acsl-runtime "" "--frama-c=@frama-c@" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/true.i b/src/plugins/e-acsl/tests/e-acsl-runtime/true.i index 1e7b96ed15cb3c4f88e426696e3aaf5285d7b474..d1624aa2f4f730b24a3d5299672c0ada2d3e77fd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/true.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/true.i @@ -1,7 +1,5 @@ /* run.config COMMENT: assert \true - EXECNOW: LOG gen_true.c BIN gen_true.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/true.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_true.c > /dev/null && ./gcc_runtime.sh true - EXECNOW: LOG gen_true2.c BIN gen_true2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/true.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_true2.c > /dev/null && ./gcc_runtime.sh true2 */ int main(void) { int x = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/typedef.i b/src/plugins/e-acsl/tests/e-acsl-runtime/typedef.i index 67dec6370db44c230a587712078e2bbd35693588..afbbc15a43a2494579bbadc35c131c2e4f2590b8 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/typedef.i +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/typedef.i @@ -1,7 +1,5 @@ /* run.config COMMENT: typedef (from a Bernard's bug report) - EXECNOW: LOG gen_typedef.c BIN gen_typedef.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/typedef.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_typedef.c > /dev/null && ./gcc_runtime.sh typedef - EXECNOW: LOG gen_typedef2.c BIN gen_typedef2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/typedef.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_typedef2.c > /dev/null && ./gcc_runtime.sh typedef2 */ typedef unsigned char uint8; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/valid.c b/src/plugins/e-acsl/tests/e-acsl-runtime/valid.c index db9e09a076b76b7fd9566d8c8f5a886b6d6250f7..f133b8ddf7a55fb76c3e2f65eaf298c30bb167a4 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/valid.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/valid.c @@ -1,8 +1,6 @@ /* run.config COMMENT: \valid - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_valid.c BIN gen_valid.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid.c > /dev/null && ./gcc_runtime.sh valid - EXECNOW: LOG gen_valid2.c BIN gen_valid2.out @frama-c@ -machdep x86_64 -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid2.c > /dev/null && ./gcc_runtime.sh valid2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/valid_alias.c b/src/plugins/e-acsl/tests/e-acsl-runtime/valid_alias.c index b1f71d717ffe3839c4b9e8ff04ec446888bf1629..e86575cde11c5bf04d07dd3dfc3e3141d7477e64 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/valid_alias.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/valid_alias.c @@ -1,8 +1,6 @@ /* run.config COMMENT: \valid in presence of aliasing - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_valid_alias.c BIN gen_valid_alias.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid_alias.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid_alias.c > /dev/null && ./gcc_runtime.sh valid_alias - EXECNOW: LOG gen_valid_alias2.c BIN gen_valid_alias2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid_alias.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid_alias2.c > /dev/null && ./gcc_runtime.sh valid_alias2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/valid_in_contract.c b/src/plugins/e-acsl/tests/e-acsl-runtime/valid_in_contract.c index 0d9017f796fac19ea2488261c1b22c0717e2eb73..aaac90174fa104ff5897bab9e9c8b070e4aab943 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/valid_in_contract.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/valid_in_contract.c @@ -1,8 +1,6 @@ /* run.config COMMENT: function contract involving \valid - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_valid_in_contract.c BIN gen_valid_in_contract.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid_in_contract.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid_in_contract.c > /dev/null && ./gcc_runtime.sh valid_in_contract - EXECNOW: LOG gen_valid_in_contract2.c BIN gen_valid_in_contract2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/valid_in_contract.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_valid_in_contract2.c > /dev/null && ./gcc_runtime.sh valid_in_contract2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include <stdlib.h> diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/vector.c b/src/plugins/e-acsl/tests/e-acsl-runtime/vector.c index dcbcd63f998039beccdeaea000e573fcaa92b200..ac3ed643aac4f34e9dedbd7a7f07dc96c5cb1234 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/vector.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/vector.c @@ -1,8 +1,6 @@ /* run.config COMMENT: function call + initialized - STDOPT: #"-cpp-extra-args=\"-I`@frama-c@ -print-share-path`/libc\"" +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" - EXECNOW: LOG gen_vector.c BIN gen_vector.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/vector.c -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_vector.c > /dev/null && ./gcc_runtime.sh vector - EXECNOW: LOG gen_vector2.c BIN gen_vector2.out @frama-c@ -cpp-extra-args="-I`@frama-c@ -print-share-path`/libc" -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/vector.c -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_vector2.c > /dev/null && ./gcc_runtime.sh vector2 + STDOPT: +"-val-builtin __malloc:Frama_C_alloc_size -val-builtin __free:Frama_C_free" */ #include<stdlib.h> diff --git a/src/plugins/e-acsl/tests/gmp/README.md b/src/plugins/e-acsl/tests/gmp/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6ba931bda4209542e62d5c4a7f685296e0932d52 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/README.md @@ -0,0 +1 @@ +Like e-acsl-runtime, but also test the -e-acsl-gmp-only mode. diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i b/src/plugins/e-acsl/tests/gmp/arith.i similarity index 58% rename from src/plugins/e-acsl/tests/e-acsl-runtime/arith.i rename to src/plugins/e-acsl/tests/gmp/arith.i index 793007db3ac6e1863a80df6ebc0fdd375bf5774b..9b63a0fabbe6f610f8ec9ccc9effdff631584998 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/arith.i +++ b/src/plugins/e-acsl/tests/gmp/arith.i @@ -1,8 +1,6 @@ /* run.config COMMENT: arithmetic operations COMMENT: add the last assertion when fixing BTS #751 - EXECNOW: LOG gen_arith.c BIN gen_arith.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/arith.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_arith.c > /dev/null && ./gcc_runtime.sh arith - EXECNOW: LOG gen_arith2.c BIN gen_arith2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/arith.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_arith2.c > /dev/null && ./gcc_runtime.sh arith2 */ int main(void) { @@ -17,7 +15,7 @@ int main(void) { /*@ assert x-1 == -4; */ ; /*@ assert x*3 == -9; */ ; /*@ assert x/3 == -1; */ ; - /*@ assert 0xfffffffffff/0xfffffffffff == 1; */ ; + /*@ assert 0xffffffffffffffffffffff/0xffffffffffffffffffffff == 1; */ ; /*@ assert x % 2 == -1; */ ; /*@ assert -3 % -2 == -1; */ ; /*@ assert 3 % -2 == 1; */ ; diff --git a/src/plugins/e-acsl/tests/gmp/array.i b/src/plugins/e-acsl/tests/gmp/array.i new file mode 100644 index 0000000000000000000000000000000000000000..8e988f14f86815cf8dbb0be0a22f8864ab29c7ba --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/array.i @@ -0,0 +1,17 @@ +/* run.config + COMMENT: arrays + STDOPT: #"-slevel 5" +*/ + +int T1[3],T2[4]; + +int main(void) { + + for(int i = 0; i < 3; i++) T1[i] = i; + for(int i = 0; i < 4; i++) T2[i] = 2*i; + + /*@ assert T1[0] == T2[0]; */ + /*@ assert T1[1] != T2[1]; */ + + return 0; +} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/at.i b/src/plugins/e-acsl/tests/gmp/at.i similarity index 66% rename from src/plugins/e-acsl/tests/e-acsl-runtime/at.i rename to src/plugins/e-acsl/tests/gmp/at.i index 6c4e69866e4f1a293a98cadd68daf50ec4497e8a..589c9671f18d9e6b019bcb56e5586db36c57cb49 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/at.i +++ b/src/plugins/e-acsl/tests/gmp/at.i @@ -1,7 +1,5 @@ /* run.config COMMENT: \at - EXECNOW: LOG gen_at.c BIN gen_at.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/at.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_at.c > /dev/null && ./gcc_runtime.sh at -Wno-unused-label - EXECNOW: LOG gen_at2.c BIN gen_at2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/at.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_at2.c > /dev/null && ./gcc_runtime.sh at2 -Wno-unused-label */ int A = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i b/src/plugins/e-acsl/tests/gmp/cast.i similarity index 50% rename from src/plugins/e-acsl/tests/e-acsl-runtime/cast.i rename to src/plugins/e-acsl/tests/gmp/cast.i index b5f005b2ed4d11c5d521d2f3de00877ca4b00748..3f77c78e5d24c20a6e420a817ea4b5321ecc3ebd 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/cast.i +++ b/src/plugins/e-acsl/tests/gmp/cast.i @@ -1,8 +1,6 @@ /* run.config COMMENT: cast STDOPT: #"-no-warn-signed-downcast" #"-no-warn-unsigned-downcast" - EXECNOW: LOG gen_cast.c BIN gen_cast.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/cast.i -e-acsl -no-warn-signed-downcast -no-warn-unsigned-downcast -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast.c > /dev/null && ./gcc_runtime.sh cast - EXECNOW: LOG gen_cast2.c BIN gen_cast2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/cast.i -e-acsl-gmp-only -no-warn-signed-downcast -no-warn-unsigned-downcast -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_cast2.c > /dev/null && ./gcc_runtime.sh cast2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i b/src/plugins/e-acsl/tests/gmp/comparison.i similarity index 55% rename from src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i rename to src/plugins/e-acsl/tests/gmp/comparison.i index 3bae6308b5844ada219b99a3a15cdfaee9c0ee9a..3c74cd1d2e52df0154ec185cd836d41e40e6971e 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/comparison.i +++ b/src/plugins/e-acsl/tests/gmp/comparison.i @@ -1,7 +1,5 @@ /* run.config COMMENT: comparison operators - EXECNOW: LOG gen_comparison.c BIN gen_comparison.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/comparison.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_comparison.c > /dev/null && ./gcc_runtime.sh comparison - EXECNOW: LOG gen_comparison2.c BIN gen_comparison2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/comparison.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_comparison2.c > /dev/null && ./gcc_runtime.sh comparison2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/gmp/integer_constant.i b/src/plugins/e-acsl/tests/gmp/integer_constant.i new file mode 100644 index 0000000000000000000000000000000000000000..059857733e5890e34bfe6c0ca04848561833c1f5 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/integer_constant.i @@ -0,0 +1,14 @@ +/* run.config + COMMENT: integer constant + a stmt after the assertion +*/ +int main(void) { + int x; + /*@ assert 0 == 0; */ x = 0; + x++; /* prevent GCC's warning */ + /*@ assert 0 != 1; */ + /*@ assert 1152921504606846975 == 0xfffffffffffffff; */ + + /*@ assert 0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff; */ + + return 0; +} diff --git a/src/plugins/e-acsl/tests/gmp/longlong.i b/src/plugins/e-acsl/tests/gmp/longlong.i new file mode 100644 index 0000000000000000000000000000000000000000..7345030a089ce9722b763043e6163fcadf48c51a --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/longlong.i @@ -0,0 +1,19 @@ +/* run.config + COMMENT: upgrading longlong to GMP + STDOPT: +"-no-eva -val-ignore-recursive-calls" +*/ + +unsigned long long my_pow(unsigned int x, unsigned int n) { + int tmp; + if (n <= 1) return 1; + tmp = my_pow(x, n / 2); + tmp *= tmp; + if (n % 2 == 0) return tmp; + return x * tmp; +} + +int main(void) { + unsigned long long x = my_pow(2, 63); + /*@ assert (2 * x + 1) % 2 == 1; */ + return 0; +} diff --git a/src/plugins/e-acsl/tests/gmp/not.i b/src/plugins/e-acsl/tests/gmp/not.i new file mode 100644 index 0000000000000000000000000000000000000000..5fb8adfdcbe31eadefd28a156d15d5f260888e9d --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/not.i @@ -0,0 +1,9 @@ +/* run.config + COMMENT: predicate [!p] +*/ +int main(void) { + int x = 0; + /*@ assert ! x; */ + if (x) /*@ assert x; */ ; + return 0; +} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/arith.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/arith.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/arith.0.res.oracle similarity index 87% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/arith.0.res.oracle index ffdab4d22524c62fcda52372fdf7d6549acefe03..0ddd2d362a08ab4fb29f6726d7a7a2215bf4f1a3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/stmt_contract.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/arith.0.res.oracle @@ -10,11 +10,12 @@ __e_acsl_init ∈ [--..--] __e_acsl_internal_heap ∈ [--..--] __memory_size ∈ [--..--] +[value] using specification for function e_acsl_assert +[value] using specification for function __gmpz_init_set_str [value] using specification for function __gmpz_init_set_si [value] using specification for function __gmpz_cmp -[value] using specification for function e_acsl_assert +[value] using specification for function __gmpz_init FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +[value] using specification for function __gmpz_tdiv_q [value] using specification for function __gmpz_clear -[value] using specification for function __gmpz_init -[value] using specification for function __gmpz_add [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/arith.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/arith.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/arith.1.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/arith.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/arith.1.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/array.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/array.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/array.0.res.oracle similarity index 68% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/array.0.res.oracle index 8f4a3d3b726e4de70a64a83ff6d2a86ac9758b36..d252e96cb3bcc38ccec95e6c947b302f08c3df42 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.0.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/array.0.res.oracle @@ -12,10 +12,10 @@ __memory_size ∈ [--..--] T1[0..2] ∈ {0} T2[0..3] ∈ {0} -tests/e-acsl-runtime/array.i:12:[value] entering loop for the first time -tests/e-acsl-runtime/array.i:13:[value] entering loop for the first time -tests/e-acsl-runtime/array.i:15:[value] warning: assertion got status unknown. +tests/gmp/array.i:10:[value] entering loop for the first time +tests/gmp/array.i:11:[value] entering loop for the first time +tests/gmp/array.i:13:[value] warning: assertion got status unknown. [value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/array.i:16:[value] warning: assertion got status unknown. +tests/gmp/array.i:14:[value] warning: assertion got status unknown. [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/array.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/compound_initializers.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/array.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/array.1.res.oracle similarity index 73% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/array.1.res.oracle index eb2477f723cb8c2dc008e03316844225964c80e3..bdf0233dd93173c599d51264596fe97973ca164c 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/array.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/array.1.res.oracle @@ -12,13 +12,13 @@ __memory_size ∈ [--..--] T1[0..2] ∈ {0} T2[0..3] ∈ {0} -tests/e-acsl-runtime/array.i:12:[value] entering loop for the first time -tests/e-acsl-runtime/array.i:13:[value] entering loop for the first time -tests/e-acsl-runtime/array.i:15:[value] warning: assertion got status unknown. +tests/gmp/array.i:10:[value] entering loop for the first time +tests/gmp/array.i:11:[value] entering loop for the first time +tests/gmp/array.i:13:[value] warning: assertion got status unknown. [value] using specification for function __gmpz_init_set_si [value] using specification for function __gmpz_cmp [value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear -tests/e-acsl-runtime/array.i:16:[value] warning: assertion got status unknown. +tests/gmp/array.i:14:[value] warning: assertion got status unknown. [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/at.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/at.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/at.0.res.oracle similarity index 50% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/at.0.res.oracle index b71f628f99927201274624278f0f7d3aa16c8c1e..7dfd4376eea4d0a59b88efb3b22d4b77c0183079 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr.0.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/at.0.res.oracle @@ -10,17 +10,25 @@ __e_acsl_init ∈ [--..--] __e_acsl_internal_heap ∈ [--..--] __memory_size ∈ [--..--] + A ∈ {0} [value] using specification for function __store_block [value] using specification for function __full_init +[value] using specification for function __delete_block +[value] using specification for function e_acsl_assert +tests/gmp/at.i:12:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:12:[value] warning: assertion got status unknown. +tests/gmp/at.i:51:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:51:[value] warning: assertion got status unknown. +tests/gmp/at.i:52:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:52:[value] warning: assertion got status unknown. +tests/gmp/at.i:53:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:53:[value] warning: assertion got status unknown. [value] using specification for function __initialize -[value] using specification for function __initialized [value] using specification for function __valid_read -[value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. -tests/e-acsl-runtime/ptr.i:18:[value] entering loop for the first time -tests/e-acsl-runtime/ptr.i:19:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/ptr.i:20:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/ptr.i:21:[value] warning: assertion got status unknown. -[value] using specification for function __delete_block +tests/gmp/at.i:30:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:30:[value] warning: assertion got status unknown. +tests/gmp/at.i:32:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:32:[value] warning: assertion got status unknown. [value] using specification for function __e_acsl_memory_clean [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/at.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/empty.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/at.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/at.1.res.oracle similarity index 55% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/at.1.res.oracle index 05a4c55b977b967768e46c015e0e4a04b15a8fcd..ee5b57e931f2442756f15914b285968faf976784 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/at.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/at.1.res.oracle @@ -22,19 +22,19 @@ FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precond [value] using specification for function __gmpz_init [value] using specification for function __gmpz_add [value] using specification for function __gmpz_init_set -tests/e-acsl-runtime/at.i:14:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:14:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:53:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:53:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:54:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:54:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:55:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:55:[value] warning: assertion got status unknown. +tests/gmp/at.i:12:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:12:[value] warning: assertion got status unknown. +tests/gmp/at.i:51:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:51:[value] warning: assertion got status unknown. +tests/gmp/at.i:52:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:52:[value] warning: assertion got status unknown. +tests/gmp/at.i:53:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:53:[value] warning: assertion got status unknown. [value] using specification for function __initialize [value] using specification for function __valid_read -tests/e-acsl-runtime/at.i:32:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:32:[value] warning: assertion got status unknown. -tests/e-acsl-runtime/at.i:34:[value] cannot evaluate ACSL term, \at() on a C label is unsupported -tests/e-acsl-runtime/at.i:34:[value] warning: assertion got status unknown. +tests/gmp/at.i:30:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:30:[value] warning: assertion got status unknown. +tests/gmp/at.i:32:[value] cannot evaluate ACSL term, \at() on a C label is unsupported +tests/gmp/at.i:32:[value] warning: assertion got status unknown. [value] using specification for function __e_acsl_memory_clean [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/cast.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/cast.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/cast.0.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/cast.0.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/cast.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/false.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/cast.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/cast.1.res.oracle similarity index 87% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/cast.1.res.oracle index 1b00f8980afcfa2cb328cdcdaf438d9f2fe503b3..f1b9b67dd5c89f701b3646829a3463aa7a027a59 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/cast.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/cast.1.res.oracle @@ -16,6 +16,4 @@ FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear [value] using specification for function __gmpz_init_set_ui -[value] using specification for function __gmpz_init_set_str -[value] using specification for function __gmpz_get_ui [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/comparison.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/comparison.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/comparison.0.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/comparison.0.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/comparison.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/freeable.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/comparison.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/comparison.1.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/comparison.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/comparison.1.res.oracle diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_arith.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_arith.c new file mode 100644 index 0000000000000000000000000000000000000000..ee94c56080ddca66d9009b6dba16cbc010e4f80e --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_arith.c @@ -0,0 +1,96 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + int x; + int y; + x = -3; + y = 2; + /*@ assert -3 ≡ x; */ + e_acsl_assert(-3 == x,(char *)"Assertion",(char *)"main",(char *)"-3 == x", + 10); + /*@ assert x ≡ -3; */ + e_acsl_assert(x == -3,(char *)"Assertion",(char *)"main",(char *)"x == -3", + 11); + /*@ assert 0 ≢ ~0; */ + e_acsl_assert(0 != ~ 0,(char *)"Assertion",(char *)"main", + (char *)"0 != ~0",12); + /*@ assert x+1 ≡ -2; */ + e_acsl_assert((long)x + (long)1 == (long)(-2),(char *)"Assertion", + (char *)"main",(char *)"x+1 == -2",14); + /*@ assert x-1 ≡ -4; */ + e_acsl_assert((long)x - (long)1 == (long)(-4),(char *)"Assertion", + (char *)"main",(char *)"x-1 == -4",15); + /*@ assert x*3 ≡ -9; */ + e_acsl_assert((long)x * (long)3 == (long)(-9),(char *)"Assertion", + (char *)"main",(char *)"x*3 == -9",16); + /*@ assert x/3 ≡ -1; */ + e_acsl_assert(x / 3 == -1,(char *)"Assertion",(char *)"main", + (char *)"x/3 == -1",17); + /*@ assert 0xffffffffffffffffffffff/0xffffffffffffffffffffff ≡ 1; */ + { + mpz_t __e_acsl; + mpz_t __e_acsl_2; + int __e_acsl_div_guard; + mpz_t __e_acsl_div; + mpz_t __e_acsl_3; + int __e_acsl_eq; + __gmpz_init_set_str(__e_acsl,"309485009821345068724781055",10); + __gmpz_init_set_si(__e_acsl_2,0L); + __e_acsl_div_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_2)); + __gmpz_init(__e_acsl_div); + /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */ + e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", + (char *)"main",(char *)"0xffffffffffffffffffffff == 0",18); + __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl)); + __gmpz_init_set_si(__e_acsl_3,(long)1); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_div), + (__mpz_struct const *)(__e_acsl_3)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"0xffffffffffffffffffffff/0xffffffffffffffffffffff == 1", + 18); + __gmpz_clear(__e_acsl); + __gmpz_clear(__e_acsl_2); + __gmpz_clear(__e_acsl_div); + __gmpz_clear(__e_acsl_3); + } + /*@ assert x%2 ≡ -1; */ + e_acsl_assert(x % 2 == -1,(char *)"Assertion",(char *)"main", + (char *)"x%2 == -1",19); + /*@ assert -3%-2 ≡ -1; */ + e_acsl_assert(-3 % -2 == -1,(char *)"Assertion",(char *)"main", + (char *)"-3%-2 == -1",20); + /*@ assert 3%-2 ≡ 1; */ + e_acsl_assert(3 % -2 == 1,(char *)"Assertion",(char *)"main", + (char *)"3%-2 == 1",21); + /*@ assert ((x*2+(3+y))-4)+(x-y) ≡ -10; */ + e_acsl_assert((((long)x * (long)2 + ((long)3 + (long)y)) - (long)4) + ( + (long)x - (long)y) == (long)(-10),(char *)"Assertion", + (char *)"main",(char *)"((x*2+(3+y))-4)+(x-y) == -10",23); + /*@ assert (0≡1) ≡ !(0≡0); */ + e_acsl_assert((0 == 1) == ! (0 == 0),(char *)"Assertion",(char *)"main", + (char *)"(0==1) == !(0==0)",25); + /*@ assert (0≤-1) ≡ (0>0); */ + e_acsl_assert((0 <= -1) == (0 > 0),(char *)"Assertion",(char *)"main", + (char *)"(0<=-1) == (0>0)",26); + /*@ assert (0≥-1) ≡ (0≤0); */ + e_acsl_assert((0 >= -1) == (0 <= 0),(char *)"Assertion",(char *)"main", + (char *)"(0>=-1) == (0<=0)",27); + /*@ assert (0≢1) ≡ !(0≢0); */ + e_acsl_assert((0 != 1) == ! (0 != 0),(char *)"Assertion",(char *)"main", + (char *)"(0!=1) == !(0!=0)",28); + /*@ assert (0≢0) ≡ !(1≢0); */ + e_acsl_assert((0 != 0) == ! (1 != 0),(char *)"Assertion",(char *)"main", + (char *)"(0!=0) == !(1!=0)",30); + /*@ assert 4/y ≡ 2; */ + e_acsl_assert(y != 0,(char *)"RTE",(char *)"main", + (char *)"division_by_zero: y != 0",31); + e_acsl_assert(4 / y == 2,(char *)"Assertion",(char *)"main", + (char *)"4/y == 2",31); + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_arith2.c similarity index 75% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_arith2.c index e9448e971bb55c45575cee1360a00d0bef9edf64..ae3487058b1648803605877b57b72188891cdad1 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_arith2.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_arith2.c @@ -1,154 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z, \result; - assigns *z \from *(str+(0 ..)), base; - assigns \result \from *(str+(0 ..)), base; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_init_set_str(__mpz_struct * /*[1]*/ z, - char const *str, - int base); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - assigns *z1; - assigns *z1 \from *z2; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_neg(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_sub(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - assigns *z1, \result; - assigns *z1 \from *z2; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_com(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -169,7 +19,7 @@ int main(void) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_neg), (__mpz_struct const *)(__e_acsl_x)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"-3 == x",12); + (char *)"-3 == x",10); __gmpz_clear(__e_acsl); __gmpz_clear(__e_acsl_neg); __gmpz_clear(__e_acsl_x); @@ -187,7 +37,7 @@ int main(void) __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), (__mpz_struct const *)(__e_acsl_neg_2)); e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"x == -3",13); + (char *)"x == -3",11); __gmpz_clear(__e_acsl_x_2); __gmpz_clear(__e_acsl_2); __gmpz_clear(__e_acsl_neg_2); @@ -203,7 +53,7 @@ int main(void) __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), (__mpz_struct const *)(__e_acsl_bnot)); e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"0 != ~0",14); + (char *)"0 != ~0",12); __gmpz_clear(__e_acsl_3); __gmpz_clear(__e_acsl_bnot); } @@ -226,7 +76,7 @@ int main(void) __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_add), (__mpz_struct const *)(__e_acsl_neg_3)); e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"x+1 == -2",16); + (char *)"x+1 == -2",14); __gmpz_clear(__e_acsl_x_3); __gmpz_clear(__e_acsl_4); __gmpz_clear(__e_acsl_add); @@ -252,7 +102,7 @@ int main(void) __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_sub), (__mpz_struct const *)(__e_acsl_neg_4)); e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", - (char *)"x-1 == -4",17); + (char *)"x-1 == -4",15); __gmpz_clear(__e_acsl_x_4); __gmpz_clear(__e_acsl_6); __gmpz_clear(__e_acsl_sub); @@ -278,7 +128,7 @@ int main(void) __e_acsl_eq_5 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mul), (__mpz_struct const *)(__e_acsl_neg_5)); e_acsl_assert(__e_acsl_eq_5 == 0,(char *)"Assertion",(char *)"main", - (char *)"x*3 == -9",18); + (char *)"x*3 == -9",16); __gmpz_clear(__e_acsl_x_5); __gmpz_clear(__e_acsl_8); __gmpz_clear(__e_acsl_mul); @@ -303,7 +153,7 @@ int main(void) __gmpz_init(__e_acsl_div); /*@ assert E_ACSL: 3 ≢ 0; */ e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"3 == 0",19); + (char *)"main",(char *)"3 == 0",17); __gmpz_tdiv_q(__e_acsl_div,(__mpz_struct const *)(__e_acsl_x_6), (__mpz_struct const *)(__e_acsl_10)); __gmpz_init_set_si(__e_acsl_12,(long)1); @@ -312,7 +162,7 @@ int main(void) __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_div), (__mpz_struct const *)(__e_acsl_neg_6)); e_acsl_assert(__e_acsl_eq_6 == 0,(char *)"Assertion",(char *)"main", - (char *)"x/3 == -1",19); + (char *)"x/3 == -1",17); __gmpz_clear(__e_acsl_x_6); __gmpz_clear(__e_acsl_10); __gmpz_clear(__e_acsl_11); @@ -320,7 +170,7 @@ int main(void) __gmpz_clear(__e_acsl_12); __gmpz_clear(__e_acsl_neg_6); } - /*@ assert 0xfffffffffff/0xfffffffffff ≡ 1; */ + /*@ assert 0xffffffffffffffffffffff/0xffffffffffffffffffffff ≡ 1; */ { mpz_t __e_acsl_13; mpz_t __e_acsl_14; @@ -328,21 +178,22 @@ int main(void) mpz_t __e_acsl_div_2; mpz_t __e_acsl_15; int __e_acsl_eq_7; - __gmpz_init_set_str(__e_acsl_13,"17592186044415",10); + __gmpz_init_set_str(__e_acsl_13,"309485009821345068724781055",10); __gmpz_init_set_si(__e_acsl_14,0L); __e_acsl_div_guard_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_13), (__mpz_struct const *)(__e_acsl_14)); __gmpz_init(__e_acsl_div_2); - /*@ assert E_ACSL: 0xfffffffffff ≢ 0; */ + /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */ e_acsl_assert(! (__e_acsl_div_guard_2 == 0),(char *)"Assertion", - (char *)"main",(char *)"0xfffffffffff == 0",20); + (char *)"main",(char *)"0xffffffffffffffffffffff == 0",18); __gmpz_tdiv_q(__e_acsl_div_2,(__mpz_struct const *)(__e_acsl_13), (__mpz_struct const *)(__e_acsl_13)); __gmpz_init_set_si(__e_acsl_15,(long)1); __e_acsl_eq_7 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_div_2), (__mpz_struct const *)(__e_acsl_15)); e_acsl_assert(__e_acsl_eq_7 == 0,(char *)"Assertion",(char *)"main", - (char *)"0xfffffffffff/0xfffffffffff == 1",20); + (char *)"0xffffffffffffffffffffff/0xffffffffffffffffffffff == 1", + 18); __gmpz_clear(__e_acsl_13); __gmpz_clear(__e_acsl_14); __gmpz_clear(__e_acsl_div_2); @@ -366,7 +217,7 @@ int main(void) __gmpz_init(__e_acsl_mod); /*@ assert E_ACSL: 2 ≢ 0; */ e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"2 == 0",21); + (char *)"main",(char *)"2 == 0",19); __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_x_7), (__mpz_struct const *)(__e_acsl_16)); __gmpz_init_set_si(__e_acsl_18,(long)1); @@ -375,7 +226,7 @@ int main(void) __e_acsl_eq_8 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod), (__mpz_struct const *)(__e_acsl_neg_7)); e_acsl_assert(__e_acsl_eq_8 == 0,(char *)"Assertion",(char *)"main", - (char *)"x%2 == -1",21); + (char *)"x%2 == -1",19); __gmpz_clear(__e_acsl_x_7); __gmpz_clear(__e_acsl_16); __gmpz_clear(__e_acsl_17); @@ -407,7 +258,7 @@ int main(void) __gmpz_init(__e_acsl_mod_2); /*@ assert E_ACSL: -2 ≢ 0; */ e_acsl_assert(! (__e_acsl_mod_guard_2 == 0),(char *)"Assertion", - (char *)"main",(char *)"-2 == 0",22); + (char *)"main",(char *)"-2 == 0",20); __gmpz_tdiv_r(__e_acsl_mod_2,(__mpz_struct const *)(__e_acsl_neg_8), (__mpz_struct const *)(__e_acsl_neg_9)); __gmpz_init_set_si(__e_acsl_22,(long)1); @@ -416,7 +267,7 @@ int main(void) __e_acsl_eq_9 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod_2), (__mpz_struct const *)(__e_acsl_neg_10)); e_acsl_assert(__e_acsl_eq_9 == 0,(char *)"Assertion",(char *)"main", - (char *)"-3%-2 == -1",22); + (char *)"-3%-2 == -1",20); __gmpz_clear(__e_acsl_19); __gmpz_clear(__e_acsl_neg_8); __gmpz_clear(__e_acsl_20); @@ -446,14 +297,14 @@ int main(void) __gmpz_init(__e_acsl_mod_3); /*@ assert E_ACSL: -2 ≢ 0; */ e_acsl_assert(! (__e_acsl_mod_guard_3 == 0),(char *)"Assertion", - (char *)"main",(char *)"-2 == 0",23); + (char *)"main",(char *)"-2 == 0",21); __gmpz_tdiv_r(__e_acsl_mod_3,(__mpz_struct const *)(__e_acsl_23), (__mpz_struct const *)(__e_acsl_neg_11)); __gmpz_init_set_si(__e_acsl_26,(long)1); __e_acsl_eq_10 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod_3), (__mpz_struct const *)(__e_acsl_26)); e_acsl_assert(__e_acsl_eq_10 == 0,(char *)"Assertion",(char *)"main", - (char *)"3%-2 == 1",23); + (char *)"3%-2 == 1",21); __gmpz_clear(__e_acsl_23); __gmpz_clear(__e_acsl_24); __gmpz_clear(__e_acsl_neg_11); @@ -506,7 +357,7 @@ int main(void) __e_acsl_eq_11 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_add_4), (__mpz_struct const *)(__e_acsl_neg_12)); e_acsl_assert(__e_acsl_eq_11 == 0,(char *)"Assertion",(char *)"main", - (char *)"((x*2+(3+y))-4)+(x-y) == -10",25); + (char *)"((x*2+(3+y))-4)+(x-y) == -10",23); __gmpz_clear(__e_acsl_x_8); __gmpz_clear(__e_acsl_27); __gmpz_clear(__e_acsl_mul_2); @@ -546,7 +397,7 @@ int main(void) __e_acsl_eq_14 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_33), (__mpz_struct const *)(__e_acsl_35)); e_acsl_assert(__e_acsl_eq_14 == 0,(char *)"Assertion",(char *)"main", - (char *)"(0==1) == !(0==0)",27); + (char *)"(0==1) == !(0==0)",25); __gmpz_clear(__e_acsl_31); __gmpz_clear(__e_acsl_32); __gmpz_clear(__e_acsl_33); @@ -576,7 +427,7 @@ int main(void) __e_acsl_eq_15 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_38), (__mpz_struct const *)(__e_acsl_39)); e_acsl_assert(__e_acsl_eq_15 == 0,(char *)"Assertion",(char *)"main", - (char *)"(0<=-1) == (0>0)",28); + (char *)"(0<=-1) == (0>0)",26); __gmpz_clear(__e_acsl_36); __gmpz_clear(__e_acsl_37); __gmpz_clear(__e_acsl_neg_13); @@ -606,7 +457,7 @@ int main(void) __e_acsl_eq_16 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_42), (__mpz_struct const *)(__e_acsl_43)); e_acsl_assert(__e_acsl_eq_16 == 0,(char *)"Assertion",(char *)"main", - (char *)"(0>=-1) == (0<=0)",29); + (char *)"(0>=-1) == (0<=0)",27); __gmpz_clear(__e_acsl_40); __gmpz_clear(__e_acsl_41); __gmpz_clear(__e_acsl_neg_14); @@ -638,7 +489,7 @@ int main(void) __e_acsl_eq_17 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_46), (__mpz_struct const *)(__e_acsl_48)); e_acsl_assert(__e_acsl_eq_17 == 0,(char *)"Assertion",(char *)"main", - (char *)"(0!=1) == !(0!=0)",30); + (char *)"(0!=1) == !(0!=0)",28); __gmpz_clear(__e_acsl_44); __gmpz_clear(__e_acsl_45); __gmpz_clear(__e_acsl_46); @@ -670,7 +521,7 @@ int main(void) __e_acsl_eq_18 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_50), (__mpz_struct const *)(__e_acsl_53)); e_acsl_assert(__e_acsl_eq_18 == 0,(char *)"Assertion",(char *)"main", - (char *)"(0!=0) == !(1!=0)",32); + (char *)"(0!=0) == !(1!=0)",30); __gmpz_clear(__e_acsl_49); __gmpz_clear(__e_acsl_50); __gmpz_clear(__e_acsl_51); @@ -694,14 +545,14 @@ int main(void) __gmpz_init(__e_acsl_div_3); /*@ assert E_ACSL: y ≢ 0; */ e_acsl_assert(! (__e_acsl_div_guard_3 == 0),(char *)"Assertion", - (char *)"main",(char *)"y == 0",33); + (char *)"main",(char *)"y == 0",31); __gmpz_tdiv_q(__e_acsl_div_3,(__mpz_struct const *)(__e_acsl_54), (__mpz_struct const *)(__e_acsl_y_2)); __gmpz_init_set_si(__e_acsl_56,(long)2); __e_acsl_eq_19 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_div_3), (__mpz_struct const *)(__e_acsl_56)); e_acsl_assert(__e_acsl_eq_19 == 0,(char *)"Assertion",(char *)"main", - (char *)"4/y == 2",33); + (char *)"4/y == 2",31); __gmpz_clear(__e_acsl_54); __gmpz_clear(__e_acsl_y_2); __gmpz_clear(__e_acsl_55); diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_array.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_array.c new file mode 100644 index 0000000000000000000000000000000000000000..9f92179a2377b48f0d7016a778bf17fbeff40187 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_array.c @@ -0,0 +1,33 @@ +/* Generated by Frama-C */ +int T1[3]; +int T2[4]; +int main(void) +{ + int __retres; + { + int i; + i = 0; + while (i < 3) { + T1[i] = i; + i ++; + } + } + { + int i_0; + i_0 = 0; + while (i_0 < 4) { + T2[i_0] = 2 * i_0; + i_0 ++; + } + } + /*@ assert T1[0] ≡ T2[0]; */ + e_acsl_assert(T1[0] == T2[0],(char *)"Assertion",(char *)"main", + (char *)"T1[0] == T2[0]",13); + /*@ assert T1[1] ≢ T2[1]; */ + e_acsl_assert(T1[1] != T2[1],(char *)"Assertion",(char *)"main", + (char *)"T1[1] != T2[1]",14); + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_array2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_array2.c new file mode 100644 index 0000000000000000000000000000000000000000..ae655bfd2d287840fdb2e41f2a0b7ff500f9a90e --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_array2.c @@ -0,0 +1,55 @@ +/* Generated by Frama-C */ +int T1[3]; +int T2[4]; +int main(void) +{ + int __retres; + { + int i; + i = 0; + while (i < 3) { + T1[i] = i; + i ++; + } + } + { + int i_0; + i_0 = 0; + while (i_0 < 4) { + T2[i_0] = 2 * i_0; + i_0 ++; + } + } + /*@ assert T1[0] ≡ T2[0]; */ + { + mpz_t __e_acsl; + mpz_t __e_acsl_2; + int __e_acsl_eq; + __gmpz_init_set_si(__e_acsl,(long)T1[0]); + __gmpz_init_set_si(__e_acsl_2,(long)T2[0]); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_2)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"T1[0] == T2[0]",13); + __gmpz_clear(__e_acsl); + __gmpz_clear(__e_acsl_2); + } + /*@ assert T1[1] ≢ T2[1]; */ + { + mpz_t __e_acsl_3; + mpz_t __e_acsl_4; + int __e_acsl_ne; + __gmpz_init_set_si(__e_acsl_3,(long)T1[1]); + __gmpz_init_set_si(__e_acsl_4,(long)T2[1]); + __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), + (__mpz_struct const *)(__e_acsl_4)); + e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", + (char *)"T1[1] != T2[1]",14); + __gmpz_clear(__e_acsl_3); + __gmpz_clear(__e_acsl_4); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_at.c similarity index 50% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_at.c index 1d784f2cdacd7b24f031d181da7b793b91d7223c..9198f2ccf972cfd08404fee453efe4cdc0c53620 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_at.c @@ -1,73 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int A = 0; /*@ ensures \at(A,Post) ≡ 3; */ void f(void) @@ -84,16 +15,16 @@ void f(void) A = 2; /*@ assert \at(A,Pre) ≡ 0; */ e_acsl_assert(__e_acsl_at == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,Pre) == 0",13); + (char *)"\\at(A,Pre) == 0",11); /*@ assert \at(A,F) ≡ 1; */ e_acsl_assert(__e_acsl_at_2 == 1,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,F) == 1",14); + (char *)"\\at(A,F) == 1",12); /*@ assert \at(A,Here) ≡ 2; */ e_acsl_assert(A == 2,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,Here) == 2",15); + (char *)"\\at(A,Here) == 2",13); /*@ assert \at(\at(A,Pre),F) ≡ 0; */ e_acsl_assert(__e_acsl_at_4 == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(\\at(A,Pre),F) == 0",16); + (char *)"\\at(\\at(A,Pre),F) == 0",14); A = 3; return; } @@ -105,7 +36,7 @@ void __e_acsl_f(void) f(); __e_acsl_at = A; e_acsl_assert(__e_acsl_at == 3,(char *)"Postcondition",(char *)"f", - (char *)"\\at(A,Post) == 3",9); + (char *)"\\at(A,Post) == 3",7); return; } @@ -114,8 +45,8 @@ void g(int *p, int *q) int __e_acsl_at_3; int __e_acsl_at_2; int __e_acsl_at; - __store_block((void *)(& p),4U); - __store_block((void *)(& q),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& q),8UL); __initialize((void *)p,sizeof(int)); *p = 0; __initialize((void *)(p + 1),sizeof(int)); @@ -127,16 +58,16 @@ void g(int *p, int *q) int __e_acsl_valid_read_3; __e_acsl_valid_read_3 = __valid_read((void *)q,sizeof(int)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(q)",34); - __store_block((void *)(& __e_acsl_at_3),4U); + (char *)"mem_access: \\valid_read(q)",32); + __store_block((void *)(& __e_acsl_at_3),4UL); __e_acsl_at_3 = *q; } { int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)q,sizeof(int)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(q)",32); - __store_block((void *)(& __e_acsl_at),4U); + (char *)"mem_access: \\valid_read(q)",30); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = *q; } __initialize((void *)p,sizeof(int)); @@ -151,14 +82,14 @@ void g(int *p, int *q) __e_acsl_valid_read_2 = __valid_read((void *)(p + __e_acsl_at), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(p+__e_acsl_at)",32); - __store_block((void *)(& __e_acsl_at_2),4U); + (char *)"mem_access: \\valid_read(p+__e_acsl_at)",30); + __store_block((void *)(& __e_acsl_at_2),4UL); __e_acsl_at_2 = *(p + __e_acsl_at); } A = 4; /*@ assert \at(*(p+\at(*q,L1)),L2) ≡ 2; */ e_acsl_assert(__e_acsl_at_2 == 2,(char *)"Assertion",(char *)"g", - (char *)"\\at(*(p+\\at(*q,L1)),L2) == 2",32); + (char *)"\\at(*(p+\\at(*q,L1)),L2) == 2",30); L3: /*@ assert \at(*(p+\at(*q,L1)),Here) ≡ 2; */ { @@ -166,10 +97,10 @@ void g(int *p, int *q) __e_acsl_valid_read_4 = __valid_read((void *)(p + __e_acsl_at_3), sizeof(int)); e_acsl_assert(__e_acsl_valid_read_4,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(p+__e_acsl_at_3)",34); + (char *)"mem_access: \\valid_read(p+__e_acsl_at_3)",32); e_acsl_assert(*(p + __e_acsl_at_3) == 2,(char *)"Assertion", (char *)"g",(char *)"\\at(*(p+\\at(*q,L1)),Here) == 2", - 34); + 32); } __delete_block((void *)(& p)); __delete_block((void *)(& q)); @@ -179,7 +110,7 @@ void g(int *p, int *q) /*@ ensures \result ≡ \old(x); */ int h(int x) { - __store_block((void *)(& x),4U); + __store_block((void *)(& x),4UL); __delete_block((void *)(& x)); return x; } @@ -189,13 +120,13 @@ int __e_acsl_h(int x) { int __e_acsl_at; int __retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& x),4U); - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __retres),4UL); + __store_block((void *)(& x),4UL); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = x; __retres = h(x); e_acsl_assert(__retres == __e_acsl_at,(char *)"Postcondition",(char *)"h", - (char *)"\\result == \\old(x)",40); + (char *)"\\result == \\old(x)",38); __delete_block((void *)(& x)); __delete_block((void *)(& __retres)); return __retres; @@ -204,25 +135,25 @@ int __e_acsl_h(int x) int main(void) { int __e_acsl_at_3; - long long __e_acsl_at_2; + long __e_acsl_at_2; int __e_acsl_at; int __retres; int x; int t[2]; - __store_block((void *)(t),8U); - __store_block((void *)(& x),4U); + __store_block((void *)(t),8UL); + __store_block((void *)(& x),4UL); __full_init((void *)(& x)); x = __e_acsl_h(0); L: - __store_block((void *)(& __e_acsl_at_3),4U); + __store_block((void *)(& __e_acsl_at_3),4UL); __e_acsl_at_3 = x; - __store_block((void *)(& __e_acsl_at_2),8U); - __e_acsl_at_2 = (long long)x + (long long)1; - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at_2),8UL); + __e_acsl_at_2 = (long)x + (long)1; + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = x; /*@ assert x ≡ 0; */ e_acsl_assert(x == 0,(char *)"Assertion",(char *)"main",(char *)"x == 0", - 48); + 46); __full_init((void *)(& x)); x = 1; __full_init((void *)(& x)); @@ -230,14 +161,13 @@ int main(void) __e_acsl_f(); /*@ assert \at(x,L) ≡ 0; */ e_acsl_assert(__e_acsl_at == 0,(char *)"Assertion",(char *)"main", - (char *)"\\at(x,L) == 0",53); + (char *)"\\at(x,L) == 0",51); /*@ assert \at(x+1,L) ≡ 1; */ - e_acsl_assert(__e_acsl_at_2 == (long long)1,(char *)"Assertion", - (char *)"main",(char *)"\\at(x+1,L) == 1",54); + e_acsl_assert(__e_acsl_at_2 == (long)1,(char *)"Assertion",(char *)"main", + (char *)"\\at(x+1,L) == 1",52); /*@ assert \at(x,L)+1 ≡ 1; */ - e_acsl_assert((long long)__e_acsl_at_3 + (long long)1 == (long long)1, - (char *)"Assertion",(char *)"main", - (char *)"\\at(x,L)+1 == 1",55); + e_acsl_assert((long)__e_acsl_at_3 + (long)1 == (long)1,(char *)"Assertion", + (char *)"main",(char *)"\\at(x,L)+1 == 1",53); g(t,& x); __retres = 0; __delete_block((void *)(t)); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_at2.c similarity index 62% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_at2.c index 715a1a811964f92b89b9784b605c465b96fbab07..0db195ea1dd9f2f56377b13e9954afaa9da64f12 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_at2.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_at2.c @@ -1,124 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires \valid_read(z_orig); - requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from *z_orig; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); */ -extern __attribute__((__FC_BUILTIN__)) void *__store_block(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __delete_block(void *ptr); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __initialize(void *ptr, - size_t size); - -/*@ assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void __full_init(void *ptr); - -/*@ ensures \result ≡ 0 ∨ \result ≡ 1; - ensures - \result ≡ 1 ⇒ \valid_read((char *)\old(ptr)+(0 .. \old(size)-1)); - assigns \result; - assigns \result \from *((char *)ptr+(0 .. size-1)); - */ -extern __attribute__((__FC_BUILTIN__)) int __valid_read(void *ptr, - size_t size); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -/*@ assigns __e_acsl_internal_heap; - assigns __e_acsl_internal_heap \from __e_acsl_internal_heap; - */ -extern __attribute__((__FC_BUILTIN__)) void __e_acsl_memory_clean(void); - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int A = 0; /*@ ensures \at(A,Post) ≡ 3; */ void f(void) @@ -143,7 +23,7 @@ void f(void) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), (__mpz_struct const *)(__e_acsl_2)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,Pre) == 0",13); + (char *)"\\at(A,Pre) == 0",11); __gmpz_clear(__e_acsl); __gmpz_clear(__e_acsl_2); } @@ -157,7 +37,7 @@ void f(void) __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), (__mpz_struct const *)(__e_acsl_4)); e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,F) == 1",14); + (char *)"\\at(A,F) == 1",12); __gmpz_clear(__e_acsl_3); __gmpz_clear(__e_acsl_4); } @@ -171,7 +51,7 @@ void f(void) __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), (__mpz_struct const *)(__e_acsl_6)); e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(A,Here) == 2",15); + (char *)"\\at(A,Here) == 2",13); __gmpz_clear(__e_acsl_5); __gmpz_clear(__e_acsl_6); } @@ -185,7 +65,7 @@ void f(void) __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_7), (__mpz_struct const *)(__e_acsl_8)); e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"f", - (char *)"\\at(\\at(A,Pre),F) == 0",16); + (char *)"\\at(\\at(A,Pre),F) == 0",14); __gmpz_clear(__e_acsl_7); __gmpz_clear(__e_acsl_8); } @@ -208,7 +88,7 @@ void __e_acsl_f(void) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), (__mpz_struct const *)(__e_acsl_2)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"f", - (char *)"\\at(A,Post) == 3",9); + (char *)"\\at(A,Post) == 3",7); __gmpz_clear(__e_acsl); __gmpz_clear(__e_acsl_2); return; @@ -220,8 +100,8 @@ void g(int *p, int *q) int __e_acsl_at_3; int __e_acsl_at_2; int __e_acsl_at; - __store_block((void *)(& p),4U); - __store_block((void *)(& q),4U); + __store_block((void *)(& p),8UL); + __store_block((void *)(& q),8UL); __initialize((void *)p,sizeof(int)); *p = 0; __initialize((void *)(p + 1),sizeof(int)); @@ -233,16 +113,16 @@ void g(int *p, int *q) int __e_acsl_valid_read_3; __e_acsl_valid_read_3 = __valid_read((void *)q,sizeof(int)); e_acsl_assert(__e_acsl_valid_read_3,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(q)",34); - __store_block((void *)(& __e_acsl_at_3),4U); + (char *)"mem_access: \\valid_read(q)",32); + __store_block((void *)(& __e_acsl_at_3),4UL); __e_acsl_at_3 = *q; } { int __e_acsl_valid_read; __e_acsl_valid_read = __valid_read((void *)q,sizeof(int)); e_acsl_assert(__e_acsl_valid_read,(char *)"RTE",(char *)"g", - (char *)"mem_access: \\valid_read(q)",32); - __store_block((void *)(& __e_acsl_at),4U); + (char *)"mem_access: \\valid_read(q)",30); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = *q; } __initialize((void *)p,sizeof(int)); @@ -258,8 +138,8 @@ void g(int *p, int *q) sizeof(int)); e_acsl_assert(__e_acsl_valid_read_2,(char *)"RTE",(char *)"g", (char *)"mem_access: \\valid_read(p+(long)__e_acsl_at)", - 32); - __store_block((void *)(& __e_acsl_at_2),4U); + 30); + __store_block((void *)(& __e_acsl_at_2),4UL); __e_acsl_at_2 = *(p + (long)__e_acsl_at); } A = 4; @@ -273,7 +153,7 @@ void g(int *p, int *q) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), (__mpz_struct const *)(__e_acsl_2)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"g", - (char *)"\\at(*(p+\\at(*q,L1)),L2) == 2",32); + (char *)"\\at(*(p+\\at(*q,L1)),L2) == 2",30); __gmpz_clear(__e_acsl); __gmpz_clear(__e_acsl_2); } @@ -288,7 +168,7 @@ void g(int *p, int *q) __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), (__mpz_struct const *)(__e_acsl_4)); e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"g", - (char *)"\\at(*(p+\\at(*q,L1)),Here) == 2",34); + (char *)"\\at(*(p+\\at(*q,L1)),Here) == 2",32); __gmpz_clear(__e_acsl_3); __gmpz_clear(__e_acsl_4); } @@ -300,7 +180,7 @@ void g(int *p, int *q) /*@ ensures \result ≡ \old(x); */ int h(int x) { - __store_block((void *)(& x),4U); + __store_block((void *)(& x),4UL); __delete_block((void *)(& x)); return x; } @@ -310,9 +190,9 @@ int __e_acsl_h(int x) { int __e_acsl_at; int __retres; - __store_block((void *)(& __retres),4U); - __store_block((void *)(& x),4U); - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __retres),4UL); + __store_block((void *)(& x),4UL); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = x; __retres = h(x); { @@ -324,7 +204,7 @@ int __e_acsl_h(int x) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_result), (__mpz_struct const *)(__e_acsl)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Postcondition",(char *)"h", - (char *)"\\result == \\old(x)",40); + (char *)"\\result == \\old(x)",38); __delete_block((void *)(& x)); __gmpz_clear(__e_acsl_result); __gmpz_clear(__e_acsl); @@ -341,12 +221,12 @@ int main(void) int __retres; int x; int t[2]; - __store_block((void *)(t),8U); - __store_block((void *)(& x),4U); + __store_block((void *)(t),8UL); + __store_block((void *)(& x),4UL); __full_init((void *)(& x)); x = __e_acsl_h(0); L: - __store_block((void *)(& __e_acsl_at_3),4U); + __store_block((void *)(& __e_acsl_at_3),4UL); __e_acsl_at_3 = x; { mpz_t __e_acsl_x_2; @@ -362,7 +242,7 @@ int main(void) __gmpz_clear(__e_acsl_4); __gmpz_clear(__e_acsl_add); } - __store_block((void *)(& __e_acsl_at),4U); + __store_block((void *)(& __e_acsl_at),4UL); __e_acsl_at = x; /*@ assert x ≡ 0; */ { @@ -374,7 +254,7 @@ int main(void) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), (__mpz_struct const *)(__e_acsl)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"x == 0",48); + (char *)"x == 0",46); __gmpz_clear(__e_acsl_x); __gmpz_clear(__e_acsl); } @@ -393,7 +273,7 @@ int main(void) __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), (__mpz_struct const *)(__e_acsl_3)); e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"\\at(x,L) == 0",53); + (char *)"\\at(x,L) == 0",51); __gmpz_clear(__e_acsl_2); __gmpz_clear(__e_acsl_3); } @@ -405,7 +285,7 @@ int main(void) __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_at_2), (__mpz_struct const *)(__e_acsl_5)); e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", - (char *)"\\at(x+1,L) == 1",54); + (char *)"\\at(x+1,L) == 1",52); __gmpz_clear(__e_acsl_5); } /*@ assert \at(x,L)+1 ≡ 1; */ @@ -422,7 +302,7 @@ int main(void) __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_add_2), (__mpz_struct const *)(__e_acsl_7)); e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", - (char *)"\\at(x,L)+1 == 1",55); + (char *)"\\at(x,L)+1 == 1",53); __gmpz_clear(__e_acsl_6); __gmpz_clear(__e_acsl_7); __gmpz_clear(__e_acsl_add_2); diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_cast.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_cast.c new file mode 100644 index 0000000000000000000000000000000000000000..e6fa77c2c370c09c068b313cc26aff58188ad277 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_cast.c @@ -0,0 +1,34 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + long x; + int y; + x = (long)0; + y = 0; + /*@ assert (int)x ≡ y; */ + e_acsl_assert((int)x == y,(char *)"Assertion",(char *)"main", + (char *)"(int)x == y",10); + /*@ assert x ≡ (long)y; */ + e_acsl_assert(x == (long)y,(char *)"Assertion",(char *)"main", + (char *)"x == (long)y",11); + /*@ assert y ≡ (int)0; */ + e_acsl_assert(y == 0,(char *)"Assertion",(char *)"main", + (char *)"y == (int)0",13); + /*@ assert (unsigned int)y ≡ (unsigned int)0; */ + e_acsl_assert((unsigned int)y == (unsigned int)0,(char *)"Assertion", + (char *)"main",(char *)"(unsigned int)y == (unsigned int)0", + 14); + /*@ assert y ≢ (int)0xfffffffffffffff; */ + e_acsl_assert(y != (int)0xfffffffffffffff,(char *)"Assertion", + (char *)"main",(char *)"y != (int)0xfffffffffffffff",17); + /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ + e_acsl_assert((unsigned int)y != (unsigned int)0xfffffffffffffff, + (char *)"Assertion",(char *)"main", + (char *)"(unsigned int)y != (unsigned int)0xfffffffffffffff", + 18); + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_cast2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_cast2.c new file mode 100644 index 0000000000000000000000000000000000000000..06906262617c32c349a34a43c24f5d4276a465ea --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_cast2.c @@ -0,0 +1,99 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + long x; + int y; + x = (long)0; + y = 0; + /*@ assert (int)x ≡ y; */ + { + mpz_t __e_acsl_cast; + mpz_t __e_acsl_y; + int __e_acsl_eq; + __gmpz_init_set_si(__e_acsl_cast,(long)((int)x)); + __gmpz_init_set_si(__e_acsl_y,(long)y); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast), + (__mpz_struct const *)(__e_acsl_y)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"(int)x == y",10); + __gmpz_clear(__e_acsl_cast); + __gmpz_clear(__e_acsl_y); + } + /*@ assert x ≡ (long)y; */ + { + mpz_t __e_acsl_x; + mpz_t __e_acsl_cast_2; + int __e_acsl_eq_2; + __gmpz_init_set_si(__e_acsl_x,x); + __gmpz_init_set_si(__e_acsl_cast_2,(long)y); + __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), + (__mpz_struct const *)(__e_acsl_cast_2)); + e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", + (char *)"x == (long)y",11); + __gmpz_clear(__e_acsl_x); + __gmpz_clear(__e_acsl_cast_2); + } + /*@ assert y ≡ (int)0; */ + { + mpz_t __e_acsl_y_2; + mpz_t __e_acsl_cast_3; + int __e_acsl_eq_3; + __gmpz_init_set_si(__e_acsl_y_2,(long)y); + __gmpz_init_set_si(__e_acsl_cast_3,(long)0); + __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_2), + (__mpz_struct const *)(__e_acsl_cast_3)); + e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", + (char *)"y == (int)0",13); + __gmpz_clear(__e_acsl_y_2); + __gmpz_clear(__e_acsl_cast_3); + } + /*@ assert (unsigned int)y ≡ (unsigned int)0; */ + { + mpz_t __e_acsl_cast_4; + mpz_t __e_acsl_cast_5; + int __e_acsl_eq_4; + __gmpz_init_set_ui(__e_acsl_cast_4,(unsigned long)((unsigned int)y)); + __gmpz_init_set_ui(__e_acsl_cast_5,(unsigned long)((unsigned int)0)); + __e_acsl_eq_4 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_4), + (__mpz_struct const *)(__e_acsl_cast_5)); + e_acsl_assert(__e_acsl_eq_4 == 0,(char *)"Assertion",(char *)"main", + (char *)"(unsigned int)y == (unsigned int)0",14); + __gmpz_clear(__e_acsl_cast_4); + __gmpz_clear(__e_acsl_cast_5); + } + /*@ assert y ≢ (int)0xfffffffffffffff; */ + { + mpz_t __e_acsl_y_3; + mpz_t __e_acsl_cast_6; + int __e_acsl_ne; + __gmpz_init_set_si(__e_acsl_y_3,(long)y); + __gmpz_init_set_si(__e_acsl_cast_6,(long)((int)0xfffffffffffffff)); + __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_3), + (__mpz_struct const *)(__e_acsl_cast_6)); + e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", + (char *)"y != (int)0xfffffffffffffff",17); + __gmpz_clear(__e_acsl_y_3); + __gmpz_clear(__e_acsl_cast_6); + } + /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ + { + mpz_t __e_acsl_cast_7; + mpz_t __e_acsl_cast_8; + int __e_acsl_ne_2; + __gmpz_init_set_ui(__e_acsl_cast_7,(unsigned long)((unsigned int)y)); + __gmpz_init_set_ui(__e_acsl_cast_8, + (unsigned long)((unsigned int)0xfffffffffffffff)); + __e_acsl_ne_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_cast_7), + (__mpz_struct const *)(__e_acsl_cast_8)); + e_acsl_assert(__e_acsl_ne_2 != 0,(char *)"Assertion",(char *)"main", + (char *)"(unsigned int)y != (unsigned int)0xfffffffffffffff", + 18); + __gmpz_clear(__e_acsl_cast_7); + __gmpz_clear(__e_acsl_cast_8); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_comparison.c similarity index 52% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_comparison.c index 3c38363e2138b328ca217fce8322bf5eab60bcc3..7ec70c2886715e9a042a31b38722b5cc9eef7d43 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_comparison.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -48,55 +8,54 @@ int main(void) x = 0; y = 1; /*@ assert x < y; */ - e_acsl_assert(x < y,(char *)"Assertion",(char *)"main",(char *)"x < y",9); + e_acsl_assert(x < y,(char *)"Assertion",(char *)"main",(char *)"x < y",7); /*@ assert y > x; */ - e_acsl_assert(y > x,(char *)"Assertion",(char *)"main",(char *)"y > x",10); + e_acsl_assert(y > x,(char *)"Assertion",(char *)"main",(char *)"y > x",8); /*@ assert x ≤ 0; */ - e_acsl_assert(x <= 0,(char *)"Assertion",(char *)"main",(char *)"x <= 0", - 11); + e_acsl_assert(x <= 0,(char *)"Assertion",(char *)"main",(char *)"x <= 0",9); /*@ assert y ≥ 1; */ e_acsl_assert(y >= 1,(char *)"Assertion",(char *)"main",(char *)"y >= 1", - 12); + 10); s = (char *)"toto"; /*@ assert s ≡ s; */ e_acsl_assert(s == s,(char *)"Assertion",(char *)"main",(char *)"s == s", - 14); + 12); /*@ assert 5 < 18; */ e_acsl_assert(5 < 18,(char *)"Assertion",(char *)"main",(char *)"5 < 18", - 17); + 15); /*@ assert 32 > 3; */ e_acsl_assert(32 > 3,(char *)"Assertion",(char *)"main",(char *)"32 > 3", - 18); + 16); /*@ assert 12 ≤ 13; */ e_acsl_assert(12 <= 13,(char *)"Assertion",(char *)"main", - (char *)"12 <= 13",19); + (char *)"12 <= 13",17); /*@ assert 123 ≥ 12; */ e_acsl_assert(123 >= 12,(char *)"Assertion",(char *)"main", - (char *)"123 >= 12",20); + (char *)"123 >= 12",18); /*@ assert 0xff ≡ 0xff; */ e_acsl_assert(0xff == 0xff,(char *)"Assertion",(char *)"main", - (char *)"0xff == 0xff",21); + (char *)"0xff == 0xff",19); /*@ assert 1 ≢ 2; */ e_acsl_assert(1 != 2,(char *)"Assertion",(char *)"main",(char *)"1 != 2", - 22); + 20); /*@ assert -5 < 18; */ e_acsl_assert(-5 < 18,(char *)"Assertion",(char *)"main",(char *)"-5 < 18", - 24); + 22); /*@ assert 32 > -3; */ e_acsl_assert(32 > -3,(char *)"Assertion",(char *)"main",(char *)"32 > -3", - 25); + 23); /*@ assert -12 ≤ 13; */ e_acsl_assert(-12 <= 13,(char *)"Assertion",(char *)"main", - (char *)"-12 <= 13",26); + (char *)"-12 <= 13",24); /*@ assert 123 ≥ -12; */ e_acsl_assert(123 >= -12,(char *)"Assertion",(char *)"main", - (char *)"123 >= -12",27); + (char *)"123 >= -12",25); /*@ assert -0xff ≡ -0xff; */ e_acsl_assert(-0xff == -0xff,(char *)"Assertion",(char *)"main", - (char *)"-0xff == -0xff",28); + (char *)"-0xff == -0xff",26); /*@ assert 1 ≢ -2; */ e_acsl_assert(1 != -2,(char *)"Assertion",(char *)"main",(char *)"1 != -2", - 29); + 27); __retres = 0; return __retres; } diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_comparison2.c similarity index 72% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_comparison2.c index 989147977bb5ea21f092ec7fbab9ee273357ab3a..9a899138845131b8ff1b2327ee0d0f857576a881 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_comparison2.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_comparison2.c @@ -1,83 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - assigns *z1; - assigns *z1 \from *z2; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_neg(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -96,7 +17,7 @@ int main(void) __e_acsl_lt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), (__mpz_struct const *)(__e_acsl_y)); e_acsl_assert(__e_acsl_lt < 0,(char *)"Assertion",(char *)"main", - (char *)"x < y",9); + (char *)"x < y",7); __gmpz_clear(__e_acsl_x); __gmpz_clear(__e_acsl_y); } @@ -110,7 +31,7 @@ int main(void) __e_acsl_gt = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_2), (__mpz_struct const *)(__e_acsl_x_2)); e_acsl_assert(__e_acsl_gt > 0,(char *)"Assertion",(char *)"main", - (char *)"y > x",10); + (char *)"y > x",8); __gmpz_clear(__e_acsl_y_2); __gmpz_clear(__e_acsl_x_2); } @@ -124,7 +45,7 @@ int main(void) __e_acsl_le = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_3), (__mpz_struct const *)(__e_acsl)); e_acsl_assert(__e_acsl_le <= 0,(char *)"Assertion",(char *)"main", - (char *)"x <= 0",11); + (char *)"x <= 0",9); __gmpz_clear(__e_acsl_x_3); __gmpz_clear(__e_acsl); } @@ -138,14 +59,14 @@ int main(void) __e_acsl_ge = __gmpz_cmp((__mpz_struct const *)(__e_acsl_y_3), (__mpz_struct const *)(__e_acsl_2)); e_acsl_assert(__e_acsl_ge >= 0,(char *)"Assertion",(char *)"main", - (char *)"y >= 1",12); + (char *)"y >= 1",10); __gmpz_clear(__e_acsl_y_3); __gmpz_clear(__e_acsl_2); } s = (char *)"toto"; /*@ assert s ≡ s; */ e_acsl_assert(s == s,(char *)"Assertion",(char *)"main",(char *)"s == s", - 14); + 12); /*@ assert 5 < 18; */ { mpz_t __e_acsl_3; @@ -156,7 +77,7 @@ int main(void) __e_acsl_lt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_3), (__mpz_struct const *)(__e_acsl_4)); e_acsl_assert(__e_acsl_lt_2 < 0,(char *)"Assertion",(char *)"main", - (char *)"5 < 18",17); + (char *)"5 < 18",15); __gmpz_clear(__e_acsl_3); __gmpz_clear(__e_acsl_4); } @@ -170,7 +91,7 @@ int main(void) __e_acsl_gt_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), (__mpz_struct const *)(__e_acsl_6)); e_acsl_assert(__e_acsl_gt_2 > 0,(char *)"Assertion",(char *)"main", - (char *)"32 > 3",18); + (char *)"32 > 3",16); __gmpz_clear(__e_acsl_5); __gmpz_clear(__e_acsl_6); } @@ -184,7 +105,7 @@ int main(void) __e_acsl_le_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_7), (__mpz_struct const *)(__e_acsl_8)); e_acsl_assert(__e_acsl_le_2 <= 0,(char *)"Assertion",(char *)"main", - (char *)"12 <= 13",19); + (char *)"12 <= 13",17); __gmpz_clear(__e_acsl_7); __gmpz_clear(__e_acsl_8); } @@ -198,7 +119,7 @@ int main(void) __e_acsl_ge_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_9), (__mpz_struct const *)(__e_acsl_10)); e_acsl_assert(__e_acsl_ge_2 >= 0,(char *)"Assertion",(char *)"main", - (char *)"123 >= 12",20); + (char *)"123 >= 12",18); __gmpz_clear(__e_acsl_9); __gmpz_clear(__e_acsl_10); } @@ -210,7 +131,7 @@ int main(void) __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_11), (__mpz_struct const *)(__e_acsl_11)); e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", - (char *)"0xff == 0xff",21); + (char *)"0xff == 0xff",19); __gmpz_clear(__e_acsl_11); } /*@ assert 1 ≢ 2; */ @@ -223,7 +144,7 @@ int main(void) __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_12), (__mpz_struct const *)(__e_acsl_13)); e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", - (char *)"1 != 2",22); + (char *)"1 != 2",20); __gmpz_clear(__e_acsl_12); __gmpz_clear(__e_acsl_13); } @@ -240,7 +161,7 @@ int main(void) __e_acsl_lt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_neg), (__mpz_struct const *)(__e_acsl_15)); e_acsl_assert(__e_acsl_lt_3 < 0,(char *)"Assertion",(char *)"main", - (char *)"-5 < 18",24); + (char *)"-5 < 18",22); __gmpz_clear(__e_acsl_14); __gmpz_clear(__e_acsl_neg); __gmpz_clear(__e_acsl_15); @@ -258,7 +179,7 @@ int main(void) __e_acsl_gt_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_16), (__mpz_struct const *)(__e_acsl_neg_2)); e_acsl_assert(__e_acsl_gt_3 > 0,(char *)"Assertion",(char *)"main", - (char *)"32 > -3",25); + (char *)"32 > -3",23); __gmpz_clear(__e_acsl_16); __gmpz_clear(__e_acsl_17); __gmpz_clear(__e_acsl_neg_2); @@ -276,7 +197,7 @@ int main(void) __e_acsl_le_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_neg_3), (__mpz_struct const *)(__e_acsl_19)); e_acsl_assert(__e_acsl_le_3 <= 0,(char *)"Assertion",(char *)"main", - (char *)"-12 <= 13",26); + (char *)"-12 <= 13",24); __gmpz_clear(__e_acsl_18); __gmpz_clear(__e_acsl_neg_3); __gmpz_clear(__e_acsl_19); @@ -294,7 +215,7 @@ int main(void) __e_acsl_ge_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_20), (__mpz_struct const *)(__e_acsl_neg_4)); e_acsl_assert(__e_acsl_ge_3 >= 0,(char *)"Assertion",(char *)"main", - (char *)"123 >= -12",27); + (char *)"123 >= -12",25); __gmpz_clear(__e_acsl_20); __gmpz_clear(__e_acsl_21); __gmpz_clear(__e_acsl_neg_4); @@ -310,7 +231,7 @@ int main(void) __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_neg_5), (__mpz_struct const *)(__e_acsl_neg_5)); e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", - (char *)"-0xff == -0xff",28); + (char *)"-0xff == -0xff",26); __gmpz_clear(__e_acsl_22); __gmpz_clear(__e_acsl_neg_5); } @@ -327,7 +248,7 @@ int main(void) __e_acsl_ne_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_23), (__mpz_struct const *)(__e_acsl_neg_6)); e_acsl_assert(__e_acsl_ne_2 != 0,(char *)"Assertion",(char *)"main", - (char *)"1 != -2",29); + (char *)"1 != -2",27); __gmpz_clear(__e_acsl_23); __gmpz_clear(__e_acsl_24); __gmpz_clear(__e_acsl_neg_6); diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant.c new file mode 100644 index 0000000000000000000000000000000000000000..6d2f41ed3a8ba6b24f617f74f790f81e8f2a3524 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant.c @@ -0,0 +1,36 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + int x; + /*@ assert 0 ≡ 0; */ + e_acsl_assert(0 == 0,(char *)"Assertion",(char *)"main",(char *)"0 == 0",6); + x = 0; + x ++; + /*@ assert 0 ≢ 1; */ + e_acsl_assert(0 != 1,(char *)"Assertion",(char *)"main",(char *)"0 != 1",8); + /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ + e_acsl_assert(1152921504606846975 == 0xfffffffffffffff,(char *)"Assertion", + (char *)"main", + (char *)"1152921504606846975 == 0xfffffffffffffff",9); + /*@ assert + 0xffffffffffffffffffffffffffffffff ≡ + 0xffffffffffffffffffffffffffffffff; + */ + { + mpz_t __e_acsl; + int __e_acsl_eq; + __gmpz_init_set_str(__e_acsl,"340282366920938463463374607431768211455", + 10); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff", + 11); + __gmpz_clear(__e_acsl); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant2.c new file mode 100644 index 0000000000000000000000000000000000000000..f2b66a870c7764902e2c5bb258c9fdac9b2194f3 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_integer_constant2.c @@ -0,0 +1,64 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + int x; + /*@ assert 0 ≡ 0; */ + { + mpz_t __e_acsl; + int __e_acsl_eq; + __gmpz_init_set_si(__e_acsl,(long)0); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"0 == 0",6); + __gmpz_clear(__e_acsl); + } + x = 0; + x ++; + /*@ assert 0 ≢ 1; */ + { + mpz_t __e_acsl_2; + mpz_t __e_acsl_3; + int __e_acsl_ne; + __gmpz_init_set_si(__e_acsl_2,(long)0); + __gmpz_init_set_si(__e_acsl_3,(long)1); + __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_2), + (__mpz_struct const *)(__e_acsl_3)); + e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", + (char *)"0 != 1",8); + __gmpz_clear(__e_acsl_2); + __gmpz_clear(__e_acsl_3); + } + /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ + { + mpz_t __e_acsl_4; + int __e_acsl_eq_2; + __gmpz_init_set_ui(__e_acsl_4,1152921504606846975); + __e_acsl_eq_2 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_4), + (__mpz_struct const *)(__e_acsl_4)); + e_acsl_assert(__e_acsl_eq_2 == 0,(char *)"Assertion",(char *)"main", + (char *)"1152921504606846975 == 0xfffffffffffffff",9); + __gmpz_clear(__e_acsl_4); + } + /*@ assert + 0xffffffffffffffffffffffffffffffff ≡ + 0xffffffffffffffffffffffffffffffff; + */ + { + mpz_t __e_acsl_5; + int __e_acsl_eq_3; + __gmpz_init_set_str(__e_acsl_5,"340282366920938463463374607431768211455", + 10); + __e_acsl_eq_3 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_5), + (__mpz_struct const *)(__e_acsl_5)); + e_acsl_assert(__e_acsl_eq_3 == 0,(char *)"Assertion",(char *)"main", + (char *)"0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff", + 11); + __gmpz_clear(__e_acsl_5); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong.c new file mode 100644 index 0000000000000000000000000000000000000000..bb5ed7df50b1de8c0212c810007bf57fadddf0bc --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong.c @@ -0,0 +1,80 @@ +/* Generated by Frama-C */ +unsigned long long my_pow(unsigned int x, unsigned int n) +{ + unsigned long long __retres; + int tmp; + unsigned long long tmp_0; + if (n <= (unsigned int)1) { + __retres = (unsigned long long)1; + goto return_label; + } + { /* sequence */ + tmp_0 = my_pow(x,n / (unsigned int)2); + tmp = (int)tmp_0; + } + /*@ assert Value: signed_overflow: -2147483648 ≤ tmp*tmp; */ + /*@ assert Value: signed_overflow: tmp*tmp ≤ 2147483647; */ + tmp *= tmp; + if (n % (unsigned int)2 == (unsigned int)0) { + __retres = (unsigned long long)tmp; + goto return_label; + } + __retres = (unsigned long long)(x * (unsigned int)tmp); + return_label: return __retres; +} + +int main(void) +{ + int __retres; + unsigned long long x; + x = my_pow((unsigned int)2,(unsigned int)63); + /*@ assert (2*x+1)%2 ≡ 1; */ + { + mpz_t __e_acsl; + mpz_t __e_acsl_x; + mpz_t __e_acsl_mul; + mpz_t __e_acsl_2; + mpz_t __e_acsl_add; + mpz_t __e_acsl_3; + int __e_acsl_mod_guard; + mpz_t __e_acsl_mod; + unsigned long __e_acsl_4; + __gmpz_init_set_si(__e_acsl,(long)2); + __gmpz_init(__e_acsl_x); + __gmpz_import(__e_acsl_x,1UL,1,8UL,0,0UL,(void const *)(& x)); + __gmpz_init(__e_acsl_mul); + __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_x)); + __gmpz_init_set_si(__e_acsl_2,(long)1); + __gmpz_init(__e_acsl_add); + __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_mul), + (__mpz_struct const *)(__e_acsl_2)); + __gmpz_init_set_si(__e_acsl_3,0L); + __e_acsl_mod_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_3)); + __gmpz_init(__e_acsl_mod); + /*@ assert E_ACSL: 2 ≢ 0; */ + e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", + (char *)"main",(char *)"2 == 0",17); + __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_add), + (__mpz_struct const *)(__e_acsl)); + __e_acsl_4 = __gmpz_get_ui((__mpz_struct const *)(__e_acsl_mod)); + /*@ assert + Value: ptr_comparison: + \pointer_comparable((void *)__e_acsl_4, (void *)1); + */ + e_acsl_assert(__e_acsl_4 == 1,(char *)"Assertion",(char *)"main", + (char *)"(2*x+1)%2 == 1",17); + __gmpz_clear(__e_acsl); + __gmpz_clear(__e_acsl_x); + __gmpz_clear(__e_acsl_mul); + __gmpz_clear(__e_acsl_2); + __gmpz_clear(__e_acsl_add); + __gmpz_clear(__e_acsl_3); + __gmpz_clear(__e_acsl_mod); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong2.c new file mode 100644 index 0000000000000000000000000000000000000000..d802c69cd962ba894b7a7daf04095e3e6b47e7e9 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_longlong2.c @@ -0,0 +1,81 @@ +/* Generated by Frama-C */ +unsigned long long my_pow(unsigned int x, unsigned int n) +{ + unsigned long long __retres; + int tmp; + unsigned long long tmp_0; + if (n <= (unsigned int)1) { + __retres = (unsigned long long)1; + goto return_label; + } + { /* sequence */ + tmp_0 = my_pow(x,n / (unsigned int)2); + tmp = (int)tmp_0; + } + /*@ assert Value: signed_overflow: -2147483648 ≤ tmp*tmp; */ + /*@ assert Value: signed_overflow: tmp*tmp ≤ 2147483647; */ + tmp *= tmp; + if (n % (unsigned int)2 == (unsigned int)0) { + __retres = (unsigned long long)tmp; + goto return_label; + } + __retres = (unsigned long long)(x * (unsigned int)tmp); + return_label: return __retres; +} + +int main(void) +{ + int __retres; + unsigned long long x; + x = my_pow((unsigned int)2,(unsigned int)63); + /*@ assert (2*x+1)%2 ≡ 1; */ + { + mpz_t __e_acsl; + mpz_t __e_acsl_x; + mpz_t __e_acsl_mul; + mpz_t __e_acsl_2; + mpz_t __e_acsl_add; + mpz_t __e_acsl_3; + int __e_acsl_mod_guard; + mpz_t __e_acsl_mod; + int __e_acsl_eq; + __gmpz_init_set_si(__e_acsl,(long)2); + __gmpz_init(__e_acsl_x); + __gmpz_import(__e_acsl_x,1UL,1,8UL,0,0UL,(void const *)(& x)); + __gmpz_init(__e_acsl_mul); + __gmpz_mul(__e_acsl_mul,(__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_x)); + __gmpz_init_set_si(__e_acsl_2,(long)1); + __gmpz_init(__e_acsl_add); + __gmpz_add(__e_acsl_add,(__mpz_struct const *)(__e_acsl_mul), + (__mpz_struct const *)(__e_acsl_2)); + __gmpz_init_set_si(__e_acsl_3,0L); + __e_acsl_mod_guard = __gmpz_cmp((__mpz_struct const *)(__e_acsl), + (__mpz_struct const *)(__e_acsl_3)); + __gmpz_init(__e_acsl_mod); + /*@ assert E_ACSL: 2 ≢ 0; */ + e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", + (char *)"main",(char *)"2 == 0",17); + __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_add), + (__mpz_struct const *)(__e_acsl)); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod), + (__mpz_struct const *)(__e_acsl_2)); + /*@ assert + Value: ptr_comparison: + \pointer_comparable((void *)__e_acsl_eq, (void *)0); + */ + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"(2*x+1)%2 == 1",17); + __gmpz_clear(__e_acsl); + __gmpz_clear(__e_acsl_x); + __gmpz_clear(__e_acsl_mul); + __gmpz_clear(__e_acsl_2); + __gmpz_clear(__e_acsl_add); + __gmpz_clear(__e_acsl_3); + __gmpz_clear(__e_acsl_mod); + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_not.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_not.c new file mode 100644 index 0000000000000000000000000000000000000000..2edb5b20daf45f3570c94ee5da2cb14f7d8cd6ff --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_not.c @@ -0,0 +1,17 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + int x; + x = 0; + /*@ assert x ≡ 0; */ + e_acsl_assert(x == 0,(char *)"Assertion",(char *)"main",(char *)"x == 0",6); + if (x) + /*@ assert x ≢ 0; */ + e_acsl_assert(x != 0,(char *)"Assertion",(char *)"main",(char *)"x != 0", + 7); + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/gmp/oracle/gen_not2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_not2.c new file mode 100644 index 0000000000000000000000000000000000000000..6cb82de24738aab6174b7d8c9afcd5c5c1e6d010 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_not2.c @@ -0,0 +1,41 @@ +/* Generated by Frama-C */ +int main(void) +{ + int __retres; + int x; + x = 0; + /*@ assert x ≡ 0; */ + { + mpz_t __e_acsl_x; + mpz_t __e_acsl; + int __e_acsl_eq; + __gmpz_init_set_si(__e_acsl_x,(long)x); + __gmpz_init_set_si(__e_acsl,0L); + __e_acsl_eq = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x), + (__mpz_struct const *)(__e_acsl)); + e_acsl_assert(__e_acsl_eq == 0,(char *)"Assertion",(char *)"main", + (char *)"x == 0",6); + __gmpz_clear(__e_acsl_x); + __gmpz_clear(__e_acsl); + } + if (x) { + /*@ assert x ≢ 0; */ + { + mpz_t __e_acsl_x_2; + mpz_t __e_acsl_2; + int __e_acsl_ne; + __gmpz_init_set_si(__e_acsl_x_2,(long)x); + __gmpz_init_set_si(__e_acsl_2,0L); + __e_acsl_ne = __gmpz_cmp((__mpz_struct const *)(__e_acsl_x_2), + (__mpz_struct const *)(__e_acsl_2)); + e_acsl_assert(__e_acsl_ne != 0,(char *)"Assertion",(char *)"main", + (char *)"x != 0",7); + __gmpz_clear(__e_acsl_x_2); + __gmpz_clear(__e_acsl_2); + } + } + __retres = 0; + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_quantif.c similarity index 79% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_quantif.c index b3e10d11118ae131a3f74767740287d909bb70db..ec48f293b5a7ec7beb34bdb11f378f44ebc28d65 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_quantif.c @@ -1,44 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -65,7 +25,7 @@ int main(void) e_acsl_end_loop1: ; e_acsl_assert(__e_acsl_forall,(char *)"Assertion",(char *)"main", (char *)"\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1", - 11); + 9); } /*@ assert ∀ ℤ x; 0 < x ≤ 1 ⇒ x ≡ 1; */ { @@ -84,7 +44,7 @@ int main(void) } e_acsl_end_loop2: ; e_acsl_assert(__e_acsl_forall_2,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 < x <= 1 ==> x == 1",12); + (char *)"\\forall integer x; 0 < x <= 1 ==> x == 1",10); } /*@ assert ∀ ℤ x; 0 < x < 1 ⇒ \false; */ { @@ -103,7 +63,7 @@ int main(void) } e_acsl_end_loop3: ; e_acsl_assert(__e_acsl_forall_3,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 < x < 1 ==> \\false",13); + (char *)"\\forall integer x; 0 < x < 1 ==> \\false",11); } /*@ assert ∀ ℤ x; 0 ≤ x < 1 ⇒ x ≡ 0; */ { @@ -122,7 +82,7 @@ int main(void) } e_acsl_end_loop4: ; e_acsl_assert(__e_acsl_forall_4,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 <= x < 1 ==> x == 0",14); + (char *)"\\forall integer x; 0 <= x < 1 ==> x == 0",12); } /*@ assert ∀ ℤ x, ℤ y, ℤ z; @@ -157,7 +117,7 @@ int main(void) e_acsl_end_loop5: ; e_acsl_assert(__e_acsl_forall_5,(char *)"Assertion",(char *)"main", (char *)"\\forall integer x, integer y, integer z;\n 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x+z <= y+1", - 18); + 16); } /*@ assert ∃ int x; 0 ≤ x < 10 ∧ x ≡ 5; */ { @@ -176,7 +136,7 @@ int main(void) } e_acsl_end_loop6: ; e_acsl_assert(__e_acsl_exists,(char *)"Assertion",(char *)"main", - (char *)"\\exists int x; 0 <= x < 10 && x == 5",23); + (char *)"\\exists int x; 0 <= x < 10 && x == 5",21); } /*@ assert ∀ int x; @@ -221,7 +181,7 @@ int main(void) e_acsl_end_loop8: ; e_acsl_assert(__e_acsl_forall_6,(char *)"Assertion",(char *)"main", (char *)"\\forall int x;\n 0 <= x < 10 ==> x%2 == 0 ==> (\\exists integer y; 0 <= y <= x/2 && x == 2*y)", - 27); + 25); } __retres = 0; return __retres; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c b/src/plugins/e-acsl/tests/gmp/oracle/gen_quantif2.c similarity index 81% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c rename to src/plugins/e-acsl/tests/gmp/oracle/gen_quantif2.c index b026674235d0f9833ea4317c2935bdae90101cc2..13501b809ce76819f4eadbb3851bd0f32f37fce3 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_quantif2.c +++ b/src/plugins/e-acsl/tests/gmp/oracle/gen_quantif2.c @@ -1,123 +1,4 @@ /* Generated by Frama-C */ -struct __anonstruct___mpz_struct_1 { - int _mp_alloc ; - int _mp_size ; - unsigned long *_mp_d ; -}; -typedef struct __anonstruct___mpz_struct_1 __mpz_struct; -typedef __mpz_struct ( __attribute__((__FC_BUILTIN__)) mpz_t)[1]; -typedef unsigned int size_t; -/*@ requires predicate ≢ 0; - assigns \nothing; */ -extern __attribute__((__FC_BUILTIN__)) void e_acsl_assert(int predicate, - char *kind, - char *fct, - char *pred_txt, - int line); - -/*@ -model __mpz_struct { ℤ n }; -*/ -int __fc_random_counter __attribute__((__unused__, __FRAMA_C_MODEL__)); -unsigned long const __fc_rand_max = (unsigned long)32767; -/*@ ghost extern int __fc_heap_status __attribute__((__FRAMA_C_MODEL__)); */ - -/*@ -axiomatic dynamic_allocation { - predicate is_allocable{L}(size_t n) - reads __fc_heap_status; - - } - */ -/*@ ghost extern int __e_acsl_init; */ - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - assigns *z; - assigns *z \from __e_acsl_init; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init(__mpz_struct * /*[1]*/ z); - -/*@ requires ¬\initialized(z); - ensures \valid(\old(z)); - ensures \initialized(\old(z)); - assigns *z; - assigns *z \from n; - allocates \old(z); - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_init_set_si(__mpz_struct * /*[1]*/ z, - long n); - -/*@ requires \valid_read(z_orig); - requires \valid(z); - assigns *z; - assigns *z \from *z_orig; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_set(__mpz_struct * /*[1]*/ z, - __mpz_struct const * /*[1]*/ z_orig); - -/*@ requires \valid(x); - assigns *x; - assigns *x \from *x; */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_clear(__mpz_struct * /*[1]*/ x); - -/*@ requires \valid_read(z1); - requires \valid_read(z2); - assigns \result; - assigns \result \from *z1, *z2; - */ -extern __attribute__((__FC_BUILTIN__)) int __gmpz_cmp(__mpz_struct const * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_add(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_mul(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_q(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ requires \valid(z1); - requires \valid_read(z2); - requires \valid_read(z3); - assigns *z1; - assigns *z1 \from *z2, *z3; - */ -extern __attribute__((__FC_BUILTIN__)) void __gmpz_tdiv_r(__mpz_struct * /*[1]*/ z1, - __mpz_struct const * /*[1]*/ z2, - __mpz_struct const * /*[1]*/ z3); - -/*@ ghost extern int __e_acsl_internal_heap; */ - -extern size_t __memory_size; - -/*@ -predicate diffSize{L1, L2}(ℤ i) = - \at(__memory_size,L1)-\at(__memory_size,L2) ≡ i; - */ int main(void) { int __retres; @@ -182,7 +63,7 @@ int main(void) e_acsl_end_loop1: ; e_acsl_assert(__e_acsl_forall,(char *)"Assertion",(char *)"main", (char *)"\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1", - 11); + 9); __gmpz_clear(__e_acsl_x); } /*@ assert ∀ ℤ x; 0 < x ≤ 1 ⇒ x ≡ 1; */ @@ -242,7 +123,7 @@ int main(void) } e_acsl_end_loop2: ; e_acsl_assert(__e_acsl_forall_2,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 < x <= 1 ==> x == 1",12); + (char *)"\\forall integer x; 0 < x <= 1 ==> x == 1",10); __gmpz_clear(__e_acsl_x_2); } /*@ assert ∀ ℤ x; 0 < x < 1 ⇒ \false; */ @@ -294,7 +175,7 @@ int main(void) } e_acsl_end_loop3: ; e_acsl_assert(__e_acsl_forall_3,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 < x < 1 ==> \\false",13); + (char *)"\\forall integer x; 0 < x < 1 ==> \\false",11); __gmpz_clear(__e_acsl_x_3); } /*@ assert ∀ ℤ x; 0 ≤ x < 1 ⇒ x ≡ 0; */ @@ -346,7 +227,7 @@ int main(void) } e_acsl_end_loop4: ; e_acsl_assert(__e_acsl_forall_4,(char *)"Assertion",(char *)"main", - (char *)"\\forall integer x; 0 <= x < 1 ==> x == 0",14); + (char *)"\\forall integer x; 0 <= x < 1 ==> x == 0",12); __gmpz_clear(__e_acsl_x_4); } /*@ assert @@ -469,7 +350,7 @@ int main(void) e_acsl_end_loop5: ; e_acsl_assert(__e_acsl_forall_5,(char *)"Assertion",(char *)"main", (char *)"\\forall integer x, integer y, integer z;\n 0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x+z <= y+1", - 18); + 16); __gmpz_clear(__e_acsl_x_5); __gmpz_clear(__e_acsl_y); __gmpz_clear(__e_acsl_z); @@ -523,7 +404,7 @@ int main(void) } e_acsl_end_loop6: ; e_acsl_assert(__e_acsl_exists,(char *)"Assertion",(char *)"main", - (char *)"\\exists int x; 0 <= x < 10 && x == 5",23); + (char *)"\\exists int x; 0 <= x < 10 && x == 5",21); __gmpz_clear(__e_acsl_x_6); } /*@ assert @@ -566,7 +447,7 @@ int main(void) __gmpz_init(__e_acsl_mod); /*@ assert E_ACSL: 2 ≢ 0; */ e_acsl_assert(! (__e_acsl_mod_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"2 == 0",28); + (char *)"main",(char *)"2 == 0",26); __gmpz_tdiv_r(__e_acsl_mod,(__mpz_struct const *)(__e_acsl_x_7), (__mpz_struct const *)(__e_acsl_32)); __e_acsl_eq_6 = __gmpz_cmp((__mpz_struct const *)(__e_acsl_mod), @@ -597,7 +478,7 @@ int main(void) __gmpz_init(__e_acsl_div); /*@ assert E_ACSL: 2 ≢ 0; */ e_acsl_assert(! (__e_acsl_div_guard == 0),(char *)"Assertion", - (char *)"main",(char *)"2 == 0",28); + (char *)"main",(char *)"2 == 0",26); __gmpz_tdiv_q(__e_acsl_div, (__mpz_struct const *)(__e_acsl_x_7), (__mpz_struct const *)(__e_acsl_36)); @@ -668,7 +549,7 @@ int main(void) e_acsl_end_loop8: ; e_acsl_assert(__e_acsl_forall_6,(char *)"Assertion",(char *)"main", (char *)"\\forall int x;\n 0 <= x < 10 ==> x%2 == 0 ==> (\\exists integer y; 0 <= y <= x/2 && x == 2*y)", - 27); + 25); __gmpz_clear(__e_acsl_x_7); } __retres = 0; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/integer_constant.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/integer_constant.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/integer_constant.0.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/integer_constant.0.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/integer_constant.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/integer_constant.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/integer_constant.1.res.oracle similarity index 93% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/integer_constant.1.res.oracle index dd977035dae231f610550b119b68930e04bdab24..c0fcf39271fdef899d36dfcdab248aac26afa47d 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/integer_constant.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/integer_constant.1.res.oracle @@ -15,5 +15,6 @@ [value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_clear +[value] using specification for function __gmpz_init_set_ui [value] using specification for function __gmpz_init_set_str [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/longlong.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/longlong.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/longlong.0.res.oracle similarity index 77% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/longlong.0.res.oracle index 05f59d98e5e0b32f63057a2314f237804f7c5d52..2df465e42e2e2d1891a513ebb2dade4088a10d37 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.0.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/longlong.0.res.oracle @@ -10,14 +10,14 @@ __e_acsl_init ∈ [--..--] __e_acsl_internal_heap ∈ [--..--] __memory_size ∈ [--..--] -tests/e-acsl-runtime/longlong.i:11:[value] warning: recursive call during value analysis - of my_pow (my_pow <- my_pow :: tests/e-acsl-runtime/longlong.i:18 <- main). +tests/gmp/longlong.i:9:[value] warning: recursive call during value analysis + of my_pow (my_pow <- my_pow :: tests/gmp/longlong.i:16 <- main). Using specification of my_pow. [value] user error: Recursive call on an unspecified function. Using potentially invalid inferred assigns 'assigns \result \from x, n;' [value] using specification for function my_pow -tests/e-acsl-runtime/longlong.i:12:[kernel] warning: signed overflow. assert -2147483648 ≤ tmp*tmp; -tests/e-acsl-runtime/longlong.i:12:[kernel] warning: signed overflow. assert tmp*tmp ≤ 2147483647; +tests/gmp/longlong.i:10:[kernel] warning: signed overflow. assert -2147483648 ≤ tmp*tmp; +tests/gmp/longlong.i:10:[kernel] warning: signed overflow. assert tmp*tmp ≤ 2147483647; [value] using specification for function __gmpz_init_set_si [value] using specification for function __gmpz_init [value] using specification for function __gmpz_import @@ -29,7 +29,7 @@ FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:82:[value] warning: function __gmpz_import: pre FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_tdiv_r [value] using specification for function __gmpz_get_ui -tests/e-acsl-runtime/longlong.i:19:[kernel] warning: pointer comparison. +tests/gmp/longlong.i:17:[kernel] warning: pointer comparison. assert \pointer_comparable((void *)__e_acsl_4, (void *)1); [value] using specification for function __gmpz_clear [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/longlong.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/longlong.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/longlong.1.res.oracle similarity index 76% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/longlong.1.res.oracle index 382e1ff4d9982a73481965743000bb0828c5a82b..191f28428986a29981d28d41fd18a352c0150a28 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/longlong.1.res.oracle +++ b/src/plugins/e-acsl/tests/gmp/oracle/longlong.1.res.oracle @@ -10,14 +10,14 @@ __e_acsl_init ∈ [--..--] __e_acsl_internal_heap ∈ [--..--] __memory_size ∈ [--..--] -tests/e-acsl-runtime/longlong.i:11:[value] warning: recursive call during value analysis - of my_pow (my_pow <- my_pow :: tests/e-acsl-runtime/longlong.i:18 <- main). +tests/gmp/longlong.i:9:[value] warning: recursive call during value analysis + of my_pow (my_pow <- my_pow :: tests/gmp/longlong.i:16 <- main). Using specification of my_pow. [value] user error: Recursive call on an unspecified function. Using potentially invalid inferred assigns 'assigns \result \from x, n;' [value] using specification for function my_pow -tests/e-acsl-runtime/longlong.i:12:[kernel] warning: signed overflow. assert -2147483648 ≤ tmp*tmp; -tests/e-acsl-runtime/longlong.i:12:[kernel] warning: signed overflow. assert tmp*tmp ≤ 2147483647; +tests/gmp/longlong.i:10:[kernel] warning: signed overflow. assert -2147483648 ≤ tmp*tmp; +tests/gmp/longlong.i:10:[kernel] warning: signed overflow. assert tmp*tmp ≤ 2147483647; [value] using specification for function __gmpz_init_set_si [value] using specification for function __gmpz_init [value] using specification for function __gmpz_import @@ -28,7 +28,7 @@ FRAMAC_SHARE/e-acsl/e_acsl_gmp.h:82:[value] warning: function __gmpz_import: pre [value] using specification for function e_acsl_assert FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. [value] using specification for function __gmpz_tdiv_r -tests/e-acsl-runtime/longlong.i:19:[kernel] warning: pointer comparison. +tests/gmp/longlong.i:17:[kernel] warning: pointer comparison. assert \pointer_comparable((void *)__e_acsl_eq, (void *)0); [value] using specification for function __gmpz_clear [value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/not.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/not.0.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/not.0.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.0.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/not.0.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/not.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/not.1.err.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/not.1.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/not.1.res.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/not.1.res.oracle diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.0.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/quantif.0.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/quantif.0.err.oracle diff --git a/src/plugins/e-acsl/tests/gmp/oracle/quantif.0.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/quantif.0.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..2340b024720e09ebddb01c57525579a6d1c14884 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/quantif.0.res.oracle @@ -0,0 +1,30 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +[value] Analyzing a complete application starting at main +[value] Computing initial state +[value] Initial state computed +[value] Values of globals at initialization + __fc_random_counter ∈ {0} + __fc_rand_max ∈ {32767} + __fc_heap_status ∈ [--..--] + __e_acsl_init ∈ [--..--] + __e_acsl_internal_heap ∈ [--..--] + __memory_size ∈ [--..--] +tests/gmp/quantif.i:9:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:9:[value] entering loop for the first time +[value] using specification for function e_acsl_assert +tests/gmp/quantif.i:10:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:10:[value] entering loop for the first time +tests/gmp/quantif.i:11:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:11:[value] entering loop for the first time +tests/gmp/quantif.i:12:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:12:[value] entering loop for the first time +tests/gmp/quantif.i:16:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:16:[value] entering loop for the first time +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/gmp/quantif.i:21:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:21:[value] entering loop for the first time +tests/gmp/quantif.i:25:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:25:[value] entering loop for the first time +tests/gmp/quantif.i:26:[value] entering loop for the first time +[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.err.oracle b/src/plugins/e-acsl/tests/gmp/oracle/quantif.1.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/quantif.1.err.oracle rename to src/plugins/e-acsl/tests/gmp/oracle/quantif.1.err.oracle diff --git a/src/plugins/e-acsl/tests/gmp/oracle/quantif.1.res.oracle b/src/plugins/e-acsl/tests/gmp/oracle/quantif.1.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..c0efb2c290dd8b43e2e904433be4e5d461c33a5b --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/oracle/quantif.1.res.oracle @@ -0,0 +1,39 @@ +[e-acsl] beginning translation. +[e-acsl] translation done in project "e-acsl". +[value] Analyzing a complete application starting at main +[value] Computing initial state +[value] Initial state computed +[value] Values of globals at initialization + __fc_random_counter ∈ {0} + __fc_rand_max ∈ {32767} + __fc_heap_status ∈ [--..--] + __e_acsl_init ∈ [--..--] + __e_acsl_internal_heap ∈ [--..--] + __memory_size ∈ [--..--] +tests/gmp/quantif.i:9:[value] warning: assertion got status unknown. +[value] using specification for function __gmpz_init +[value] using specification for function __gmpz_init_set_si +[value] using specification for function __gmpz_set +[value] using specification for function __gmpz_clear +tests/gmp/quantif.i:9:[value] entering loop for the first time +[value] using specification for function __gmpz_cmp +[value] using specification for function __gmpz_add +[value] using specification for function e_acsl_assert +FRAMAC_SHARE/e-acsl/e_acsl.h:34:[value] warning: function e_acsl_assert: precondition got status unknown. +tests/gmp/quantif.i:10:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:10:[value] entering loop for the first time +tests/gmp/quantif.i:11:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:11:[value] entering loop for the first time +tests/gmp/quantif.i:12:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:12:[value] entering loop for the first time +tests/gmp/quantif.i:16:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:16:[value] entering loop for the first time +tests/gmp/quantif.i:21:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:21:[value] entering loop for the first time +tests/gmp/quantif.i:25:[value] warning: assertion got status unknown. +tests/gmp/quantif.i:25:[value] entering loop for the first time +[value] using specification for function __gmpz_tdiv_r +tests/gmp/quantif.i:26:[value] entering loop for the first time +[value] using specification for function __gmpz_tdiv_q +[value] using specification for function __gmpz_mul +[value] done for function main diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i b/src/plugins/e-acsl/tests/gmp/quantif.i similarity index 60% rename from src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i rename to src/plugins/e-acsl/tests/gmp/quantif.i index 069060d8d2e20395114f559792aa3678dcc0b2b8..81531e338c23effc5ed53ecdcf3504258c150eb0 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/quantif.i +++ b/src/plugins/e-acsl/tests/gmp/quantif.i @@ -1,7 +1,5 @@ /* run.config COMMENT: quantifiers - EXECNOW: LOG gen_quantif.c BIN gen_quantif.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/quantif.i -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_quantif.c > /dev/null && ./gcc_runtime.sh quantif - EXECNOW: LOG gen_quantif2.c BIN gen_quantif2.out @frama-c@ -e-acsl-share ./share/e-acsl ./tests/e-acsl-runtime/quantif.i -e-acsl-gmp-only -e-acsl -then-on e-acsl -print -ocode ./tests/e-acsl-runtime/result/gen_quantif2.c > /dev/null && ./gcc_runtime.sh quantif2 */ int main(void) { diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.0.err.oracle b/src/plugins/e-acsl/tests/gmp/result/.gitkeep similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.0.err.oracle rename to src/plugins/e-acsl/tests/gmp/result/.gitkeep diff --git a/src/plugins/e-acsl/tests/gmp/test_config b/src/plugins/e-acsl/tests/gmp/test_config new file mode 100644 index 0000000000000000000000000000000000000000..ebb7cbf51e4a4bb8fd52deafb1d71761c1a2b989 --- /dev/null +++ b/src/plugins/e-acsl/tests/gmp/test_config @@ -0,0 +1,5 @@ +LOG: gen_@PTEST_NAME@.c +OPT: -machdep gcc_x86_64 -check -e-acsl -then-last -load-script tests/print.cmxs -print -ocode tests/gmp/result/gen_@PTEST_NAME@.c -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results +EXECNOW: ./scripts/testrun.sh @PTEST_NAME@ gmp "1" "--frama-c=@frama-c@" +LOG: gen_@PTEST_NAME@2.c +OPT: -machdep gcc_x86_64 -check -e-acsl -e-acsl-gmp-only -then-last -load-script tests/print.cmxs -print -ocode tests/gmp/result/gen_@PTEST_NAME@2.c -kernel-verbose 0 -val -no-val-print -no-val-show-progress -no-results diff --git a/src/plugins/e-acsl/tests/no-main/empty.i b/src/plugins/e-acsl/tests/no-main/empty.i new file mode 100644 index 0000000000000000000000000000000000000000..dac88947f19f927d43733f00a084ab034ddc04f3 --- /dev/null +++ b/src/plugins/e-acsl/tests/no-main/empty.i @@ -0,0 +1,3 @@ +/* run.config + COMMENT: empty file +*/ diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.err.oracle b/src/plugins/e-acsl/tests/no-main/oracle/empty.err.oracle similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/function_contract.1.err.oracle rename to src/plugins/e-acsl/tests/no-main/oracle/empty.err.oracle diff --git a/src/plugins/e-acsl/tests/no-main/oracle/empty.res.oracle b/src/plugins/e-acsl/tests/no-main/oracle/empty.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..d7c3f4370ac66a3520fcaf735b2852265dd084ae --- /dev/null +++ b/src/plugins/e-acsl/tests/no-main/oracle/empty.res.oracle @@ -0,0 +1,14 @@ +[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_types.h (with preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp.h (with preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel_api.h (with preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_bittree.h (with preprocessing) +[kernel] Parsing FRAMAC_SHARE/e-acsl/memory_model/e_acsl_mmodel.h (with preprocessing) +[kernel] Parsing tests/no-main/empty.i (no preprocessing) +[e-acsl] beginning translation. +[e-acsl] warning: cannot find entry point `main'. + Please use option `-main' for specifying a valid entry point. + The generated program may miss memory instrumentation + if there are memory-related annotations. +[e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.0.err.oracle b/src/plugins/e-acsl/tests/no-main/result/.gitkeep similarity index 100% rename from src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ghost.0.err.oracle rename to src/plugins/e-acsl/tests/no-main/result/.gitkeep diff --git a/src/plugins/e-acsl/tests/no-main/test_config b/src/plugins/e-acsl/tests/no-main/test_config new file mode 100644 index 0000000000000000000000000000000000000000..954e02ce5fb8a367dee5f4a74833ea97955d5fd7 --- /dev/null +++ b/src/plugins/e-acsl/tests/no-main/test_config @@ -0,0 +1 @@ +OPT: -e-acsl-check -check -e-acsl diff --git a/src/plugins/e-acsl/tests/print.ml b/src/plugins/e-acsl/tests/print.ml new file mode 100644 index 0000000000000000000000000000000000000000..04a0d201831af165ee6c71956bc32efbbbe239da --- /dev/null +++ b/src/plugins/e-acsl/tests/print.ml @@ -0,0 +1,18 @@ +module Printer_extension(X:Printer.PrinterClass) = struct + + class printer = object + inherit Printer.extensible_printer () as super + + method global fmt g = + let loc, _ = Cil_datatype.Global.loc g in + let file = loc.Lexing.pos_fname in + if file = "" || List.exists + (fun s -> Filepath.normalize s = file) + (Kernel.Files.get ()) + then super#global fmt g + + end + +end + +let () = Printer.update_printer (module Printer_extension)